014、SQL数据库 表单 数据---约束

约束:

一、概念:对表中的数据进行限定,保证输的格式正确性、有效性和完整性。

二、分类

1、主键约束:primary key

   (1)注意:

       a.主键默认隐含非空条件和唯一条件

       b.一张表只能有一个字段为主键。

       c.主键就是表中记录的唯一标识。

    (2)创建表时添加主键约束。

CREATE TABLE stu(

id INT PRIMARY KEY,

`name` VARCHAR(20)

);

    (3)删除主键约束

ALTER TABLE stu DROP PRIMARY KEY;

    (4)创建表后天剑主键约束

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

2自动增长

注意

a.自动增长 一般 是配合主键一起使用。

b.自动增长在手动添加是可以写null,它会自动进行累进。

c.如果手动插入一个值,那以后自动增长就会在此数值上增加,哪怕把所有数值都删除,也会如此。

(1)创建是添加自动增长

CREATE TABLE stu(

id INT PRIMARY KEY AUTO_INCREMENT,

`name` VARCHAR(20)

);

(2)删除自动增长(注意,看者像是把主键也删除了,但是没有,因为主键删除使用drop,哈哈)

ALTER TABLE stu MODIFY id INT ;

(3)创建表后再添加自动增长

ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

 

  3、非空约束:not null,表示被修饰的那一列不能为null

       (1)创建表示添加约束:

CREATE TABLE stu(

 id INT,

 NAME VARCHAR(20) NOT NULL

);

       (2)创建表后添加非空约束

ALTER TABLE stu MODIFY `name` VARCHAR(20) NOT NULL;

       (3)删除非空约束

ALTER TABLE stu MODIFY `name` VARCHAR(20);

 

4、唯一约束:unique,表示被修饰的那一列值不能重复

   (1) 创建表是添加唯一性约束

CREATE TABLE stu(

id INT,

`name` VARCHAR(20) UNIQUE);

   (2) 运行时添加唯一性约束

ALTER TABLE stu MODIFY `name` VARCHAR(20) UNIQUE;

       (3) 删除唯一性约束 --- 比较特殊

         

 ALTER TABLE stu DROP INDEX `name`;

      注意:

1、设定为唯一性的列,如果没有添加非空条件,则允许有多个 null.

2、注意删除唯一性的语句比较特殊。

4、外键约束:foreign key

定义:让表与另外一个表产生关系,从而保证数据正确定,不能随便被删,也不能填不在范围内数据。

   (1)创建表是添加外键                           

create table 表名(

    …,

    外键列,

CONSTRAINT 外键名称 FOREIGN KEY (外键列) REFERENCES  主表名(主表列名);

);

说明:

* “CONSTRAINT 外键名称”这个可以不写,系统默认分配名字。

* 外键名称是自己给这个键定义的名称,一般写作:表A_主表_key,就像给某成立的新组织取名。

* 外键列意思就是从当前表中,找一个列来连接到主表。

* 主表名并不是说这个表是个主要的表,而是被连接的表名,因为一般都被连接的都是主键。

*主表列名就是当前表连接到主表中的哪个列,从而形成两个表之间的关系。

*外键的值可以为null.

举例:

CREATE TABLE deparment(

         id INT PRIMARY KEY AUTO_INCREMENT,

         dep_name VARCHAR(20),

         dep_location VARCHAR(20)

);

CREATE TABLE employee(

         id INT PRIMARY KEY AUTO_INCREMENT,

         `name` VARCHAR(20),

         age INT,

         dep_id INT,

         CONSTRAINT em_dept_key FOREIGN KEY (dep_id) REFERENCES deparment(id)

);

(2)创建了表之后添加外键

  

 ALTER TABLE 表名ADD CONSTRAINT 外键名称 FOREIGN KEY (外键列) REFERENCES 主表名(主表列名);

(3)删除外键

ALTER TABLE 表名DROP FOREIGN KEY 外键名;

(4)级联操作

定义:修改主表中的被外键的列,和它关联的表中所有数据随之更新。

    * 添加级联关系

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 
主表名称(主列表名称) ON UPDATE CASCADE ON DELETE CASCADE;

举例:

ALTER TABLE employee ADD CONSTRAINT em_dept_key FOREIGN KEY (dep_id) 
REFERENCES deparment(id) ON UPDATE CASCADE ON DELETE CASCADE; 

       *分类:

           a.级联添加:ON UPDATE CASCADE

           b.级联删除(慎用):ON DELETE CASCADE

 

 

发布了103 篇原创文章 · 获赞 4 · 访问量 7766

猜你喜欢

转载自blog.csdn.net/l0510402015/article/details/104261314