概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。mysql
1. 主键约束:primary key 2. 非空约束:not null 3. 惟一约束:unique 4. 外键约束:foreign key
1. 建立表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 ); 2. 建立表完后,添加非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; 3. 删除name的非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20);
1.建立表时,添加惟一约束sql
CREATE TABLE stu( id INT, phone_number VARCHAR(20) UNIQUE -- 添加了惟一约束 ); * 注意mysql中,惟一约束限定的列的值能够有多个null
ALTER TABLE stu DROP INDEX phone_number;code
在建立表后,添加惟一约束索引
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE; !!:若是添加约束前存在相同值,添加语句执行后会报错
1.注意:rem
1.含义:非空且惟一 2.一张表只能有一个字段为主键 3.主键就是表中记录的惟一标识
2.在建立表时,添加主键约束table
create table stu( id int primary key,-- 给id添加主键约束 name varchar(20) );
3.删除主键语法
-- 错误 alter table stu modify id int ; ALTER TABLE stu DROP PRIMARY KEY;
4.建立完表后,添加主键im
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
5.自动增加:数据
1. 概念:若是某一列是数值类型的,使用 auto_increment 能够来完成值得自动增加 2. 在建立表时,添加主键约束,而且完成主键自增加 create table stu( id int primary key auto_increment,-- 给id添加主键约束 name varchar(20) ); 3.删除自动增加(由于主键用MODIFY删不了) ALTER TABLE stu MODIFY id INT; 4.添加自动增加 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
让表于表产生关系,从而保证数据的正确性。(外键列值能够为NULL,但不能为另外一张表中没有的值)tab
1. 在建立表时,能够添加外键 * 语法: create table 表名( .... 外键列 constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) ); 2. 删除外键 ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 3. 建立表以后,添加外键 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); 4. 级联操做 1. 添加级联操做 语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ; 2. 分类: 1. 级联更新:ON UPDATE CASCADE 2. 级联删除:ON DELETE CASCADE