mysql

数据类型

整数:INT 4字节 BIGINT 8字节

浮点数:FLOAT 4字节 DOUBLE 8字节 DECIMAL(M,L) L表示小数几个

日期与时间类型:

​ DATETIME 8字节 格式YYYY-MM-DD HH:MM:SS

​ TIMESTAMP 4字节 格式同上

​ DATE和TIME 就是DATETIME的拆分,前后对应。

Q:

数据库引擎

事务的隔离级别

sql语句

多表查询

连接 join 左右连接 内外连接

数据库设计

1.一个重要的概念:什么是函数依赖

一个属性或者一组属性能决定/确定另一个属性的值(这TM就是函数依赖),就称这2者有函数依赖的关系,后者函数依赖于前者。

比如:学号能决定学生的年龄,姓名,班级等等,可以说学号能决定其他属性的值,或者说其他属性的值是函数依赖于学号的。 属性之间的这种依赖关系就称为函数依赖。

函数依赖一种最基本的数据依赖。函数依赖FD在一般数据库设计中是最重要的

可以这样理解:若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。也就是说,在数据表中,不存在任意两条记录,它们在X属性(或属性组)上的值相同,而在Y属性上的值不同。

第二种数据依赖:多值依赖(比较少,数据库设计不用)

一个值,决定一组值。比如一个老师就上2门课。

2.完全和部分函数依赖

对于 A->B,如果能找到 A 的真子集 A’,使得 A’-> B,那么 A->B 就是部分函数依赖,否则就是完全函数依赖。 对于 A->B,B->C,则 A->C 是一个传递函数依赖。

3.码:

候选码简称码。通常可以理解为:假如当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码。一张表中可以有超过一个码。(实际应用中为了方便,通常选择其中的一个码作为主码) 码可以是多个属性构成。

4.非主属性:

包含在任何一个码中的属性称为为主属性

5.四种异常

  • 冗余
  • 插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
  • 修改异常:修改了一个记录(行)中的信息,但是另一个记录中相同的信息却没有被修改。
  • 删除异常: 删除学生的信息 连系的信息也没了、

范式

1.第一范式:属性不可再分。

2.第二范式:每个非主属性完全函数依赖于码(码是2个属性的例子,学生和课程名) 可以通过分解来满足。

3.第三范式:非主属性不传递函数依赖于键码。 进一步分解


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!