数据库
一、简答题
1、说说你所知道的MySQL数据库存储引擎,InnoDB存储引擎和MyISM存储引擎的区别?
1.InnoDB存储引擎(MySQL默认存储引擎),支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支持类似 Oracle 的非锁定读,即默认读取操作不会产生锁
2.MyISAM 存储引擎 不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 数
3.NDB 存储引擎 NDB 存储引擎是高可用、 高性能、高可扩展性的数据库集群系统,其面向的也是 OLTP 的数据库应用类型
4.Memory 存储引擎 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失
5.Infobright 存储引擎 存储是按照列而非行的
6.NTSE 存储引擎 提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持
7.BLACKHOLE 黑洞存储引擎,可以应用于主备复制中的分发主库
2、MySQL中char和varchar的区别,varchar(50)和char(50)分别代表什么意思?
char和varchar都是字符串类型,
varchar(50)是一次最多可以存储50个字符
char(50)是一次可以最多存储50个字符
char是定长字符类型,就是无论存储多少的字符,都会变成定长的填充字符,存储方式简单暴力,存储提取速度快,但是不够节省空间,适用于常用查询数据
varchar是变长字符类型,存储的字符包含一个数据头(统计存入的该条数据的字符长度)+数据,节省空间,但是存储速度和提取速度慢,适用于固定、不常用数据存储
注意:一定条件下,设计表格数据格式先设计char再设计varchar有利于提高数据的操作效率。
3、MySQL中int类型存储多少个字节?
int的存储宽度是4个字节,即32位,位数就是2^32
当有符号的时候 -2^31~2^31-1
没有符号的时候 0~2^32
4、主键具有什么特征?
主键是唯一的且不为空值
5、简述你对inner join、left join、right join、full join的理解;
inner join 内连接 两个表连接显示公共部分
left join 左连接 优先显示左表的匹配内容,左表不匹配的也显示出来
right join 右连接 优先显示右表的匹配内容,右表不匹配的也显示出来
full join 外连接 先匹配两表的共有部分,然后把两表的非共有部分显示出来(MySQL不支持full join 可以用union)
6、concat, group_concat函数的作用是什么?
concat可以用来连接字符串
group_concat可以和group by一起使用,查看分组后的信息
7、请介绍事务的实现原理;
将各种sql语句(原子型语句)封装成一个事务状态,只有当这个事务全部完成的时候才能结束,否则就会调用roll back函数对之前的语句进行回滚,返回原来的状态
8、索引的本质是什么?索引有什么优点,缺点是什么?
索引的本质就是对某些字段加键的约束关系,使得查询的时候依据索引查找减少查询的范围,让查询的时间损耗尽量小
优点:提高了查询速度和查询效率
缺点:1.加索引本身很麻烦,索引也会占存储空间,索引多对存储空间有影响
2.对表记录加索引后,后续想再对表进行修改,索引也要随着修改,会加长修改表的时间
9、哪些情况下需要创建索引,哪些情况下不需要创建索引?
1.对于数据量大,且查询频繁的,表数据结构不容易发生表更的,可以采用创建索引的方式提高效率
2.数据量小,表数据内容和数据结构都不断更新修改的,不利于创建索引
10、请分别介绍ACID代表的意思,什么业务场景需要支持事务,什么业务场景不需要支持事务?
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
银行的交易系统机制、重要的数据计算(涉及多个终端的交互)类似的场景都需要支持事务
简单的查询语句,不关系到数据修改的等都不需要支持事务
11、什么是触发器,请简述触发器的使用场景?
触发器就是在一定条件下执行的语句,可以定制用户对表进行增删改后的操作,但是查询的时候不能触发
12、什么是存储过程,存储过程的作用是什么?
存储过程内采用了一系列的sql语句对数据库进行操作,可以采用别名的方式就对数据库进行调用
将程序和数据的操作进行解耦,程序员只要关注程序的执行就可以了,实际数据库的操作可以直接掉用别名
以别名的方式进行网络传输,传输的数据量小,传输效率更高
缺点:由于全是别名封装的数据功能,对于程序员来说扩展的功能不易实现,需要经过DBA认同后才能对数据进行功能扩展。
13、什么是视图,简单介绍视图的作用和使用场景?
视图是基于数据库的一张临时表,这张临时表的数据结果可以直接调用,不用再重写数据库的查询语句
视图的作用:视图可以实现对数据的多次查询,直接调用视图名称就能实现
视图的使用场景:需要对数据进行多次查询,且查询语句复杂时,不建议多次创建视图,创建视图后,将不再能对视图数据就行修改,对视图数据的修改将会影响到原表的数据
14、如何查看SQL语句的执行计划?
MySQL的执行计划(explain)是对于SQL语句的优化和建立索引的重要依据
eg: explain select * from table
附件:explain内的参数说明
table
显示这一行的数据是关于哪张表的
type
这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
说明:不同连接类型的解释(按照效率高低的顺序排序)
system:表只有一行:system表。这是const连接类型的特殊情况。
const :表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。因为只有一行,这个值实际就是常数,因为MYSQL先读这个值然后把它当做常数来对待。
eq_ref:在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用。
ref:这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分(比如,利用最左边前缀)时发生。对于之前的表的每一个行联合,全部记录都将从表中读出。这个类型严重依赖于根据索引匹配的记录多少—越少越好。
range:这个连接类型使用索引返回一个范围中的行,比如使用>或<查找东西时发生的情况。
index:这个连接类型对前面的表中的每一个记录联合进行完全扫描(比ALL更好,因为索引一般小于表数据)。
ALL:这个连接类型对于前面的每一个记录联合进行完全扫描,这一般比较糟糕,应该尽量避免。
possible_keys
显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
key
实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
key_len
使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref
显示索引的哪一列被使用了,如果可能的话,是一个常数
rows
MYSQL认为必须检查的用来返回请求数据的行数
Extra
关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢
说明:extra列返回的描述的意义
Distinct :一旦mysql找到了与行相联合匹配的行,就不再搜索了。
Not exists :mysql优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,就不再搜索了。
Range checked for each Record(index map:#) :没有找到理想的索引,因此对从前面表中来的每一个行组合,mysql检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一。
Using filesort :看到这个的时候,查询就需要优化了。mysql需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行。
Using index :列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候。
Using temporary :看到这个的时候,查询需要优化了。这里,mysql需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上。
Where used :使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不想返回表中的全部行,并且连接类型ALL或index,这就会发生,或者是查询有问题。
15、在你本地数据库中查看*select * from student*的执行计划,并解释每个字段分别代表什么意思?
aaarticlea/png;base64,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" alt="" />
id 查询到的数据的顺序
select_type 查询到的语句的类型
table 查询的表名称
partitions 分区表的分区名,对于非分区表,为NULL
type 类型
possible_keys 可能的索引关系
key 是否建立了索引
key_len 索引的长度
ref 显示索引的哪一列被使用了,如果可能的话,是一个常数
rows 返回查询的列数
filtered 被条件过滤掉的百分比
Extra 额外说明
16、数据备份分为哪几种类型?增量备份和差异备份的区别是什么?
1.完整备份 备份系统中的所有数据。特点:占用空间大,备份速度慢,但恢复时一次恢复到位,恢复速度快
2.增量备份 只备份上次备份以后有变化的数据因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,
所以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长
3.差异备份 只备份上次完全备份以后有变化的数据;占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完
整版本和最后一次的差异版本,恢复速度介于完整备份和增量备份之间
17、请介绍*select*语句的执行顺序;
from 先找到表位置
where 按条件查找表记录
group by 根据字段进行分组
having 根据条件过滤表内容
select 选择表字段
distinct 去除重复值
order by 按某一个或多个字段排序
limit 提取查询到的记录条数
18、请问存储引擎MyISM和InnoDB的适合什么样的使用场景?
MyISM 不支持事务,但是查询速度快,适用于计算、查询量大的场景
InnoDB 支持事务查询,数据可靠性要求高,适用于查询、插入数据频繁的场景
19、请举出MySQL中常用的几种数据类型;
1.数字类型
整型 int 不用指定字节大小
浮点型 float 可用于资薪处理
2.字符串类型
char 定长
varchar 变长
3.日期类型
datetime
4.枚举类型和集合类型
单选类型 enum
多选类型 set
20、什么情况下会产生笛卡尔乘积,如何避免?
多表查询的时候就会产生笛卡尔乘积
比如select * from table1,table2
尽量不要直接使用笛卡尔乘积
使用内连接、外连接、左连接或右连接的方法或者直接在多表连接的查询后增加条件过滤数据
21、请列举MySQL中常用的函数;
1.数学函数 round(x,y) 返回参数x的四舍五入的有y位小数的值
2.聚合函数
count()统计数字
avg()求平均值
max()求最大值
min()求最小值
sun()求和
3.字符串函数
concat()字符串拼接
4.日期函数
current_time()返回当前的时间
5.控制函数
if else
case then
loop
22、请说明group by的使用场景;
group by 是在where之后执行的,需要在表后对记录进行字段上的分组,分组后的查询需要用到聚合函数
23、请介绍hash索引和B+树索引的实现原理;
哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置,速度非常快
B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接
二、编程题
1、创建一个表student,包含ID(学生学号),sname(学生姓名),gender(性别),credit(信用卡号),四个字段,要求:ID是主键,且值自动递增,sname是可变长字符类型,gender是枚举类型, credit是可变长字符类型;
CREATE TABLE student (
ID INT PRIMARY KEY auto_increment not NULL ,
sname VARCHAR (10),
gender enum('男','女') DEFAULT '男',
credit VARCHAR (20)
);
2、在上面的student表中增加一个名为class_id的外键,外键引用class表的cid字段;
CREATE table class(
cid int NOT NULL PRIMARY KEY auto_increment,
cname VARCHAR (5)
);
ALTER table student ADD class_id INT UNIQUE ;
ALTER table student ADD FOREIGN KEY (class_id)
REFERENCES class(cid)
ON DELETE CASCADE
ON UPDATE CASCADE ;
3、向该表新增一条数据,ID为1,学生姓名为alex,性别女,修改ID为1的学生姓名为wupeiqi,删除该数据;
insert into class (cname) values (
('一班')
);
INSERT INTO student(sname,gender) VALUES (
'alex','女'
);
UPDATE student
SET sname = 'wupeiqi'
where ID = 1;
DELETE from student
where ID = 1;
4、查询student表中,每个班级的学生数;
SELECT c.cname,count(ID) from student s
LEFT JOIN class c
ON c.cid = s.class_id
GROUP BY ID;
5、修改credit字段为unique属性;
alter TABLE student modify credit VARCHAR (18) UNIQUE ;
6、请使用命令在你本地数据库中增加一个用户,并给该用户授予创建表的权限;
grant CREATE ON *.* TO 'panda@localhost' identified by'';
7、请使用pymysql模块连接你本地数据库,并向student表中插入一条数据;
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
db='db6',
charset='utf8'
)
cursor = conn.cursor()
sql = "insert into student values(13,'park','男','',1)"
rows = cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
8、请使用mysqldump命令备份student表;
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mysqldump -uroot -p123456 db6 student > student1.sql
9、创建一张名为student_insert_log的表,要求每次插入一条新数据到student表时,都向student_insert_log表中插入一条记录,记录student_id, insert_time;
delimiter //
CREATE TRIGGER tri_student_insert_log AFTER INSERT ON student FOR EACH ROW
BEGIN
INSERT INTO student_insert_log(student_id, insert_time) VALUES(NEW.ID, now()) ;
END//
delimiter ;
- 路飞学城Python-Day39(第四模块复习题)
并发编程 一.简答题 1,简述计算机操作系统的中断的作用 由于cpu本身一次只能执行一个程序,操作系统提供的中断机制使得cpu能够实现不断的在各个程序间进行切换,给人的感觉就是多个程序同时执行 为什么 ...
- 路飞学城Python-Day29(第四模块-并发编程)
01-进程与程序的概念 并发:多进程和多线程 进程的概念:进程就是正在执行的过程,一个应用程序不是进程,只有应用程序启动以后才能说是进程,进程是一个抽象的概念,起源于操作系统 02-操作系统介绍 应用 ...
- 路飞学城—Python爬虫实战密训班 第三章
路飞学城—Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫: - 定义调度器 - ...
- 路飞学城—Python爬虫实战密训班 第二章
路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...
- 路飞学城Python爬虫课第一章笔记
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...
- 路飞学城-Python开发集训-第4章
学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...
- 路飞学城-Python开发集训-第3章
学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...
- 路飞学城-Python开发集训-第2章
学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...
- 路飞学城-Python开发集训-第1章
学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需 ...
随机推荐
- Centos7下 yum安装php扩展
linux下, 使用thinkphp的模板标签,如 eq, gt, volist defined, present , empty等 标签时, 报错: used undefined function ...
- mmap,malloc分配随机内存
随机数1G #cat malloc_rand_1g.c #include <stdio.h> /* printf, scanf, NULL */ #include <stdlib.h ...
- 网络教程(2)光纤和RF编码简介
光纤: 想象一个symbol是light off 另一个是light on 另一种传输信息的方式using radio waves(无线电波: 这个router 内部以很高的频率变换电压 (例如2.4 ...
- Vue学习之路第十八篇:私有过滤器的使用
1.上篇已经介绍了全局过滤器的使用,“全局”顾名思义就是一次定义处处使用,可以被一个页面里不同的Vue对象所使用,如下代码所示: <body> <div id="app1& ...
- 【SPOJ 104】HIGH - Highways (高斯消元)
题目描述 In some countries building highways takes a lot of time- Maybe that's because there are many po ...
- CentOS 笔记(四) Jexus部署相关
①设置jexus 为服务 cd /lib/systemd/system/ sudo vi jexus.service #注意 jexus 实际路径 [Unit] Description=jexus A ...
- CSS 居中【整合】
<center> text-align:center 在父容器里水平居中 inline 文字,或 inline 元素 vertical-align:middle 垂直居中 inline 文 ...
- vue-cli3.0 搭建项目
1.首先我们先在安装好node node用于npm安装[自行百度] 2.全局安装vue 通过npm命令安装vue.js 在用vue.js在用于构建大型的应用时推荐使用npm安装,npm能很好的和w ...
- oracle删除非空的表空间
oracle删除非空的表空间: drop tablespace tablespaceName including contents;
- 【ACM-ICPC 2018 南京赛区网络预赛 I】Skr
[链接] 我是链接,点我呀:) [题意] 让你把一个字符串的所有回文子串加起来.(当做数字加起来) 求他们的和. [题解] 回文树. 从两个根节点分别遍历整棵回文树. 按照每个节点的定义. 得到每个节 ...