mysql--主外键/自增

这篇博客详细介绍了MySQL中的主键、自增、唯一性、非空约束以及外键约束的创建、修改和删除操作。通过示例展示了如何在创建表时定义主键、约束,以及如何在后期通过ALTER语句添加和删除主键。同时,文章讨论了如何使用NOT NULL、DEFAULT和AUTO_INCREMENT属性,并探讨了MySQL对外键约束的支持。最后,提到了检查性约束在MySQL中的局限性和可能的替代方案。
摘要由CSDN通过智能技术生成

1、主键:表中有一列或几列组合的值能用来唯一地标识表中的每一行,这样的一列或者多列的组合叫做表的主键。

CREATE TABLE studentb(
id INT PRIMARY KEY,
sname VARCHAR(50),
ssage INT
);

验证 Error Code : 1062 Duplicate entry ‘100’ for key 1

INSERT INTO studentb VALUES(100,‘徐林林’,50);
SELECT * FROM studentb;

2、另一种方式,用constraint定义

CREATE TABLE studentc(
id INT ,
sname VARCHAR(50),
ssage INT ,
CONSTRAINT pk_student PRIMARY KEY(id)
);
INSERT INTO studentc VALUES(100,‘王健林’,50);
SELECT * FROM studentc;

3、用ALTER语句补充声明主键:alter table 表名 add constraint 约束名 primary key(列名)

ALTER TABLE student ADD CONSTRAINT pk_sno PRIMARY KEY(sno);

查看一个表有哪些约束 TABLE_CONSTRAINTS

SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘studentc’;

删除主键约束

SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘student’;
ALTER TABLE student DROP PRIMARY KEY;

在MySQL中删除主键需要两步.(1)如果有auto_increment,先删除之;(2)删除主键约束 primary key。

#首先要删除auto——increment alter table aaa modify id int(11);#这里用的modify,只改变数据类型,也可以用change,

改变列名的同时输入新的数据类型。

4、唯一性约束:alter table 表名 add constraint uq_列名 unique(列名)

ALTER TABLE student ADD CONSTRAINT uq_sname UNIQUE(sname);
SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE table_name = ‘student’;

验证 Error Code : 1062 Duplicate entry ‘王健林’ for key 1

SELECT * FROM student;
INSERT INTO student VALUES(100,‘王健林’,‘男’,‘深圳’);
INSER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值