实验一 创建数据库及关系表、数据完整性约束

合集下载

数据库中数据完整性与约束的设计与实现要点

数据库中数据完整性与约束的设计与实现要点

数据库中数据完整性与约束的设计与实现要点数据完整性和约束是数据库设计和实现中非常重要的方面。

通过定义和实施适当的数据完整性约束,可以确保数据库中的数据准确、一致和可靠。

本文将针对数据库中数据完整性和约束的设计与实现要点进行探讨。

1. 数据库中的数据完整性数据完整性是指数据的正确性和一致性。

在数据库中,数据完整性可以通过以下几种方式来保证:1.1 主键约束主键是一个唯一标识数据库表中每一行数据的字段(或字段组合)。

通过为每个表选择合适的主键并将其定义为主键约束,可以确保每一行数据的唯一性。

1.2 外键约束外键用于关联两个表,它可以用来确保表之间的关系的正确性。

通过为引用外键的表添加外键约束,可以防止在关联的表中插入无效的数据,从而维护数据的一致性。

1.3 唯一约束唯一约束用于确保某个字段或一组字段的唯一性。

它可以防止在同一表中插入具有相同值的字段值,从而保持数据的一致性。

1.4 非空约束非空约束用于确保某个字段不为空。

通过将非空约束应用于必填字段,可以防止插入丢失重要数据的空值。

2. 数据库中的数据约束数据约束是一种用于约束数据值范围、格式和类型的方法。

它可以保证数据库中的数据满足预定义的规则和要求。

2.1 默认约束默认约束用于为字段提供默认值。

当插入新行时,如果未给定该字段的值,则默认值将自动应用。

2.2 检查约束检查约束用于对字段的值进行条件限制。

通过定义检查约束,可以确保插入到表中的数据满足指定的条件。

2.3 唯一约束如前所述,唯一约束可用于确保字段或字段组合的唯一性。

2.4 外键约束外键约束不仅用于维护表之间的一致性,还可以通过引用被引用表中的主键来保持数据的完整性。

3. 数据库中的数据完整性和约束的实现要点为了实现数据的完整性和约束,需要注意以下几个重要的实现要点:3.1 合理选择主键选择合适的主键非常重要。

主键应该是唯一的、稳定的并且不可更改的。

设计时应该考虑主键的用途和特性,同时避免过度依赖可能发生变化的字段。

建立表和定义完整性约束、数据操作 实验报告模板

建立表和定义完整性约束、数据操作 实验报告模板

经济管理学院财务管理专业协作者______________ 教师评定_____________实验题目建立表和定义完整性约束、数据操作一、实验目的与实验方法本实验课程的目的:本实验课程的实验方法:二、实验要求1.用CREATE DATABSE命令建立数据库2.用CREATE SCHEMA命令创建模式(自己命名模式名称)3.在定义的模式下,参照教材内容,使用SQL语言创建教材P43—P44面的样本数据库及定义完整性约束4.使用Insert命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户自定义完整性的插入操作,并分析原因。

三、实验结果和数据1.用CREATE DATABSE命令建立数据库2.用CREATE SCHEMA命令创建模式(自己命名模式名称)3.在定义的模式下,参照教材内容,使用SQL语言创建教材P43—P44面的样本数据库及定义完整性约束4.使用Insert命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户自定义完整性的插入操作,并分析原因。

违反实体完整性:违反参照完整性:在执行插入操作时,系统会自动计算院系系列值是7,而院系列参照院系表的编号值,此时在院系表中找不到编号为7的院系。

所以插入操作失败。

违反用户自定义完整性:结果是违反了unique约束,因为院系表名称不允许重复,而名称为“经济管理学院”的院系已经存在,所以不成功。

四、问题与讨论在创建的过程中没有注意括号是用英文括号还是中文括号,所以出现了错误。

应该使用英文括号的。

在同一个数据库中是不能同时创建两个相同的对象的。

