MySQL建表约束

MySQL建表约束

一、主键约束

1、作用:它能够唯一确定一张表中的一条记录,也就是我们通过某个字段添加约束,就可以使得该字段不重复且不为空。
	create table user(
		id int primary key,
		name varchar(20)
		);

使用peimary key 修饰后,插入(insert) id就不能为空和重复了。

2、多个数据加主键约束

联合约束:联合约束可以在最后添加上primary key(value1,value2)

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

联合主键和单个主键一样,任何一个数据都不能为空。但只有当联合主键里所有键都重复才不能重复。

二、自增约束

1、作用:自增约束和主键约束primary key 搭配在一起可以自动帮我们输入并增加数据值
	create table user(
 			 id int primary key auto_increment,
 			 name varchar(20),
 			  );

因此当我们输入
insert into user (name) values(‘张三’);
时,数据表自动变成了。 1 张三

三、唯一约束

作用:约束修饰的字段的值不可以重复。(可以为空)
	create table user(
		id int,
		name varchar(20)  ,
		unique(name),
		);

因此name不能重复。如果使用unique(name,id)则表示这两个键在一起不重复就行。

四、非空约束

作用:修饰的字段不能为空NULL。
	create table user(
	id int,
	name varchar(20) not null
	);

此时name不能为空。

五、默认约束

作用:插入字段的时候,如果没有传值,就会使用默认值
	create table user
		id int,
		name varchar(20),
		age int default 10
		);

此时,使用
insert into user(id,name) values(‘1’,‘张三’);
会发现,并没有给age传值,但表为 1 张三 10

六、 外键约束

涉及到两个表:父表,子表(主表,副表)。
创建班级表:
	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)
		);
		
		
	insert int (name) classes values(1,'一班');	
	insert int (name)classes  values(3,'二班');
	insert int (name) classes values(4,'三班');
	insert int (name) classes values(4,'四班');   
			
	insert into student values (1001,'张三',1);
	insert into student values (1002,'李四',5);//此时会报错。
外键约束作用:
1.主表classes中没有的数据值,在副标(子表)中,是不可以使用的
2.主表中的记录被副表引用,是不可删除的。

七、 如果说我们建表时忘记创建约束了,怎么办?

	create table user(
		id int,
		name varchar(20),
		);
1、添加约束
	alter table user add primary key(id);
2、删除约束
	alter table user drop primary key;

注意:删除指定字段约束是:(加上index 与字段名)

	alter tabe user drop index name;		
3、使用modify修改字段添加约束
	alter tabll user modify id int primary key;	
4、foreign key 不能添加常见原因:

1.检查是否指向的键是主键。
2.检查是否已经建立了索引,一个外键必然会有一个索引。
3.检查是否表内已经存有数据,导致约束失败
4.检查被参考键和参考键的类型是否相同
5.检查是否重建了同名的索引,比如第一次建立失败,再次建立可能会因为索引重复导致失败
6.检查是否在键上设置了unsigned。
7、表类型是否相同,如一个为MyISAm一个为InnoDB

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,可以通过约束来保证中数据的完整性和一致性。常见的约束有主键约束、唯一约束、非空约束和外键约束等。下面是MySQL时的约束介绍: 1. 主键约束:主键是一种特殊的唯一约束,它能够唯一确定一张中的一条记录。在MySQL中,可以通过以下两种方式添加主键约束: ①在创时添加主键约束: ```mysql CREATE TABLE user ( id INT PRIMARY KEY, # 添加主键约束 name VARCHAR(20), age INT ); ``` ②在创后添加主键约束: ```mysql ALTER TABLE user ADD PRIMARY KEY (id); # 添加主键约束 ``` 2. 唯一约束:唯一约束用于保证某个字段的值在中是唯一的。在MySQL中,可以通过以下两种方式添加唯一约束: ①在创时添加唯一约束: ```mysql CREATE TABLE user ( id INT, name VARCHAR(20) UNIQUE, # 添加唯一约束 age INT ); ``` ②在创后添加唯一约束: ```mysql ALTER TABLE user ADD UNIQUE (name); # 添加唯一约束 ``` 3. 非空约束:非空约束用于保证某个字段的值不为空。在MySQL中,可以通过以下两种方式添加非空约束: ①在创时添加非空约束: ```mysql CREATE TABLE user ( id INT, name VARCHAR(20) NOT NULL, # 添加非空约束 age INT ); ``` ②在创后添加非空约束: ```mysql ALTER TABLE user MODIFY name VARCHAR(20) NOT NULL; # 添加非空约束 ``` 4. 外键约束:外键约束用于保证之间的数据一致性。在MySQL中,可以通过以下两种方式添加外键约束: ①在创时添加外键约束: ```mysql CREATE TABLE order ( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES user(id) # 添加外键约束 ); ``` ②在创后添加外键约束: ```mysql ALTER TABLE order ADD FOREIGN KEY (user_id) REFERENCES user(id); # 添加外键约束 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值