/*约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性
分类:1、主键约束:primary key 2、非空约束:not null 3、唯一约束:unique 4、外键约束:foreign key */
/*非空约束:not null*/
/*创建表添加非空约束*/
CREATE TABLE stu (
id INT,
NAME VARCHAR ( 20 ) NOT NULL /*name非空*/
);
/*删除name的非空约束*/
ALTER TABLE stu modify NAME VARCHAR(20);
/*创建表完成后,添加非空约束*/
ALTER TABLE stu modify NAME VARCHAR(20) NOT NULL;
desc stu;/*查询表的结构*/
drop table stu;/*删除表*/
/*唯一约束:unique*/
/*在创建表时,条件唯一约束*/
CREATE TABLE stu (
id INT,
NAME VARCHAR ( 20 ) NOT NULL, /*name非空*/
phone_number VARCHAR(20) UNIQUE/*手机号*/
);
/*删除唯一约束*/
ALTER TABLE stu DROP INDEX phone_number;
/*在表创建完后,添加唯一约束*/
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
/*主键约束:primary key 非空且唯一*/
/*在创建表时,添加主键约束*/
CREATE TABLE stu(
id INT PRIMARY KEY,/*给id添加主键约束*/
NAME VARCHAR(20)
);
/*删除主键*/
ALTER TABLE stu DROP PRIMARY KEY;
/*创建完表后,添加主键*/
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
/*主键约束 自动增长:如果某一列是数值类型的,使用auto_increment来完成值的自动增长*/
CREATE TABLE stu(
id INT PRIMARY KEY auto_increment,/*给id添加主键约束*/
NAME VARCHAR(20)
);
INSERT INTO stu VALUES(null,'aaa');/*如果null为10,则下一条数据的id为11*/
DELETE from stu where id=1;
select id,name FROM stu;
/*PRIMARY key(一个表的主键,另一个表的主键) :联合主键*/
/*外键约束:foreign key 数据有冗余:拆分为2个表*/
/*语法:create table 表名(
...
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主列表名称)
);
/*在创建表时,可以添加外键*/
CREATE TABLE stu(
id INT PRIMARY KEY auto_increment,/*给id添加主键约束*/
NAME VARCHAR(20),
dep_id INT,/*外键对应主表的主键*/
CONSTRAINT stu_dept FOREIGN KEY (dep_id) references dept(id)
);
/*删除外键 语法:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;*/
ALTER TABLE stu DROP FOREIGN KEY stu_dept;
/*添加外键 语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) references dept(主表名称);*/
ALTER TABLE stu ADD CONSTRAINT stu_dept FOREIGN KEY (dep_id) references dept(id);
/*级联操作:ON UPDATE CASCADE(更新) ON DELETE CASCADE(删除)*/
ALTER TABLE stu ADD CONSTRAINT stu_dept FOREIGN KEY (dep_id) references dept(id) ON UPDATE CASCADE;
数据库的约束(对表中的数据进行限定,保证数据的正确性、有效性和完整性)
最新推荐文章于 2021-09-05 21:01:28 发布