Mysql中约束的操作

Mysql中约束的操作

1 给指定列添加主键约束

sql 复制代码
把表名为emp中的列名为id添加主键约束
alter table emp add primary key (id);

2 Mysql中的自动增长

sql 复制代码
把自动增长类型添加到id列的主键上
alter table emp modify id int auto_increment;

3删除主键

删除emp中id的主键 、此时id中也有自增长类型、应先去掉自增长

去掉自动增长:

sql 复制代码
alter table emp modify id int;

删除主键

sql 复制代码
alter table emp drop primary key;

主键成功删除

4 添加外键约束

创建表1

departments表包含departments_id,departments_name,location_id;

sql 复制代码
create table departments(de_id int,de_name varchar(30),lo_id int);

给de表的de_id列添加主键约束和自动增长

sql 复制代码
alter table de add primary key(de_id);
alter table de modify de_id int auto_increment;

给emp表添加dep_id 列

sql 复制代码
alter table emp add column dep_it int;

添加成功:

给emp表中的dep_id列中添加外键约束

sql 复制代码
alter table emp add constraint emp_fk foreign key(dep_id) references de(de_id) 

语句解释:修改epm表 添加名为emp_fk的外键约束 指向de表的de_id列

查看emp表

sql 复制代码
show create table emp;

5 删除外键约束

删除名称为emp_fk的外键约束

sql 复制代码
alter table emp drop foreign key emp_fk;

原有的约束被删除

6 添加唯一性约束

sql 复制代码
alter table emp add constraint emp_un unique(name);

修改emp表 给emp-un添加唯一性约束

7 删除唯一性约束

sql 复制代码
alter table emp drop key emp_un;

names的唯一性约束被删除

8 添加非空约束

sql 复制代码
alter table emp modify pct float(4,2) not null;

emp表的pct列被添加非空约束

9 删除非空约束

sql 复制代码
alter table emp modify pct float(4,2) null;

查看emp中的pct列

10 创建表时添加约束

建表: create table employees(id int,name varchar(10),salary float(8,2));

表名:depts (dept_id ,dept_name,location_id) 1是主键且自动增长,2具有唯一性约束,3有非空约束

sql 复制代码
create table depts(dept_id int primary key auto_increment,dept_name varchar(30) unique,location_id int not null);

查询表中约束信息:

相关推荐
艾莉丝努力练剑5 小时前
【MYSQL】MYSQL学习的一大重点:事务(上)- 原子性与持久性
android·数据库·学习·mysql·面试
全栈派森20 小时前
告别大表膨胀!MySQL 冷热分离落地全过程(含 CDC 与单行锁抢占实战)
大数据·mysql
篮框坏了20 小时前
大事务 DELETE 锁表排查:删 3344 万行,一个清理任务变成周期炸弹
mysql
LinuxGeek102421 小时前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03适配原生rpm的MySQL 8.4.11版本正式发布
大数据·mysql·kylin
Lucifer三思而后行1 天前
TDSQL MySQL 版 DBA 实用 100 条命令
mysql·tdsql
染指11101 天前
72.高级RAG-sql检索器
python·sql·mysql·llama·llamaindex·高级rag
wWYy.1 天前
Mysql:覆盖索引
android·数据库·mysql
无忧.芙桃1 天前
MySQL数据库原理与实践(五):内置函数
数据库·mysql
wWYy.1 天前
Mysql:一行数据是怎么存储的?
android·数据库·mysql
☆凡尘清心☆2 天前
CentOS Stream 9 专用 LNMP 全自动一键脚本
linux·运维·mysql·nginx·lnmp·centos stream 9