10数据库完整性约束数据库原理
- 格式:ppt
- 大小:245.50 KB
- 文档页数:28


数据库系统之实体完整性约束
数据库完整性今天做了⼀道数据库的上机题,其中的⼀些知识觉得挺有⽤的,因此打算整理出来⼀篇博客来与⼤家分享⼀下。这⾥的语句针对的都是创建表后所需要的语句。
⼀、题⽬
1.练习定义三类完整性:(1)为student表添加主码约束(2)为course表添加主码和外码约束(3)为sc表添加主码和外码约束(4)为course表添加cname取值唯⼀的约束(5)为course表添加credit默认值为4的default约束(6)为student表添加check约束,ssex取值只能为男或⼥。2.验证上⾯添加的约束(1) 将student表中学号为201910122的学号修改为201215123,验证主码约束机制。(2) 将course表中课程号为6的先⾏课号修改为9,验证外码约束机制。(3) 向sc表中添加⼀条记录,(’666666666’,’1’,80),验证外码约束机制。(4) 修改student表中学号为201215122的学⽣记录,将学号修改为‘11111’验证外码约束机制。(5) 删除student表中学号为201215122的学⽣记录,验证外码约束机制。(6) 将course表中课程号为2号的课程名称修改为数据库,验证唯⼀约束机制。3.删除上⾯添加的约束(1)删除student表的主码约束(2)删除course表的外码约束(3)删除course表中cname取值唯⼀的约束
⼆、题⽬准备
此次上机需要的各个数据库各个字段的数据类型为:
1.student表
2.course表
3.sc表
此次上机需要的各个数据库数据为:
1.student表
2.course表3.sc表
三、题⽬分析
1.练习定义三类完整性:(1)为student表添加主码约束添加主码约束的MySQL语句是:alter table 表名 add primary key(列名);
因为主码必须需要唯⼀并且数据不能重复,发现在student表中只有sno(学号)是每个⼈唯⼀标识。
mysql数据库-完整性约束
主要内容:
not null 与 defaultuniqueprimaryauto_increment
foreign key
⼀、介绍
约束条件与数据类型的宽度⼀样,都是可选参数
作⽤:⽤于保证数据的完整性和⼀致性
主要分为:
PRIMARY KEY (PK) #标识该字段为该表的主键,可以唯⼀的标识记录
FOREIGN KEY (FK) #标识该字段为该表的外键
NOT NULL #标识该字段不能为空
UNIQUE KEY (UK) #标识该字段的值是唯⼀的
AUTO_INCREMENT #标识该字段的值⾃动增长(整数类型,⽽且为主键)
DEFAULT #为该字段设置默认值
UNSIGNED #⽆符号
ZEROFILL #使⽤0填充
说明:
#1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
#2. 字段是否有默认值,缺省的默认值是NULL,如果插⼊记录时不给字段赋值,此字段使⽤默认值
sex enum('male','female') not null default 'male'
#必须为正值(⽆符号) 不允许为空 默认是20
age int unsigned NOT NULL default 20
# 3. 是否是key
主键 primary key
外键 foreign key
索引 (index,unique...
⼆、not null 与default
是否可空,null表⽰空,⾮字符串
not null - 不可空
null - 可空
默认值,创建列时可以指定默认值,当插⼊数据时如果未主动设置,则⾃动添加默认值.
create table tb1(
nid int not null defalut 2,
num int not null
);
验证1:
mysql> create table t11(id int);# id字段默认可以为空
Query OK, 0 rows affected (0.05 sec)
2016级计算机专业 集美大学计算机工程学院 2017~2018学年第二学期
1 《数据库原理》实验报告
一、实验目的:
1.掌握SQL Server 2012服务器的启动方式。
2.掌握注册和配置SQL Server 2012服务器的方法。
3.掌握在“企业管理器”中创建数据库和表的方法。
二、实验使用环境:
Microsoft SQL server 2017
DataGrip 2018.1.2
Windows 10 Pro (10.0)
三、实验内容与完成情况:
1.用SQL语言创建数据库
sql> CREATE DATABASE 销售管理
ON PRIMARY ( NAME = SalesData,
FILENAME = 'D:\DB\SalesData_1.mdf',
SIZE = 50MB, MAXSIZE = UNLIMITED,
FILEGROWTH = 20% ),
( NAME = SalesD,
FILENAME = 'D:\DB\SalesData_2.ndf',
SIZE = 50MB, MAXSIZE = UNLIMITED,
FILEGROWTH = 10 MB )
LOG ON
( NAME = SalesLog,
FILENAME = 'D:\DB\SalesLog.ldf',
SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 10MB )
生成文件结果如下
2016级计算机专业 集美大学计算机工程学院 2017~2018学年第二学期
sqlserver2008数据库的完整性约束
⼀、数据库完整性概述
1.数据库的完整性:
①数据库的完整性是指数据的正确性和相容性
②数据库完整性是防⽌不合语义或不正确的数据进⼊数据库
③完整性体现了是否真实地反映现实世界
例:
学⽣的年龄必须是整数,取值范围为14-29;
学⽣的性别只能是男或⼥;
学⽣的学号⼀定是唯⼀的;
学⽣所在的系必须是学校开设的系;
2.DBMS维护数据库完整性的机制:
①提供定义完整性约束条件的机制
DBMS应提供定义数据库完整性约束条件,并把它们存⼊数据库中。
②提供完整性检查的⽅法
检查数据是否满⾜完整性约束条件的机制称为完整性检查。⼀般在INSERT、UPDATE、DELETE语句执⾏后开始检查。
3.违约处理
DBMS若发现⽤户的操作违背了完整性约束条件,就采取⼀定的动作以保证数据的完整性,如拒绝执⾏该操作,或级联执⾏其他操作。
⼆、缺省(默认值)和规则
缺省和规则来源于由Sybase开发的S默认值QL Server,在⽼版本的SQL Server或者升级版本中都有缺省和规则的使⽤。
缺省是为列提供数据的⼀种⽅式,如果⽤户进⾏INSERT操作时不为列输⼊数据,则使⽤缺省值。
规则是当⽤户进⾏INSERT或uPDATE操作时,对输⼊列中的数据设定的取值范围,是实现域完整性的⽅式之⼀。
缺省与规则有以下特点:
(1)缺省与规则是数据库对象,它们是独⽴于表和列⽽建⽴的。
(2)缺省与规则建⽴后与列或数据类型产⽣关联,列和数据类型就具有了缺省与规则的属性。
(3)缺省与规则定义后,可以重复使⽤,可以绑定到多个列或数据类型上。(4)缺省与规则不随表同时调⼊内存,当⽤到时才被调⼊内存,这可能会使程序执⾏出现延时。
缺省和规则对象通常只在它所创建的数据库中有效,不是ANSI标准,⼀般不提倡使⽤。
应尽可能使⽤约束,任何可以使⽤缺省与规则的地⽅都有可以使⽤约束。
1. 缺省
在SQL Server中,有两种使⽤默认值的⽅法: