Mysql 常见知识
2022-01-29
Mysql 常见知识
主键、外键和索引的区别?
主键、外键和索引的区别
定义:
主键——唯一标识一条记录,不能有重复的,不允许为空
外键——表的外键是另一表的主键, 外键可以有重复的, 可以是空值
索引——该字段没有重复值,但可以有一个空值
作用:
主键——用来保证数据完整性
外键——用来和其他表建立联系用的
索引——是提高查询排序的速度
个数:
主键—— 主键只能有一个
外键—— 一个表可以有多个外键
索引—— 一个表可以有多个唯一索引
数据库的三大范式?
回答:
第一范式:每个字段都不能再拆分
第二范式:在第一范式的基础上,非主键字段列完全依赖于主键
第三范式:在第二范式的基础上,非主键字段列依赖于主键且不依赖于其他非主键
char和varchar的区别?
回答:
char是定长的,根据定义字符串长度分配足够的空间,如果插入的数据长度小于定长,用空格填充。(因为长度固定,会占据一些多余的空间,空间换时间)
varchar是可变长字符串,长度可变。存取速度不如char快,由于长度不固定,不占据多余空间,时间换空间。
唯一索引 与 主键索引
唯一索引是在表上一个或者多个字段组合建立的索引,这个(或这几个)字段的值组合起来在表中不可以重复。一张表可以建立任意多个唯一索引,但一般只建立一个。
主键是一种特殊的唯一索引,区别在于,唯一索引列允许null值,而主键列不允许为null值。一张表最多建立一个主键,也可以不建立主键。