mysql约束!!简单详细新人必看

主键约束介绍

1.数据完整性
	指存储到数据库的数据必须保持正确性和可靠性
2.实体完整性
	1.保证每个记录是唯一性,主属性字段不能为空,不能有相同的值
	1.主键约束
		特征:唯一,不重复,不能为空,针对行来设置,注意:一个表中有且只有一个主键约束
		

主键约束操作(重点)

添加主键约束的方式:
	1.建立表的时候直接添加
	格式一:
	create table 表名(
		列名1 数据类型 primary key,
		列名2 数据类型
	)
	格式二:
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		constraint pk_列名1 primary key(列名1)
	)
	格式三:
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		primary key(列名1)
	)
	2.通过ALTER语句,已有表的情况创建主键约束
	格式一:
	alter table 表名 add constraint pk_id primary key(id)
	格式二:
	alter table 表名 add primary key(id)
	格式三:
	alter table 表名 modify 列名 数据类型 primary key
删除主键约束:
	alter table 表名 drop primary key
联合主键
	1.创建表的时候创建联合主键
	格式一:
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		constraint pk_列名 primary key(列名1,列名2)
	)
	格式二:
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		primary key(列名1,列名2)
	)
	
	2.对已有的表添加联合主键
	格式一:alter table 表名 add constraint pk_列名1_列名2 primary key(列名1,列名2)
	格式二:alter table 表名 add primary key(列名1,列名2)
	

唯一约束(重点)

1.一旦某个列被添加了唯一约束,该列的值不允许重复,可以为空
2.一个表中可以有多个唯一约束,当该列被添加了唯一约束,数据库管理系统会给他指定一个唯一的索引
3.索引:类似于目录
4.如果不给唯一约束起名字,那么唯一约束的名字和列名一样
5.创建唯一约束:一个表中可以有多个唯一约束
	1.创建表的时候创建唯一约束
	格式一:
	create table 表名(
		列名1 数据类型 unique,
		列名2 数据类型,
		列名3 数据类型 unique
	)
	格式二:
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		constraint 唯一约束的名字 unique(列名)
	)
	
	2.针对已有的表添加唯一约束
	alter table 表名 add unique(列名)
	
6.删除唯一约束
alter table 表名 drop index 唯一约束的名字

域完整性(重点)

域完整性介绍:就是限定列的取值范围或取值要求,分默认值约束和非空约束

1.默认值约束
	1.创建表的时候创建默认值约束:可以有多个默认值约束
	create table 表名(
	列名1 数据类型 default '值',
	列名2 数据类型 default '值',
	列名3 数据类型
	);
	2.针对有表的情况添加默认值约束
	alter table 表名 modify 列名 数据类型 default '值'
	3.删除默认值约束
	alter table 表名 modify 列名 数据类型

2.非空约束
	1.要求列的值不能为空
	2.关键字:not null
	3.一个表中可以有多个非空约束
	4.创建表时创建非空约束
	create table 表名(
		列名1 数据类型 not null,
		列名2 数据类型 not null
	)
	5.针对有表时,创建非空约束
	alter table 表名 modify 列名 数据类型 not null
	
	6.删除非空约束
	alter table 表名 modify 列名 数据类型

参照完整性(重点)

1.外键约束
	1.外键约束是实现表与表之间的参照引用
	2.如果要删除主表中有外键约束的,那么要先删除从表中依赖主表的记录
	3.有参照引用的主表的外键列必须有值
	4.注意事项:
		1.外键约束是针对两个表来说的,主表与从表,实现主表与从表之间的参照关系,依赖于在从表中针对某个列建立外键约束
		2.当主表和从表建立起外键约束时,一定是从表中的某个列参照引用主表中的某个列,相当于把一个列当作是连接两个表之间的桥梁。
		3.当主表被从表引用时,主表删除记录时,要看从表是否有引用。
		4.当向从表中做操作--插入数据,先询问主表的意见
		5.一个表中可以有多个外键约束
		6.当从表中的某个列参照主表的某个列时,要求主表的列必须是主键约束或者唯一约束
		7.当从表和主表中以某个列来建立参照约束时,要求这两个表中,列名可以不一致,但是两个列的内容要保持一致,包括数据类型
2.外键约束操作
	1.创建外键约束的关键字:foreign key  references
	格式:
	主表
	create table 表名(
		列名1 数据类型 primary key,
		列名2 数据类型 unique
	)
	从表
	create table 表名(
		列名1 数据类型,
		列名2 数据类型,
		constraint 外键约束的名字 foreign key(从表的列名1) references 主表(主表的列名1),
		constraint 外键约束的名字 foreign key(从表的列名2) references 主表(主表的列名2)
	)
	--外键约束的名字:FK_列名
	2.针对已有的表添加外键约束
	alter table 从表名 add constraint 外键约束的名字 foreign key(从表的列名) references 主表(主表的列名1);

3.删除外键约束
格式:alter table 从表名 drop foreign key 外键约束的名字
	

SQL语言介绍

DML语句:数据操作语句(插入,删除,修改)
实现对表中的数据进行操作

插入数据(重点)

1.insert into
	1.插入的值和列是一一对应关系
2.使用insert into 
	1.格式一:
		insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
		查看表的所有内容:select *from 表名;
	2.格式二:
		insert into 表名 values(值1,值2,值3)
		说明:如果表名后面没有些列名,values的只要把所有的列对应完
3.使用insert into插入多行数据
	insert into 表名 values(值1,值2,值3),(值1,值2,值3)
		

猜你喜欢

转载自blog.csdn.net/BS936/article/details/107643055
今日推荐