**********************补2016年5月23日的博客*************************
MySQL数据库 常用数据类型:
int 整数型 4个字节
Varchar 字符串型 1个字是两个字符
bit bool型
datetime 日期时间型 长度(字节):8
decimal 小数型
float double 小数型
注:
varchar 规定长度,不管内容长度多少,实际长度小于等于规定长度
char规定长度,不管内容长度多少实际长度就是规定长度
建表应该注意的有:
【1】分类、分层、分步
【2】在数据库图表中的表之间创建关系:
一对多关系
一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。例如,publishers
和 titles
表之间具有一对多关系:每个出版社出版很多书,但是每本书名只能出自一个出版社。
只有当一个相关列是一个主键或具有唯一约束时,才能创建一对多关系。
多对多关系
在多对多关系中,A 表中的一行可以匹配 B 表中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由 A 表和 B 表的外部键组成。例如,authors
和 titles
表具有多对多关系,这是由于这些表都与titleauthors
表具有一对多关系。titleauthors
表的主键是 au_id
列(authors
表的主键)和 title_id
列(titles
表的主键)的组合。
一对一关系
在一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。
这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。可以利用一对一关系来:
- 分割具有多列的表。
- 由于安全原因而隔离表的一部分。
- 保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据。
- 保存只适用于主表的子集的信息。
举例一:
(1) 一对一: 班级与班长之间的联系:
一个班级只有一个正班长
一个班长只在一个班中任职
(2) 一对多:班级与学生之间的联系:
一个班级中有若干名学生,
每个学生只在一个班级中学习
(3) 多对多:课程与学生之间的联系:
一门课程同时有若干个学生选修
一个学生可以同时选修多门课程
举例二:
员工姓名,员工性别,员工年龄,岗位,部门名称,部门主管,部门职责。
如果它们都放在一起会产生冗余,粘连。
所以要建两个表:
员工(员工姓名,员工性别,员工年龄,岗位,部门代号)
部门(部门名称,部门主管,部门职责,部门代号)
举例三:
老师(代号,姓名,性别,年龄)
课程(代号,名称,课时数)
课程安排表(老师代号,课程代号,时间段)