MySQL数据库基本操作-约束

1、分类

-- 每个表最多只允许一个主键,主键约束列不允许重复,也不允许出现空值。
主键约束(primary key) PK
自增长约束(auto_increment)
非空约束(not null)
唯─性约束(unique)
默认约束(default)
零填充约束(zerofill)
外键约束(foreign key)FK

2、主键

语法案例

CREATE TABLE reader(
	id     INT primary key,   -- 主键
	card_id char(18), 
	gender VARCHAR(10),
	age    INT,
	birth  DATE,
	score   DOUBLE
);

3、联合主键

语法结构

CREATE TABLE reader(
	primary key (列名1,列名2,列名3.... )   -- 主键
);

语法案例

-- 联合主键 constraint
CREATE TABLE emp(
	name     VARCHAR(10), 
	de VARCHAR(10),
	-- 	constraint关键字  PK1加不加都行 主键名称
	constraint   pk1 primary key(name,de)
);

4、修改表结构添加主键

语法结构

creat table 表名(
...
);
alter table <表名> add primary key (字段名);

语法案例

CREATE TABLE emp(
	name     VARCHAR(10), 
	de VARCHAR(10),
);
alter table emp add primary key (name);

5、删除主键约束

语法结构

alter table <表名> drop primary key;

语法案例

alter table emp drop primary key;

6、自增约束

当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录 主键会自动以相同的步长进行增长。

语法结构

字段名 数据类型 auto_increment

语法案例

CREATE TABLE emp(
-- 自增约束
id  INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);

7、指定自增字段约束

语法案例

CREATE TABLE emp(
-- 自增约束
id  INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
)AUTO_INCREMENT=100;  -- 指定自增约束 从100开始

8、非空约束

语法结构

方式1<字段名> <数据类型> not null;
方式2alter table 表名 modify 字段 类型 not null;

语法案例

CREATE TABLE emp(
id INT,
name VARCHAR(20) NOT NULL,
address VARCHAR(20) NOT NULL
);

9、唯一约束

是指所有记录中字段的值不能重复出现

语法结构

方式1<字段名> <数据类型> nuique;
方式2alter table 表名 add coonstraint 约束名 nuique;

语法案例

CREATE TABLE emp(
id INT,
name VARCHAR(20),
phone_number VARCHAR(20) nuique
);
alter table emp add coonstraint 约束名 nuique(id);

10、默认约束

语法结构

方式1<字段名> <数据类型> default <默认值>;
方式2alter table 表名 modify 列名 类型 default 默认值;

语法案例

CREATE TABLE emp(
id INT,
name VARCHAR(20),
address VARCHAR(20) default '北京' -- 指定默认约束
);

11、外键约束

主表的数据被从表依赖时,不能删除,否则可以删除
从表的数据可以随便删除

语法结构

create table语句中,通过foreign key关键字来指定外键,具体的语法格式如下:
constraint 外键名  foreign key(外键列名) references 主表名(主键列名) 

alter table student add constraint fk_student_grade foreign key(gid) references grade(gradeid);

语法案例

CREATE DATABASE mydb;
USE mydb;
-- 创建部门表  主表
CREATE TABLE dept ( 
	detpno VARCHAR ( 20 ) PRIMARY KEY, -- 部门号
	name VARCHAR ( 20 ) -- 部门名字
);
-- 创建员工表,并创建dept_id外键约束
CREATE TABLE emp (
	eid VARCHAR ( 20 ) PRIMARY KEY,-- 员工编号
	ename INT,	-- 员工名字
	dept_id VARCHAR ( 20 ),	-- 所属部门 
	-- 外键约束			外键内容						
	CONSTRAINT emp_fk FOREIGN KEY ( dept_id ) REFERENCES dept ( detpno ) 
)

12、删除外键约束

当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系

语法结构

alter table <表名> drop foreign key <外键约束名>;

语法案例

alter table emp2 drop foreign key dept_id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小王꧔ꦿ

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值