心得体会:数据库是一门很难学的课程,而且,我在平时比较少关注这方面的东西,所以,我在做这个实验的时候就觉得十分的困难。

很多的时候我都需要别人的帮助。

我是一个比较粗心的人,因此,我在做这个实验的时候没有留意输入的时候要用英文符号,要加空格。

所以,我总是出现错误,让我觉得很烦恼。

数据完整性实验报告

数据完整性实验报告

实验名称:数据完整性验证实验实验日期:2023年4月10日实验地点:XX大学计算机实验室实验目的:1. 了解数据完整性的概念和重要性。

2. 掌握数据完整性验证的方法和工具。

3. 提高对数据质量控制和数据管理的认识。

实验原理:数据完整性是指数据的准确、一致和可靠。

在数据管理过程中,数据完整性是保证数据质量的基础。

数据完整性验证是指通过各种方法对数据进行检查,确保数据的准确性和一致性。

实验器材:1. 实验计算机:一台配置较高的计算机,用于运行数据完整性验证工具。

2. 数据库管理系统:如MySQL、Oracle等,用于存储实验数据。

3. 数据完整性验证工具:如SQL Profiler、DataGrip等,用于检测数据完整性问题。

实验步骤:1. 数据准备(1)创建一个数据库,并在数据库中创建一个表,用于存储实验数据。

(2)向表中插入一些数据,包括正常数据和异常数据。

2. 数据完整性验证(1)使用SQL Profiler工具对数据库进行数据完整性验证。

(2)在SQL Profiler中配置监控参数,如监控类型、监控对象等。

(3)启动SQL Profiler,运行数据库操作,如插入、更新、删除等。

(4)观察SQL Profiler的输出结果,检查数据是否发生异常。

3. 结果分析(1)分析SQL Profiler的输出结果,找出数据完整性问题。

(2)根据问题类型,提出解决方案。

实验结果:1. 数据完整性问题(1)在插入异常数据时,发现部分数据未满足数据类型约束。

(2)在更新数据时,发现部分数据未满足唯一性约束。

2. 解决方案(1)针对数据类型约束问题,修改数据类型,确保数据满足约束条件。

(2)针对唯一性约束问题,修改数据,确保数据满足唯一性条件。

实验结论:1. 数据完整性验证对于保证数据质量至关重要。

2. 使用SQL Profiler等工具可以有效检测数据完整性问题。

3. 通过数据完整性验证,可以及时发现并解决数据质量问题,提高数据管理水平。

数据库实验报告 表和数据完整性

数据库实验报告 表和数据完整性
Book_id nchar(30) not null,
Address nchar(30) not null
)ON PRIMARY
(3)设置book表中的book_id为主键,author表中的book_id为外键:
Alter table dbo.author with check
Add constraint fk_book_author foreign key(book_id)
(3)利用update语句为表booksales更新数据:
Update booksales set sellnum = 11
Where book_id = ‘m00011’
3.利用Transact-SQL语句为表booksales中的销售数量列sellnum创建规则“sellnum>=0”,并绑定规则到列sellnum。
References dbo.book(book_id)
(4)创建两个表的关系的步骤如下:
在author表的设计器界面右击book_id列,在弹出的菜单中执行“关系”命令,弹出如图3.1所示的“外键关系”对话框。
2.在test01数据库中利用Transact-SQL语句创建一图书销售表booksales(book_id nchar (6),sellnum int,selldate datetime )。分别利用insert、delete、update语句添加、删除和更新数据。
Price numeric(10,2)null,
Constraint pk_book primary key clustered
(book_id ASC )
)on primary
(2)创建表author的Transact_SQL语句:

实验 创建数据库表与约束

实验 创建数据库表与约束

实验创建数据库表与约束
一、实验目的
1、掌握创建数据库表的方法;
2、学会设置表的主键、外键和建立表之间的关系;
3、学会为表增加约束
二、实验内容
1、创建“StudentDB”数据库,并在数据库中创建三个表:课程表Lessons,学生表Students,成绩表Scores。

