主键约束介绍
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)