mysql约束

约束:

​ 作用:为了保证数据的有效性和完整性

​ mysql中常用的约束:主键约束(primary key ) 唯一约束(unique) 非空约束(not null ) 外键约束(foreign key )

主键约束

主键约束:被修饰过的字段唯一非空
	注意:一张表只能有一个主键,这个主键可以包含多个字段(联合主键)
	方式1:建表的同时添加约束	格式:字段名称  字段类型  primary 可以
	方式2:建表的同时在约束区域添加约束
	      所有字段声明完成之后,就是约束区域了
	      格式:primary key(字段1,,字段2)
	       create table pK01(
	       		id  int ,
	       		username  varchar(20)
	       		primary key(id)
	       );
	 方式3:建表之后 ,通过修改表结构添加约束
	 		create table pk02(
	 			id int,
	 			username  varchar(20)
	 		)
	 		alter table pk02 add 	primary key(字段1,字段2,...)
	

increment自增要求:
1.被修饰的字段类型支持自增.—般int
2.被修饰的字段必须是一个key一般是primary key

唯一约束

唯一约束:
	被修饰过的字段唯一,null不起作用
	方式1:建表的同时添加约束格式:字段名称字段类型unique	
		create table un (
				id int unique,
				username varchar (20)unique
				);

	方式2:建表的同时在约束区域添加约束
		所有的字段声明完成之后,就是约束区域了
		unique(字段1,字段值2...)
	方式3:建表之后,通过修改表结构添加约束
		alter table表名add unique(字段1,字段2);-- 添加的联合唯一
		alter table表名add unique(字段1);--给一个添加唯一
		alter table表名add unique(字段2);--给另一个添加唯一


非空约束

非空约束(了解)
特点:被修饰过的字段非空方式:
create table nn (
    id int not null,
    username varchar (20) not null
) ;

外键约束

 一对多
 
在开发中,我们将一对多的关系,一方称之为主表或者是一表,多方称之为 多表或者从表。
为了表示一对多的关系, 一般会在多表的地方添加一个字段。
字段名称自定义(建议:主表的名称_id) ,字段类型一般和主表的主键类型保持一致,
我们称之为这个字段为外键(约束)

为了保证数据的有效性和完整性,添加约束(外键约束) 
    在多表一方添加外键约束
         格式:
	alter  table 多表名称   add  foreign key (外键名称)  references  主表名称(主键)
        列如:       alter  table orders  add  foreign key(user_id)   reference  user(id)
 添加外键约束有以下特点:sql
    1.主表不能删除从表中已引用的数据
    2.从表中不能添加主表中不存在的数据
多对多
在开发我们一般引入一张中间表,在中间表中存放两张表的主键,一般还会将这两个主键设置成中间表的联合主键,将多对多拆分为两个一对多
为了保证数据的有效性和完整性,在中间表上添加两个外键(约束)

alert table orderitem add   foreign key(opd)   reference   orders(id)

alert table orderitem add   foreign key(pid)   reference   product(id)

一对一
在开发中,例如:person idcard
思路1:将两个实体合二为一
思路2:在一个表上将这个表的主键设置成外键且添加外键约束.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值