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

上传人:b****7 文档编号:8736555 上传时间:2023-02-01 格式:DOCX 页数:10 大小:241.10KB
下载 相关 举报
实验一创建数据库及关系表数据完整性约束.docx_第1页
第1页 / 共10页
实验一创建数据库及关系表数据完整性约束.docx_第2页
第2页 / 共10页
实验一创建数据库及关系表数据完整性约束.docx_第3页
第3页 / 共10页
实验一创建数据库及关系表数据完整性约束.docx_第4页
第4页 / 共10页
实验一创建数据库及关系表数据完整性约束.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

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

《实验一创建数据库及关系表数据完整性约束.docx》由会员分享,可在线阅读,更多相关《实验一创建数据库及关系表数据完整性约束.docx(10页珍藏版)》请在冰豆网上搜索。

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

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

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

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

网工1203熊健羲2012011438

一、实验目的

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位长。

前两个字符必须是:

北京。

实验结果:

(3)图书销售表,结构如下:

书号:

统一字符编码定长类型,长度为6,非空,

书店编号:

统一字符编码定长类型,长度为6,非空,

销售日期:

小日期时间型,非空,默认值为系统当前日期,

销售数量:

微整型,取值大于0,主码(书号,书店编号,销售日期);

书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。

实验结果:

5.执行下列两条数据插入语句,是否都能执行成功?

为什么?

INSERTINTOBook

VALUES('T0001','数据库系统基础','张三','2010-2-1',3000,28.0)

实验结果:

能执行

INSERTINTOBook

VALUES('T0002','计算机网络','张三','2010-1-1',500,36.0)

实验结果:

不能执行,原因:

印刷数量小于1000

6.执行下列数据插入语句,是否执行成功?

为什么?

INSERTINTOStoreVALUES('S001','新华书店','12345678','北京市海淀区')

实验结果:

不能执行,原因:

电话号码不符合标准

7.执行一条数据插入语句,是否执行成功?

为什么?

INSERTINTOSale(书号,书店编号,销售数量)VALUES('T0001','S001',20)

实验结果:

不能执行,原因:

store是sale外键,其中store并没有添加进数据。

三、实验源码

CREATEtableStudent(

学号CHAR(7)primarykey,

姓名NCHAR(5)notnull,

性别NCHAR

(1),

年龄TINYINT,

所在系NVARCHAR(20),

专业NVARCHAR(20)

CREATEtableCourse(

课程号CHAR(6)primarykey,

课程名NVARCHAR(20)NOTNULL,

学时数TINYINT,

学分TINYINT

CREATETABLESC(

学号CHAR(7)NOTNULL,

课程号CHAR(6)NOTNULL,

成绩TINYINT,

PRIMARYKEY(学号,课程号),

FOREIGNKEY(学号)REFERENCESStudent(学号),

FOREIGNKEY(课程号)REFERENCESCourse(课程号)

CREATEtableTeather(

教师号CHAR(7)notnull,

教师名NCHAR(5)notnull,

所在部门NVARCHAR(20),

工资Smallmoney,

出生日期Smalldatetime

select*fromStudent

select*fromCourse

select*fromSC

select*fromTeather

ALTERTABLESC

ADD选课类别char(4)

ALTERTABLECourse

ALTERCOLUMN学分tinyint

ALTERTABLEStudent

DROPCOLUMN专业

ALTERTABLETeather

ADDconstraintysprimarykey(教师号)

CREATEtableBook(

书号NCHAR(6)primarykey,

书名Nvarchar(30)notnull,

第一作者CHAR(10)notnull,

出版日期smalldatetimecheck(出版日期

印刷数量Smallintcheck(印刷数量<5000and印刷数量>1000)default(4000),

价格decimal(3,1)

CREATEtableStore(

书店编号NCHAR(6)primarykey,

店名NVARCHAR(30)NOTNULL,

电话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'北京%')

CreatetableSale

书号NCHAR(6)notNULL,

书店编号Nchar(6)notNULL,

销售日期Smalldatetimedefaultgetdate(),

销售数量tinyintcheck(销售数量>0),

primarykey(书号,书店编号,销售日期),

foreignkey(书号)referencesBook(书号),

foreignkey(书店编号)referencesStore(书店编号)

INSERTINTOBook

VALUES('T0001','数据库系统基础','张三','2010-2-1',3000,28.0)

INSERTINTOBook

VALUES('T0002','计算机网络','张三','2010-1-1',500,36.0)

INSERTINTOStoreVALUES('S001','新华书店','12345678','北京市海淀区')

INSERTINTOSale(书号,书店编号,销售数量)VALUES('T0001','S001',20)

四、实验心得

经过这次实验 掌握SQLServer数据库管理系统的基本使用,复习了建立关系表的语句,定义主码约束及外码约束的语句,和修改表结构的语句。

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

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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1