Bootstrap

第三章 表的操作和数据完整性的约束

3、修改表

3_1 修改表结构

1、add的用法
在classID后添加了一个名为classmonitor的字段,并定义其类型为varchar,after是指增添字段放在某一列的后面,此处也可设为first,以为将增添的字段放在第一行;
2、modify的用法

 

将classmonitor放到了第一行,作为第一个字段,此时,first后无需再加其他;

3、change的用法

change的要出现旧的字段名和新的字段名,也可进行类型的改变;

以上三种修改语法均可进行字段类型的改变,不同于add和modify可以改变字段的(添加)位置,change只能对字段名和字段类型进行修改。

3_2 更改存储引擎

3_3 重命名表名

4、删除表

使用drop的命令来实现表的删除,可以先打开数据库,再进行删除,或者直接用数据库名.表名。

5、数据的完整性约束

5_1 主键约束(PRIMARY KEY Constraint)

每个表只定义一个主键;主键的值不能为NULL;复合主键不能包含不必要的多余列;一个列名在复合主键的列表中只能出现一次。

1)列级完整性约束

直接把primary key 写在作为主键的列名定义后面;

2)表级完整性约束
可以有多个字段作为主键,此时,作为主键的字段应写在定义后并且将这些字段写在同一个括号里;也可以只有一个字段作为主键,此时括号中只有一个列名。

删除原来的主键并添加新的主键(在修改表时,添加主键)。

5_2 完整性约束的命名

5_3 唯一键约束(UNIQUE KEY Constraint)

1)列级完整性约束

 2)表级完整性约束

 

唯一键的值必须唯一,允许为NULL,但只能有一条记录为NULL。

修改表时,添加唯一键约束(增加新列)

如果表已经存在,那么可以用下面的语句来修改列的属性

显示表中的索引

5_4主键约束与唯一键约束的区别

1、一个表中可以有多列声明为唯一键约束,但只能有一个主键声明;

2、声明为主键的列不允许有空值,声明为唯一键的列允许有空值。

5_5 外键约束(FOREIGN KEY Constraint)

外键是表中的一列或多列,它不是本表的主键,却是另外一个表的主键。

外键用来在两个表的数据之间建立连接。它可以是一列或者多列,一个表

可以有一个或多个外键。外键对应列的数目必须和主表的主键对应列的数目相同。

    外键的主要作用是保证数据引用的完整性。从表参照主表,从表是指外键所在的那个表,从表的记录参照了主表的某条记录,那么主表记录的删除或修改操作可能失败;要想删除主表中被参照的字段,必须先在从表中进行删除。

首先删除从表中引用主表的记录(book是从表,先删除从表中对主表该条记录的参照)

然后删除主表中的记录(borrow是主表,在删除从表中引用主表的记录后,可对主表中的记录进行删除)

1)列级完整性约束

 

2)表级完整性约束

 

在class表中,ClassID被定义为主键约束,才能够在student表中,定义ClassID为外键,同时要保证两表的存储引擎、字符集、校对规则一致,以及ClassID列的数据类型相同

3)通过alter table语句添加外键约束

 

5_6 更新完整性约束

1. 删除约束

(1)删除主键约束

(2)删除唯一键约束

 

(3)删除外键约束

 

;