mysql面试题

it2023-08-21  69

1.SQL的语言分类?DDL DML DCL DDL:数据定义语言 DML:数据操纵语言 增删改 DCL:数据控制语言 权限控制 DQL:数据查询语言

2.mysql的默认存储引擎 默认存储引擎:InnoDB. myisam memory

3.char和varchar的区别 (1)char 存储的是长度不变的字符 varchar存储的是长度可变的字符 (2)char 存储更快 varchar 速度相对较慢 (3)char 英文占一个字节,汉字两个字节 varchar英文和汉字都是两个字节

4.mysql的常见约束 primary key:主键约束 not null:非空约束 unique:唯一约束 foreign:外键约束 default:默认约束

5.三大范式 (1)第一范式:每一列都是不可分割的数据项 (2)第二范式:在1NF的基础上,非码属性必须完全依赖于码属性;(在1NF的基础上消除非主属性对主码的部分函数依赖) (3)第三范式:在2NF的基础上,任何非主属性,不依赖于其他非主属性(在2NF的基础上消除传递依赖)

概念: (1)函数依赖:如果通过A属性,或者属性组 可以确定唯一的B属性的值,称为B依赖于A 例如:学号可以确定 姓名 (学号,课程名)可以确定成绩 (2)完全依赖: 如果B依赖于A属性组,那么b的属性值的确定,要依赖于A属性组所有的属性 (3)部分依赖:如果B依赖于A属性组,那么b的属性值的确定,只需要依赖A属性组中部分的属性 (4)码:一个表中,一个属性(或者属性组),被这个表中其他所有属性完全依赖,则这个属性(属性组)称为这个表的码 主属性:码中的属性 非主属性: 除了码之外的属性

6.事务的特性 (1)原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败 (2)持久性:事务一旦提交或者回滚,那么数据库就会持久化的保存数据 (3)一致性:事务操作前后,数据总量不变 (4)隔离性:多个事务之间,互相独立

7.事务的隔离级别 (1)脏读:一个事务读取到了另一个事务未提交的数据; (2)不可重复读:在同一个事务中,两次读取的数据不同 (3)幻读:一个事务操作表中的数据,另一个事务添加了一条数据,则第一条数据查询不到自己的修改

8.隔离级别 (1)read uncommitted: 读未提交 //产生的问题 脏读 不可重复读 幻读 (2)read committed (Oracle): 读已提交 //产生的问题 不可重复读 幻读 (3)repeatable read (Mysql): 可重复读 // 产生幻读 (4)serializable :串行化 //可以解决所有问题

9.什么是脏读 一个事务读取到了另一个事务未提交的数据

10.Mysql的端口号 默认端口号3306

11.什么是触发器 触发器就是,在某个表发生一个事件,然后自动化执行预先编译好的sql语句,执行相关操作

12.索引的优点 (1)优点:可以提升检索效率,减少I/O的操作 (2)缺点:索引会占储存空间 是没有索引的表的1.5倍 索引会降低修改表的效率,在修改表的同时还要修改索引表

13.索引的分类 (1)普通索引:用表普通的列构成的索引 (2)主键索引:根据主键构成索引,不允许为空,不允许重复 (3)唯一索引:用来构建索引的列,值是唯一的,允许为空 (4)组合索引:用多个列组合构成的索引,不允许为空 (5)全文索引:用文本对象构成的索引

14.内连接和外连接的区别 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件 外连接:连接结果不仅包含符合条件的行,同时也包含自身的不符合条件的行 左外连接:左边表的数据全部保存,右边表保存符合条件的数据 右外连接:右边的表数据全部保存,左边的表保存符合条件的数据

15.视图的好处 (1)简单 用户不关心对应的表结构 关联条件和筛选条件 (2)安全 使用视图的用户只能访问被允许查询的结果集 (3)数据独立 一旦视图确定好结构,可以屏蔽表结构变化对用户的影响 优点:保障数据安全,提升查询效率

16.delete和drop的区别 drop 是用来删除结构的 例:删除表删除数据库 delete是用来删除数据的

17.什么是子查询 一个查询的结果,是另一个查询的条件

18.使用什么关键字分组 过滤 分组:group by 过滤: where having

19.左外连接和右外连接的区别 左外连接:返回左边的表所有记录,和右边表中符合过滤条件的数据 右外连接:返回右边表的所有记录,和左边表中符合过滤条件的数据

20.什么是交叉连接 交叉连接也称 笛卡尔积 左表的每一行和右边的所有行组合

21.实现排序限制输出的关键字是什么 ASC:升序 DESC:降序

最新回复(0)