AI智能
改变未来

Mysql数据库的知识点_chenjie的博客


1、主键、外键、超键、候选键

主键:数据库表中对存储数据对象予以唯一和完整表示的数据列或者属性的集合。一个数据列只能由一个主键,且不能为空。
外键:在一个表中存在的另一个表的主键称为外键。
超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
候选键:是最小超键,即没有冗余元素的超键。

2、什么是数据库的三范式

第一范式:所有字段值都不能再拆分。
第二范式:在一张数据库表中,一张表只描述一件事,不把多件事保留再一张表中
第三范式:确保每一列和主键是直接关联,而不是间接关联。

3、char和varchar的区别?

一、char的长度不可变,而varchar的长度可变。定义char[10]和varchar[10],如果存进去’abc’, char所占的长度任然为10,除了前面的“abc”外,后面还跟着7个空格,此时varchar长度是3,取数据的时候char需要用trim()方法取出多余的空格,varchar是不需要的。
二、char读取速度比varchar快,因为长度固定,方便存储和查找,但是浪费空间。
三、char的存储方式是一个英文字符占1个字节,一个汉字占2个字节;varchar的存储方式是英文字符和汉字都占2个字节。

4、%和_的区别是什么?

两者都是用于mysql数据库进行模糊查询的关键操作符。

%这个符号通常可以匹配任意字符,匹配0个也行。
_这个符号只能匹配单个的字符,不能多也不能少。

5、count(*)、count(1)和count(column)的区别

count()对行的数据进行统计,其中也包含有NULL行。
count(cloumn)对指定列的值进行行数的计算,不包含NULL行。
count(1)和count()的结果是一样的。

性能问题
+如果表中没有主键,那么count(1)比count()快。
+如果有主键,那么count(主键,联合主键)比count()快。
+如果表中只有一个字段,count()最快。
**count(1)和count(主键)一样,只扫描主键;而count()和count(非主键)一样,会扫描整个表。前者明显要快。**

6、什么是事务?

事务是对数据库中的一系列操作进行统一的提交或者回滚操作,用来保证某一次操作的数据完整性和一致性。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Mysql数据库的知识点_chenjie的博客