二.SQL语句约束
1.主键约束 主键是一行记录的唯一标识,可以由多列组成,称为联合主键. 特点:非空/唯一/不具有任何业务意义,仅为标识; 关键字:PRIMARY KEY 格式1: CREATE TABLE 表名( 主键名 数据类型(长度) PRIMARY KEY, 列名2 ............. ); 格式2: CREATE TABLE 表名( 列名1 数据类型(长度), 列名2..........., PRIMARY KEY(列名1,列名2...) #联合主键 ); 格式3: CREEATE TABLE 表名( 列名1 数据类型(长度), 列名2 ............ ); ALTER TABLE 表名 ADD CONSTRAINT 关系名称 PRIMARY KEY(列名);删除主键:
ALTER TABLE 表名 DROP PRIMARY KEY;2.自动增长约束
自动增长约束,只能用在整数类型的主键上;当向表中添加数据的时候 ,可以不指定主键的值,由mysql自动增长; 关键字:AUTO_INCREMENT; 注意: 1)如果一次添加数据值失败后,自动增长的主健值已使用,下次不再使用,可以人为设置下一次使用的增长的数据的值; 2)设置自动增长的值为100; ALTER TABLE d AUTO_INCREMENT = 100;3.唯一约束
关键字:UNIQUE 删除格式: ALTER TABLE 表名 DROP INDEX 列名; ALTER TABLE 表名 MODIFY 列名 ....;4.非空约束
关键字:NOT NULL 删除格式: ALTER TABLE 表名 MODIFY 列名 ...;5.默认值约束
关键字:DEFAULT 删除格式 ALTER TABLE 表名 MODIFY 列名...;四.多表
1.一对多关系 如果A表中的一条记录与B表中的多条记录相关,那么,A与B的关系就是一对多的关系,A称为主表,B称为从表; 为保持两张表中有关系的数据的完整性与安全性,通常会设置外键; 外键一定设计在从表中;外键的值保存的是主表中的主健的一个值; 2.多对多关系 如果A表中的一条记录与B表中的多条记录有关系,同时B表中的一条记录与A表中的多条记录也有关系,那么,A与B的关系,称为多对多的关系; 多对多的关系必须使用第3张表,才能描述;第三张表也称为基表; 3.一对一关系 A表的数据与B表的数据一一对应,任何一方都可以作为主表也可以作为从表;实际开发中一对一关系通常会设计成一张; 建表原则: 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一 外键是主键:主表的主键和从表的主键,形成主外键关系 4.外键 格式: ALTER TABLE 从表 ADD CONSTRAINT 外键关系名称 FOREIGN KEY(从表中的列名) REFERENCE 主表(主键); 删除外键: ALTER TABLE 从表 DROP FOREIGN KEY 外键关系名称;五.面试题:
以下两种清空表的方式有什么区别: TRUNCATE TABLE 表名; DELETE FROM 表名;都可以清空表中的所有记录;
TRUNCATE TABLE 表名;是先删除原来的表,再重新建立一张格式相同的新表,因此,会导致自定增长的主键的值,恢复到默认值;(默认值是1) DELETE FROM 表名;是将表中的纪录,逐条删除,不会改变原来的表中的主键的增长的值; 当表中的纪录比较多的时候,建议使用TRUNCATE TABLE 表名;这种方式;