MySQL约束讲解

一、主键约束

它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。在该例子中,字段为id和name。

对字段id进行添加逐渐约束:

create table user(
    id INT primary key,
    name VARCHAR
);

insert into user values(1,"张三");
//添加主键之后,就不能添加id为1的元素了
//联合主键,只要其中一个主键元素不同便可以进行添加
//id,name都是主键
create table user2(
    id INT,
    name VARCHAR(20),
	PRIMARY KEY(id, name)
);

二、自增约束

自增约束,通常与主键一起进行搭配使用

create table user3(
    id INT PRIMARY key auto_increment,
    name VARCHAR(20)
);

如果在创建表的时候忘记创建主键约束,

方法一:为指定字段添加主键约束的方法
alter table user4 add primary key(id);
删除指定字段的主键删除方式
alter table user4 drop primary key(id);
方法二:为指定字段添加主键约束方法
alter table user4 modify id int primary key;

三、外键约束

外键约束涉及到了两个表:父表与子表

1、主表classes中不存在的数据值,在副表中,是不可以使用的
2、主表中的记录被副表引用,是不可以被删除和更新的。

//classes为主表,students为子表;
//在子表的class_id中,使用了主表中的id标号
CREATE TABLE classes(
	id INT PRIMARY KEY,
	name VARCHAR(20)
);
	
CREATE TABLE students(
	id INT PRIMARY KEY,
	name VARCHAR(20),
	class_id INT,
	FOREIGN KEY(class_id) REFERENCES classes(id)
);

 

四、唯一约束

为变量添加唯一约束的两种方法,约束修饰字段的值不可以重复。同时也要说明的是,如果是unique(id,name)的话,只需要“组合整体“的内容不相同就可以了,不用各个部分都不相同。

CREATE TABLE user6(
	id INT,
	name VARCHAR(20),
	unique(name)//为name变量添加唯一约束
);

CREATE TABLE user6(
	id INT,
	name VARCHAR(20) unique//为name变量添加唯一约束
);

alter table user6 drop index name;//删除指定字段的唯一约束
alter table user6 modify name VARCHAR(20) unique;

添加约束的方法:
方法一:建表的时候添加约束
方法二:可以使用alter .... add...
方法三:可以使用alter .... modify...
删除约束的方法:
alter ... drop...

五、非空约束

CREATE TABLE user7(
	id INT,
	name VARCHAR(20) not null
);
//在有not null修饰的字段中,插入值时必须给相应的字段赋值

六、默认约束

就是当我们插入字段时,如果没有传值,就是使用默认值。

CREATE TABLE user8(
	id INT,
	name VARCHAR(20),
	age INT DEFAULT(10)//为age设置默认属性
);

//设置插入的两种方式
insert into user8 (id, name) values(1,"张三");
insert into user8 values(1,"张三",90);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值