建表约束1主键约束

主键约束
使某个字段不重复且不得为空,确保表内数据的唯一性。

CREATE TABLE user(
id INT PRIMARY KEY,
name VARCHAR(20)
);
INSERT INTO user VALUES (1,'张三');

+----+------+
| id | name |
+----+------+
|  1 | 张三 |
+----+------+

运行DESCRIBE user;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+


发现 id是不可以为null 而且 key的值 也变为:PRI(primary)
联合主键
联合主键的每一个字段不能为空,并且加起来不能和已设置的联合主键重复。


```sql
create TABLE user(
id int,
name varchar(20),
passw varchar(20),
primary key(id,name)
);

运行DESCRIBE user2;

±---------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±---------±------------±-----±----±--------±------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| password | varchar(20) | YES | | NULL | |
±---------±------------±-----±----±--------±------+

INSERT INTO user2 VALUES (1,'老王','123456');
INSERT INTO user2 VALUES (2,'老王','123456');

±—±-----±---------+
| id | name | password |
±—±-----±---------+
| 1 | 老王 | 123456 |
| 2 | 老王 | 123456 |
±—±-----±---------+

说明了复合主键只要所有的字段都不是相同的情况下可以允许其中的字段重复:
自增约束
自增约束的主键由系统自动递增分配

create table user(
id int primary key AUTO_INCREMENT,
name varchar(20)
);

添加主键约束
如果忘记设置主键,可以通过以下两种方式设置

alter table user add primary key(id);
alter table user modify id int primary key;

删除主键

alter table user drop primary key;




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值