1.主键和外键的区别
-
主键是唯一标识的一条记录 不允许重复 ,不能为空 外键可以重复 可以为空值
-
主键用来保存数据完整性 外键用来建立与其他表联系
-
主键只有一个,外键可以多个
2.mysql 的内连接、左连接、右连接有什么区别?
2.1 内连接
-
显示两张表中有联系的所有数据
2.2 左连接
-
以左表为参照,显示左表所有的数据,右表中没有则用null显示
2.3 右连接
-
以表为参照,显示左表所有的数据,右表中没有则用null显示
3.数据库的三大范式
3.1 第一范式 1NF(确保每列保持原子性)
-
第一范式是最基本的范式,数据库的所有字段要要保证都是不可分解的原子值
3.2 第二范式 2NF(确保表中每列都和主键相关)
-
第二范式也就是说在一个数据表内,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据表中
3.3 第三范式 3NF(确保每列都和主键列直接相关,而不是间接相关)
-
第三范式确保每列都和主键列直接相关,而不是间接相关
4.MYSQL 约束有哪几种呢
-
常用的五种:主键、外键、唯一、默认、非空
5.什么是数据库事务?
-
数据库事务是一个数据库的操作序列,这些操作要么全部执行,要么全部不执行,它的特点就是原子性、一致性、隔离性、持久性
6.分别简述MYSQL中MyISAM和InnoDB存储引擎的使用场景
6.1 MyISAM使用场景
-
不需要事务支持的业务
-
以读为主的业务 例如:图片信息数据库、用户数据库等
-
对数据线一致性要求比较低的业务
-
数据库修改较少的业务
-
总结:单一对数据库的操作都可以使用MYISAM
6.2 InnoDB的使用场景
-
需要事务支持的场景
-
数据读写和更新较为频繁的业务
-
数据一致性要求较高的业务
7.简述视图的优点、缺点
7.1 视图的优点
-
简化操作
-
更加安全,能够保护数据
-
逻辑数据独立性
-
降低耦合
7.2 视图的缺点
-
性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。
-
表依赖关系
8.简述索引的优点、缺点
8.1 索引的优点
-
大幅提高系统性能,帮助用户提高查询的速度
-
保证数据库表中每一行数据的唯一性。
-
加速表和表之间的连接
-
降低查询中分组和排序的时间
8.2 索引的缺点
-
存储需要占用磁盘空间
-
当数据量大的时候,索引的创建和维护需要大量成本和时间
-
降低表的增删改的效率
9.什么是存储过程?有哪些优缺点?
9.1 存储过程
-
编译好的sql语句,这些语句像方法一样实现一些功能,给这些代码取名,需要这个功能的时候进行调用
9.2 优缺点
-
优点:执行效率高、减少客户端压力、提高通信效率、在一定程度上确保数据安全、允许模块化程序设计
-
缺点:调试麻烦、可移植性不灵活
10. MySQL中都有哪些触发器,并简述触发器的优缺点
-
6种触发器:插入前后、更新前后、删除前后
-
优点:确保数据的完整性、帮助记录操作日记、在操作数据前,对数据进行和合法性检查
-
缺点:可读性差、相关数据的变更,可能会导致触发器出错