各表主要字段如下图所示:
Students:
Lessons:
Scores:
2、设置上述三个表的主键。

建议:Students用“sno”做主键,Lessons用“lno”做主键,Scores用(sno,lno)做主键。

3、分别打开三个表,输入记录数据。

4、为表增加约束:重要列非空,性别sex为“男”或“女”,学分credit在1到5之间,成
绩score在0到100之间。

5、为Scores表设置外键sno和lno,建立三个表之间的主外键关系,并创建数据关系图“guanxi1”。

(完整版)数据库实验报告

(完整版)数据库实验报告

数据库实验报告姓名学号目录一.实验标题:2二.实验目的:2三.实验内容:2四.上机软件:3五.实验步骤:3(一)SQL Server 2016简介3(二)创建数据库 4(三)创建数据库表 7(四)添加数据17六.分析与讨论: 19一.实验标题:创建数据库和数据表二.实验目的:1.理解数据库、数据表、约束等相关概念;2.掌握创建数据库的T-SQL命令;3.掌握创建和修改数据表的T-SQL命令;4.掌握创建数据表中约束的T-SQL命令和方法;5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容:1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹;2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义;3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度;4.添加具体数据;四.上机软件:SQL Server 2016五.实验步骤:(一)SQL Server 2016简介1.SQL Server 2016的界面2.启动和退出SQL Server 20161)双击图标,即出现SQL Server2016的初始界2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可注意事项:1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存,2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作(二)创建数据库方法一:1.点击“新建查询”,出现如下对话框2.在空白区域输入创建数据库“学生选课”的代码命令,点击“执行”3.消息框中出现“命令已成功完成”即表示数据库创建成功,在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”方法二:1.右击数据库,在弹出的快捷菜单中选择“新建”2.在弹出的对话框中输入“学生选课”3. 在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”注意事项:数据库名称在服务器中必须唯一,并且符合标识符的规则(三)创建数据库表1.左键点击“学生选课”数据库,再点击“新建查询”,在出现的空白对话框中输入如图代码后点击“执行”,消息框中出现“命令已成功执行”即成功建立好学生、课程、选课三张表2.建立成功后的表格如图所示注意事项:1.T-SQL中创建数据库表的指令格式为:Create table 表名(字段名1 数据类型{identify | not null | null},字段名2 数据类型{identify | not null | null},……)null表示该字段的值可以为控制,空值意味着没有任何存储数据,这是默认参数,当所定义的字段允许空值时,参数null可以忽略not null表示该字段的值不能为空值identify称为计数器,表示该字段的值是一组递增的证书数据。

实验三、四创建表及输入数据及完整性约束

实验三、四创建表及输入数据及完整性约束

实验三、四 创建表及输入数据及完整性约束本实验需要4学时。

一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。

学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。

二、实验内容1 创建表、确定表的主码和约束条件。

为主码建索引。

2 查看和修改表结构。

3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。

