第一节 数据完整性

第一节 数据完整性

作用:保证用户输入的数据保存到数据库中是正确的。

确保数据的完整性=在创建表时给表中添加约束

完整性的分类:

  • 实体完整性:行
  • 域完整性:列
  • 引用完整性:学生表(学号,姓名) 成绩表(学号,科目,成绩) 科目表(科目编号,科目名称)

1.1 实体完整性约束

实体:即表中的一行(一条记录)代表一个实体(entity)

实体完整性的作用:标识每一行数据不重复

约束类型:

主键约束(primary key)
唯一约束(unique)
自动增长列(auto_increment)

1.1.1 主键约束(primary key)

注意:每个表中只有一个主键。

特点:数据唯一,且不能为null

示例:

第一种添加方式:

#创建表student
CREATE TABLE student(
     id INT PRIMARY KEY,
     `name` VARCHAR(50)
);

第二种添加方式:此种方式优势在于,可以创建联合主键

CREATE TABLE student(
       id INT,
       `name` VARCHAR(50),
       PRIMARY KEY(id)
);
CREATE TABLE student2(
       id INT,
       identity VARCHAR(20),
       `name` VARCHAR(50),
       PRIMARY KEY(id,identity)
);

1.1.2 唯一约束

特点:数据不能重复,可以为null

CREATE TABLE student(
       id INT primary key,
       `name` VARCHAR(50) uniqe
);

1.1.3 自动增长列

sqlserver数据库(identity)oracle(sequence)

自动增长不能单独使用,一般需要和主键配合。

给主键添加自动增长的数值,列只能是数值类型

CREATE TABLE student5(
       id INT PRIMARY KEY AUTO_INCREMENT,
       `name` VARCHAR(50) 
);
CREATE TABLE student6(
       id INT PRIMARY KEY AUTO_INCREMENT,
       `name` VARCHAR(10)
)AUTO_INCREMENT=10;#从10开始,递增1

1.2 域完整性约束

域完整性约束的作用:限制此单元格的数据正确,不对其他单元格起作用,域代表当前单元格

域完整性约束:数据类型、非空约束(not null)、默认值约束(default)

check约束(mysql不支持)check(sex = '男’or sex =‘女’)

1.2.1 数据类型

数值类型
类型 大小 范围(有符号) 范围(无符号) 用途
tinyint 1字节 (-128,127) (0,255)
smallint 2字节 (-32768,32767) (0,65535)
mediumint 3字节 (-8388608,8388607) (0,16777215)
int或integer 4字节 (-2147483648,2147483647) (0,4294967295)
bigint 8字节 (-9233372036854775808,9233372036854775807) (0,18446744073709551615) 极大
float 4字节 查看帮助文档 查看帮助文档
double 8字节
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值