MySQL学习笔记20151007数据类型主键外键多对多设计思想

来源:互联网 发布:js object 遍历 值 编辑:程序博客网 时间:2024/04/25 12:19

1.varchar特点,当数据超过225个字符时需要用两个字节表示长度,整条记录需要一个额外字节用于保存当前null值,所以create table s_5(a varchar(65533) not null) character set latin1;创建成功,一个记录不论有多少个字段存在都使用同一个字节表达是否为null.

2.一条记录的总长度是65535,所有字段的总长度不应超过65535,同时每条记录需要一个字节保存是否有null值,当且仅当该记录所有字段都not null时,该字节才可以被省略.

3.text类型能表达2^16字节(真实长度为2^16+2字节)

4.枚举类型,(单选)例如enum('female','male')当插入数据时只能插入枚举里面的数据类型.枚举里面存储的实际上是整型,比如上例中插入的是female时实际上插入的是1.

5.最多允许65535个枚举项.

6.set类型(集合类型,不定项选择)例如 set('basket','pingpong','football')可以insert into table_name values('basket,football');存储原理是保存状态,位运算,最多表达64个元素.

7.可以用default声明默认值.常见应用情景,一个字段不能为空,且存在默认值.

8.主键是唯一标识记录的字段或者字段的集合.

9.主键可以是真实实体属性,常利用一个与实体信息不相关属性作为唯一标识.主键不能为null.

10.自动增长可以使用auto_increment标识.

11. 自动增长初始值可以通过表的选项设置alter table table_name auto_increment 10;(即设置初始值为10)如果赋的值小于已经存在最大自动生成的值是可以手动插入的.

12.也可以手动更新,但是不能冲突.手动更新后插入值还是从之前值开始增加,当增加到手动更新值时报错,下一次正常增加,当设置自动增加初始值后则从设置值开始增加.即便设置值小于当前最大值也可以成功,但是增加依旧会按照最大值增加.

13.实体与实体之间的关系

一对一关系:两个实体表存在相同主键字段,一个表主键值等于另一个表里面的主键值,则两条记录一一对应.实体与实体之间的关系此种设计方式又称之为垂直分割.

一对多关系:例如班级与学生.

多对多关系(M:N):例如一个老师为多个班级教学,并且一个班级被多个老师教学.侧重点在于班级可能对应多个老师,老师也可能对应多个班级.

(多对多设计侧重点为利用一个中间表表示实体间的关系.一个多对多关系映射为两个一对多关系.)

14.外键是一种逻辑关系.

0 0
原创粉丝点击