(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。

(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。

要求记录不仅满足数据约束要求.还要有表间关联的记录。

(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。

删除和修改操作。

(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。

四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。

当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。

数据库应用实验报告创建数据库和表以及表操作

数据库应用实验报告创建数据库和表以及表操作

实验一创建数据库和表以及表操作一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构,表的结构特点;2.了解SQL Server的基本数据类型,空值概念;3.学会在企业管理器中创建数据库和表;4.学会使用T—SQL语句创建数据库和表;5.学会在企业管理器中对数据表进行插入、修改、删除数据操作;6.学会使用T-SQL对数据表进行插入、修改、删除数据操作;二、实验内容1.实验题目(1)创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工的信息、部门信息以及员工的薪水信息。

数据库YGGL包含下列3个表。

(1)Employees:员工自然信息表。

(2)Departments:部门信息表。

(3)Salary:员工薪水情况表。

各表的结构分别如表T2.1,表T2.2,表T2.3所示。

表T2.1 Employees表结构表T2.2 Departments表结构实验步骤1.在企业管理器中创建数据库YGGL要求:数据库YGGL初始大小为10MB,最大大小为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按5%比例增长)。

数据库的逻辑文件名和物理文件名均采用默认值,分别为 YGGL_data 和e:\sql\data\MSSQL\Data\YGGL.mdf,其中e:\sql\data\MSSQL为SQL Server 的系统安装目录;事务日志的逻辑文件名和物理文件名也均采用默认值分别为YGGL—LOG 和 e:\sql\data\MSSQL\Data\YGGL_Log.1df。

以系统管理员Administrator是被授权使用CREATE DATABASE语句的用户登录SQL Server服务器,启动企业管理器一>在服务器上单击鼠标右键一>新建数据库一>输入数据库名“YGGL”一>选择“数据文件”选项卡一>设置增长方式和增长比例一>选择“事务口志”选项卡一设置增长方式和增长比例。

完整性约束实验

完整性约束实验

数据库的完整性约束一、实验目的1.掌握主键约束、外键约束及及check约束的用法;2.掌握默认值约束的应用;二、实验环境已安装SQL Server 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值及规则;3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;1.请用至少2种方法定义stu数据库中student表的主键sno;2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;3.为表course中的字段cname添加唯一值约束;4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入;6. 定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;(不用做)7. 定义stu数据库中student表中学生年龄值在16-25范围内;8. 定义stu数据库中student表中学生姓名长度在2-8之间;9. 定义stu数据库中student表中学生性别列中只能输入“男”或“女”;10. 定义stu数据库student表中学生年龄值默认值为20;11. 修改student表学生的年龄值约束可以为15-30范围内;(不用做)12. 删除上述唯一值约束、外键约束及check约束;13.向下列三个表中分别插入如下数据:SC表Course 表14、在上面的基础上分别向studentinfo 数据库中的student, course, sc 表中添加少8条数据。

数据库的完整性实验报告

数据库的完整性实验报告

数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。

本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。

一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。

二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。

三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。

在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。

假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。

可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。

例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。

在我们的学生信息表中,学生的学号是唯一的标识符。

为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。

实验一创建数据库及关系表数据完整性约束精编版

实验一创建数据库及关系表数据完整性约束精编版

实验一创建数据库及关系表数据完整性约束精编版MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】实验一创建数据库及关系表、数据完整性约束网工1203熊健羲一、实验目的1.???掌握SQLServer数据库管理系统的使用,能够在该环境中进行日常数据库操作;2.???掌握在SQLServer中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

5.掌握数据完整性约束的功能。

二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。

实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。

(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。

(3)删除学生表的专业列。

(4)为教师表添加主码约束,其主码列为:教师号。

实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。

(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。

实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。

《数据库原理及应用》实验指导

《数据库原理及应用》实验指导

理学院信科08—2班陈先国实验1 创建数据库与数据表下面写出实现如下操作的SQL语句:(1)创建供应系统“GYXT”数据库。

CREATE DATABASE GYXTON(NAME=GYXT_data,FILENAME=’D:\GYXT.mdf’,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=GYXT_Log,FILENAME=’D:\GXTYData.ldf’,SIZE=5,MAXSIZE=25,FILEGROWTH=5);(2) 建立供应商表S。

CREATE TABLE S( SNO char(5)not null unique,SNAME char(20)not null unique,CITY char(20));INSERT INTO S VALUES('S1','精益','天津');INSERT INTO S VALUES('S2','万胜','北京');INSERT INTO S VALUES('S3','东方','北京');INSERT INTO S VALUES('S4','丰泰隆','上海');INSERT INTO S VALUES('S5','康健','南京');(3) 建立零件表P。

CREATE TABLE P(PNO char(2)not null PRIMARY KEY(PNO),PNAME char(20),COLOR char(20),WEIGHT smallint);INSERT INTO P V ALUES('P1','螺母','红',12);INSERT INTO P V ALUES('P2','螺栓','绿',17);INSERT INTO P V ALUES('P3','螺丝刀','蓝',14); INSERT INTO P V ALUES('P4','螺丝刀','红',14); INSERT INTO P V ALUES('P5','凸轮','蓝',40); INSERT INTO P V ALUES('P6','齿轮','红',30);(4) 建立工程项目表J。

数据库实验一

数据库实验一

《数据库原理与应用》实验报告实验一、定义数据库和表一、实验环境Windows 2003 Server、SQL Server 2008二、实验目的掌握使用企业管理器提供的图形化交互窗口创建、修改数据库、表结构与整性约束、建立索引,掌握创建、修改数据库、表结构与整性约束的SQL语句。

掌握使用企业管理器提供的图形化交互窗口输入、修改和删除表中的记录,掌握输入、修改和删除表中的记录的SQL语句。

三、实验方法(1)利用资源管理器在D盘上建立“学号姓名DB”命名的文件夹,以便保存数据库。

按设计好数据库和表结构创建数据库与表结构的SQL语句完成数据库与表的建立,以及记录的操作。

(2)利用SQL Server 200X DBMS的交互式界面窗口练习建立数据库SDB1与Dept1、T1、S1、C1、SC1表,以及记录的操作。

四、具体操作及结论分析1.建立数据库SBD的SQL语句Create database sdbon primary(name=sdb_data,filename='D:\xxxDB\xxx.mdf',size=100MB,maxsize=200MB,filegrowth=20MB)log on(name=sdb_log,filename='D:\xxxDB\xxx.ldf',size=50MB,maxsize=100MB,filegrowth=10MB)USE sdb1.建立表Dept、T、S、C、SC的SQL语句create table dept(dno char(2) primary key,dname varchar(30) unique not null,dean char(10),adddress varchar(40))create table t(tno char(4) primary key,dno char(2) references dept(dno),tn varchar(10) not null,sex char(2) check(sex='男' or sex='女'),title char(10) check(title in('教授','副教授','讲师')))create table s(sno char(4) primary key,sn varchar(10),sex char(2) check(sex='男' or sex='女'),age int check(age>=17 and age<=25),dno char(2) references dept(dno),bp varchar(20))create table c(cno char(2) primary key,cn char(10),period int not null,tno char(4) references t(tno),class char(20) check(class in('公共基础','专业基础','专业课','专业选修')))create table sc(sno char(4) references s(sno),cno char(2) references c(cno),grade int not null check(grade between 0 and 100),primary key(sno,cno))2.修改教师表T的SQL语句(给表T增加一个字段:PHON,并定义合适的数据类型)alter table t add phon varchar(10);3.分别给出Dept、T、S、C、SC三个表,每个表插入2条记录的SQL语句insert into dept values('01','外语学院','史宝辉','教5011');insert into dept values('02','工学院','俞国辉','森801');insert into t values('0101','01','李健','男','教授');insert into t values('0202','02','张青','女','教授');insert into s values('0101','李成占','男','19','01','河南');insert into s values('0202','马驰','男','18','01','辽宁');insert into c values('01','数学','80','0101','公共基础');insert into c values('02','英语','120','0101','公共基础');insert into sc values('0101','01','80');insert into sc values('0101','02','85');4.给出一条修改SC表记录的SQL语句update sc set grade=0 where sno='0101' and cno='02';5.给出一条删除C表中一条记录的SQL语句delete from sc where cno='02';delete from c where cno='02';7.讨论回答下面问题(1)建立表的顺序有要求吗?为什么?有要求,因为表与表之间有参照完整性约束关系,所以得先建立被参照的表,即充当主键的表,后建其它表,即作为外建的表。

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表、数据完整性约束一、实验目的1.???掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;2.???掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

5.掌握数据完整性约束的功能。

二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。

实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。

(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。

(3)删除学生表的专业列。

(4)为教师表添加主码约束,其主码列为:教师号。

实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。

(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。

实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。

数据库实验报告完整性约束

数据库实验报告完整性约束

大连海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。

(2)掌握完整性约束的运行检查机制。

(3)掌握参照完整性的级联删除和修改方法。

(4)掌握正确设计关系模式完整性约束的方法。

2实验内容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。

(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。

(3)删除以上两个主键约束。

(4)利用ALTER TABLE语句定义上述两个主键。

2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。

(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。

(7)设计数据更新语句检查参照完整性约束是否起作用。

(8)删除上述完整性约束。

(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。

(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

3实验要求(1)深入复习教材第五章数据库完整性约束内容。

(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。

数据库完整性实验报告

数据库完整性实验报告

数据库完整性实验报告引言数据库完整性是数据库管理系统中的一个重要概念,用于确保数据库中数据的准确性、有效性和一致性。

本实验旨在通过设计和实现一系列完整性约束,来验证数据库完整性的实际应用。

实验目标本实验的目标是设计并实现以下几种完整性约束:1.实体完整性约束2.参照完整性约束3.用户自定义完整性约束实验环境本实验使用了以下工具和环境:•数据库管理系统:MySQL•编程语言:Python•集成开发环境:Jupyter Notebook实验步骤步骤一:数据库设计首先,我们需要设计一个符合实验需求的数据库。

我们选择一个简单的学生管理系统作为示例,包含以下两个实体:1.学生(Student):包含学生的学号、姓名和年龄。

2.课程(Course):包含课程的课程号、课程名和学分。

步骤二:实体完整性约束实体完整性约束用于保证每个实体在数据库中都有唯一的标识。

在本实验中,我们将为学生实体添加一个主键约束,保证每个学生的学号是唯一的。

CREATE TABLE Student (id INT PRIMARY KEY,name VARCHAR(50),age INT);步骤三:参照完整性约束参照完整性约束用于保证关系数据库中的引用一致性。

在本实验中,我们将为课程实体添加一个外键约束,引用学生实体的主键。

CREATE TABLE Course (id INT PRIMARY KEY,name VARCHAR(50),credits INT,student_id INT,FOREIGN KEY (student_id) REFERENCES Student(id));步骤四:用户自定义完整性约束用户自定义完整性约束是根据具体业务需求自定义的约束条件。

在本实验中,我们将为课程实体添加一个自定义约束,保证学分必须大于等于0。

ALTER TABLE CourseADD CONSTRAINT chk_credits CHECK (credits >=0);实验结果通过以上步骤,我们已经成功设计并实现了实体完整性约束、参照完整性约束和用户自定义完整性约束。

实验一创建数据库及表的创建与管理

实验一创建数据库及表的创建与管理

实验1创建数据库及表的创建与管理一、实验目的与要求1、掌握使用T-SQL语句创建数据库、数据表和`数据表完整性约束的定义。

2、熟悉表的结构和列所使用的数据类型。

3、理解数据表完整性含义及其定义的方法。

二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容(一)数据库创建与管理创建一个“教务管理系统”数据库,并将下列表创建在该数据库中(二)在“教务管理系统”数据库钟实现表的创建与完整性定义StudentInfo(学生信息表)TeacherInfo(教师信息表)CourseInfo(课程信息表)StudentCourse(学生选课表)Teaching(教学表)RankPayment(职称课酬表)1、使用T-SQL语句创建以上数据表。

同时定义主键约束:StudentInfo表主键Sno;TeacherInfo表主键Tno;CourseInfo表主键Cno;RankPayment表主键Trank。

2、使用T-SQL语句定义以上数据表的其他约束①对StudentInfo表的Sname进行唯一性约束(unique约束),约束名称为S1。

②对CourseInfo表的Cname进行唯一性约束(unique约束)。

③对StudentCourse表定义外键约束:Sno引用StudentInfo表中的Sno,Cno 引用CourseInfo表中的Cno。

④对TeacherInfo表定义外键约束:Trank引用RankPayment表中的Trank。

⑤对Teaching表定义外键约束:Tno引用TeacherInfo表中的Tno,Cno引用CourseInfo表中的Cno。

⑥对StudentCourse表的Score进行CHECK约束:Score必须在0至100之间。

⑦对StudentInfo表中的Ssex和TeacherInfo表中的Tsex进行默认值定义,默认值为“男”注:表中完整性约束查看命令:exec sp_help 表名(三)修改基本表①向基本表StudentInfo中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表数据完整性约束集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#实验一创建数据库及关系表、数据完整性约束一、实验目的1.掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;2.掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

5.掌握数据完整性约束的功能。

二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。

实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。

(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。

(3)删除学生表的专业列。

(4)为教师表添加主码约束,其主码列为:教师号。

实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。

(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。

实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。

数据库实验-数据完整性约束

数据库实验-数据完整性约束

广州XX学院数据库管理及应用实验报告专业班级计算机181 实验日期2020.4.18 姓名李XX 学号2018132 实验名称数据完整性约束指导教师王琢(报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等)一、实验目的(1)理解数据完整性约束概念。

(2)掌握SQL Server的数据完整性约束技术。

(3)了解SQL Server的违反数据完整性约束的处理措施。

二、实验设备及器材Windows平台、SQL Server 2012。

三、实验内容4.1在数据库EDUC中创建下列完整性约束。

1)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。

2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。

3)为教师上课信息表TC_info创建CHECK约束:学生成绩在0-100。

4)为教师上课信息表TC_info创建外键约束:tcid、tno、classno和cno。

4.2在数据库TSGL中创建下列完整性约束。

1)创建CHECK约束:readers表的RederType在0-9。

2)利用SSMS删除readers表的约束。

3)创建主键约束:为readers表的字段ReaderID添加主键。

4)创建多个字段的主键:为borrowinf表的ReaderID、BookID字段定义主键。

四、实验步骤4.11)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。

USE EDUCGOALTER TABLE Course_infoWITH NOCHECK ADD CONSTRAINT CK_lecture CHECK(lecture>=10 AND lecture <=80)GO2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。

数据库实验报告完整性约束

数据库实验报告完整性约束

海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。

(2)掌握完整性约束的运行检查机制。

(3)掌握参照完整性的级联删除和修改方法。

(4)掌握正确设计关系模式完整性约束的方法。

2实验容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。

(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。

(3)删除以上两个主键约束。

(4)利用ALTER TABLE语句定义上述两个主键。

2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。

(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。

(7)设计数据更新语句检查参照完整性约束是否起作用。

(8)删除上述完整性约束。

(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。

(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值围,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

3实验要求(1)深入复习教材第五章数据库完整性约束容。

(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一创建数据库及关系表、数据完整性约束
一、实验目的
1.掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;
2.掌握在SQL Server中使用图形化工具创建数据库的方法;
3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;
4.掌握修改表结构的语句。

5.掌握数据完整性约束的功能。

二、实验内容和步骤
1.创建符合如下条件的数据库:
数据库的名字为:Students
数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;
文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

实验结果:
2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。

实验结果:
3.写出实现如下操作的SQL语句,并查看执行结果:
(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。

(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。

(3)删除学生表的专业列。

(4)为教师表添加主码约束,其主码列为:教师号。

实验结果:
4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。

(1)图书表,结构如下:
书号:统一字符编码定长类型,长度为6,主码,
书名:统一字符编码可变长类型,长度为30,非空,
第一作者:普通编码定长字符类型,长度为10,非空,
出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)
印刷数量:小整型,取值范围:1000~5000,默认为4000,
价格:定点小数,小数部分一位,整数部分3位。

实验结果:
(2)书店表,结构如下:
书店编号:统一字符编码定长类型,长度为6,主码,
店名:统一字符编码可变长类型,长度为30,非空,
电话:普通编码定长字符类型,12位长,取值形式:010-8位数字
地址:普通编码可变长字符类型,40位长。

前两个字符必须是:北京。

实验结果:
(3)图书销售表,结构如下:
书号:统一字符编码定长类型,长度为6,非空,
书店编号:统一字符编码定长类型,长度为6,非空,
销售日期:小日期时间型,非空,默认值为系统当前日期,
销售数量:微整型,取值大于0,主码(书号,书店编号,销售日期);
书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。

实验结果:
5. 执行下列两条数据插入语句,是否都能执行成功?为什么?
INSERT INTO Book
VALUES('T0001','数据库系统基础','张三','2010-2-1', 3000,28.0)
实验结果:能执行
INSERT INTO Book
VALUES('T0002','计算机网络','张三','2010-1-1', 500,36.0)
实验结果:不能执行,原因:印刷数量小于1000
6. 执行下列数据插入语句,是否执行成功?为什么?
INSERT INTO Store VALUES('S001','新华书店',,'北京市海淀区')
实验结果:不能执行,原因:电话号码不符合标准
7. 执行一条数据插入语句,是否执行成功?为什么?
INSERT INTO Sale(书号,书店编号,销售数量)VALUES('T0001','S001',20)
实验结果:不能执行,原因:store是sale外键,其中store并没有添加进数据。

三、实验源码CREATE table Student(
学号CHAR(7)primary key,
姓名NCHAR(5)not null,
性别NCHAR(1),
年龄TINYINT,
所在系NVARCHAR(20),
专业NVARCHAR(20)
)
CREATE table Course(
课程号CHAR(6)primary key,
课程名NVARCHAR(20)NOT NULL,
学时数TINYINT,
学分TINYINT
)
CREATE TABLE SC(
学号CHAR(7)NOT NULL,
课程号CHAR(6)NOT NULL,
成绩TINYINT,
PRIMARY KEY (学号,课程号),
FOREIGN KEY (学号)REFERENCES Student(学号),
FOREIGN KEY (课程号)REFERENCES Course(课程号)
)
CREATE table Teather(
教师号CHAR(7)not null,
教师名NCHAR(5)not null,
所在部门NVARCHAR(20),
工资Smallmoney,
出生日期Smalldatetime
)
select*from Student
select*from Course
select*from SC
select*from Teather
ALTER TABLE SC
ADD选课类别char(4)
ALTER TABLE Course
ALTER COLUMN学分tinyint
ALTER TABLE Student
DROP COLUMN专业
ALTER TABLE Teather
ADD constraint ys primary key(教师号)
CREATE table Book(
书号NCHAR(6)primary key,
书名Nvarchar(30)not null,
第一作者CHAR(10)not null,
出版日期smalldatetime check(出版日期<getdate()),
印刷数量Smallint check(印刷数量< 5000 and印刷数量> 1000)default (4000), 价格decimal(3,1)
)
CREATE table Store(
书店编号NCHAR(6)primary key,
店名NVARCHAR(30)NOT NULL,
电话Char(12)check(电话like
'010-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
地址Varchar(40)check(地址like'北京%')
)
Create table Sale
(
书号NCHAR(6)not NULL,
书店编号Nchar(6)not NULL,
销售日期Smalldatetime default getdate(),
销售数量tinyint check(销售数量> 0),
primary key (书号,书店编号,销售日期),
foreign key (书号)references Book(书号),
foreign key (书店编号)references Store(书店编号)
)
INSERT INTO Book
VALUES('T0001','数据库系统基础','张三','2010-2-1', 3000,28.0)
INSERT INTO Book
VALUES('T0002','计算机网络','张三','2010-1-1', 500,36.0)
INSERT INTO Store VALUES('S001','新华书店',,'北京市海淀区')
INSERT INTO Sale(书号,书店编号,销售数量)VALUES('T0001','S001',20)
四、实验心得
经过这次实验?掌握SQL Server数据库管理系统的基本使用,复习了建立关系表的语句,定义主码约束及外码约束的语句,和修改表结构的语句。

了解了数据完整性约束的功能。

希望下次实验能够学到更多数据库的知识。

相关文档
最新文档