MySQL中主键的定义规则

# 主键使用的细节
-- 1. primary key不能重复而且不能为null
-- 2.一张表最多只能一个主键,但是可以是复合主键

-- 演示复合主键 (id 和 name 做成复合主键)
-- 3.主键的指定方式 有两种
-- 使用desc表名,可以看到primary key的情况

CREATE TABLE t15
	(id INT PRIMARY KEY, -- 表示id列是主键 not null
	`name` VARCHAR(32),
	email VARCHAR(32)
	);

-- 主键列不能为空,且不可以重复
INSERT INTO t15
	VALUES(1,'jack','jack@sohu.com');
INSERT INTO t15
	VALUES(2,'tom','tom@sohu.com');
INSERT INTO t15
	VALUES(1,'monian','monian@sohu.com');
	
SELECT * FROM t15;

当再次插入主键为1的数据时,会报错 

# 主键使用的细节讨论
-- 1. primary key不能重复而且不能为null
-- 2.一张表最多只能一个主键,但是可以是复合主键
CREATE TABLE t16
	(id INT PRIMARY KEY, -- 表示id列是主键 not null
	`name` VARCHAR(32) PRIMARY KEY, -- 【错误】
	email VARCHAR(32)
	);
-- 演示复合主键 (id 和 name 做成复合主键)
CREATE TABLE t16
	(id INT, 
	`name` VARCHAR(32), 
	email VARCHAR(32),
	PRIMARY KEY (id, `name`)  -- 这里就是复合主键
	);
INSERT INTO t16
	VALUES(1,'jack','jack@sohu.com');
INSERT INTO t16
	VALUES(1,'tom','tom@sohu.com');
	
INSERT INTO t16
	VALUES(1,'jack','xx@sohu.com');  -- 这里就是违反了复合主键【错误】

 最后一条数据也是不能输入的

ESC t16;
-- 3.主键的指定方式 有两种
-- 之间在字段后指定: 字段名 primary key
CREATE TABLE t17
	(id INT PRIMARY KEY, -- 表示id列是主键 not null
	`name` VARCHAR(32),
	email VARCHAR(32)
	);
	
CREATE TABLE t18
	(id INT , -- 表示id列是主键 not null
	`name` VARCHAR(32),
	email VARCHAR(32),
	PRIMARY KEY (id)  -- 在表定义最后写上 primary key()  #此处括号不可省
	);

-- 使用desc表名,可以看到primary key的情况

 查看单主键:

-- 使用desc表名,可以看到primary key的情况
DESC t18;

 查看复合主键:

DESC t16;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值