数据库中数据完整性介绍

数据库的完整性介绍

用来保证存放到数据库中的数据是有效的,即数据的有效性和准确性。

而为了保证数据的有效性和准确性,就需要在创建表时给表中添加约束(当然也可以后续添加)。

数据库完整性的分类:

  • 实体完整性(行完整性)

  • 域完整性(列完整性)

  • 引用完整性(关联表完整性)

约束的分类:

  • 主键约束:primary key

  • 唯一约束:unique [key]

  • 非空约束:not null

  • 默认约束:default

  • 自动增长:auto_increment

  • 外键约束:foreign key

如果有多个约束,之间应该用空格间隔开

示例:

create table student(
    studentno int primary key auto_increment,
    loginPwd varchar(20) not null default '123456',
    studentname varchar(50) not null,
    sex char(2) not null,
    gradeid int not null,
    phone varchar(255) not null,
    address varchar(255) default '学生宿舍',
    borndate datetime,
    email varchar(50)
);

 

1.实体完整性

实体:表中的一行记录就表示一个实体。

实体完整性:标识行的数据不重复。

包含的约束类型:

  • 主键约束:primary key

  • 唯一约束:unique [key]

  • 自动增长:auto_increment

1.1主键约束

每一个表都只能有一个主键。标识为主键的列数据唯一且不能为null。(当一张表有多个主键时,我们称之为联合主键,即用多个字段一起作为一张表的主键)

主键约束添加方式:

(1)创建表时在列名的后面添加主键约束。

CREATE TABLE student( id int primary key, name varchar(50) );

(2)创建表时在所有列名最后添加主键约束(方便建立联合主键)

CREATE TABLE student( id int, name varchar(50), primary key(id) ); 
CREATE TABLE student( classid int, stuid int, name varchar(50), primary key(classid,stuid) );

(3)创建完表后进行更改

CREATE TABLE student( id int, name varchar(50) ); 
ALTER TABLE student ADD PRIMARY KEY (id);

1.2唯一约束 

保证不同行的数据不能重复

CREATE TABLE student( Id int primary key, Name varchar(50) unique );

1.3自动增长约束

当设置某列自动增长约束时,该列只能是整数类型。

自动增长约束可以设置任意字段,并不一定非要是主键。

自增长字段可以不进行赋值,它自动从1开始每插入一条数据就加一。

CREATE TABLE student( Id int primary key auto_increment, Name varchar(50) );

2.域完整性

域完整性是用于限制某列的各个单元格中数据,是对单个单元格数据进行约束,不对照其他单元格比较。

包含的约束类型:

  • 非空约束:not null

  • 默认约束:default

  • check约束(mysql不支持此约束)

2.1非空约束

设置单元格值非空

CREATE TABLE student( Id int primary key, Name varchar(50) not null, Sex varchar(10) ); 
INSERT INTO student values(1,’tom’,null);

2.2默认约束

设置添加数据时的默认值

CREATE TABLE student( Id int primary key, Name varchar(50) not null, Sex varchar(10) default '男' ); 
insert intostudent1 values(1,'tom','女'); 
insert intostudent1 values(2,'jerry');

3.引用完整性

不同表之间的关联通过引用完整性来约束。

引用完整性只包含外键约束:foreign key

外键的数据类型一定要和对应的参照列(另一个表的主键列)相同。

外键约束的添加方式:

(1)创建表时添加

//constraint 自定义外键名称 foreign key(外键列名) references 主键表名(主键列名)
CREATE TABLE student(id int primary key, name varchar(50) not null, sex varchar(10) default '男' );
create table score(id int primary key, score int, sid int , constraint fk_score_sid foreign key(sid) references student(id));

(2)后续添加

ALTER TABLE score ADD CONSTRAINT fk_score_sid FOREIGN KEY(sid) REFERENCES student(id);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值