MySQL 基础+高级篇- 数据库 -sql -尚硅谷130-134章DDL语言完结

#修改表时添加约束
#1.添加非空约束
/*
1.添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束
2.添加表级约束
alter table 表名 add 【constraint 约束名】约束类型()【外键的引用】;
*/
USE vain;
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20)NOT NULL;
DESC stuinfo;
ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;
ALTER TABLE stuinfo ADD PRIMARY KEY(id);
ALTER TABLE stuinfo ADD UNIQUE(seat);
ALTER TABLE stuinfo ADD FOREIGN KEY(majorid)REFERENCES major(id);
#三:修改表时删除约束
#1.删除非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;
#2.删除默认约束
ALTER TABLE stuinfo MODIFY COLUMN age INT;

#3.删除主键
ALTER TABLE stuinfo DROP PRIMARY KEY;
ALTER TABLE stuinfo ADD PRIMARY KEY(id);

#4.删除唯一键
ALTER TABLE stuinfo DROP INDEX seat;

SHOW INDEX FROM stuinfo;
#5.添加约束
# alter table 表名 add (constraint 别名) foreign key(外键) references 某个表的(主键) 
#标识符:
/*
又称位自增长列 auto_increment
含义:可以不用手动插入值,系统提供默认的序列值
*/
#一:创建表时,设置标识符
CREATE TABLE tab_identity 
(
id INT PRIMARY KEY AUTO_INCREMENT,
 NAME VARCHAR (20));
 INSERT INTO `tab_identity`(NAME) VALUES('join');
 SELECT * FROM `tab_identity`;
 SHOW VARIABLES LIKE '%auto_increment%';
 SET auto_increment_increment=1;
 INSERT INTO `tab_identity`(NAME) VALUES('join');

/*
标识列不一定和主键搭配,但要求时一个Key
一个表至多可以有一个自增长列
标识列的类型只能是数值型
*/
#二修改表时,设置标识列
ALTER TABLE `tab_identity` MODIFY COLUMN id INT;
DESC `tab_identity`;
ALTER TABLE `tab_identity` MODIFY COLUMN id INT AUTO_INCREMENT;

你可能感兴趣的:(数据库学习笔记)