一、实验目的
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并没有添加进数据。
* 如丁II—
L INSERT INTO Sale (43号,书店编耳销售数景;VALUES ( 'T0001' , SCO11,20)
j港展
消息沁级别16:.狀态6 行
INSERT普句与FOMIOT EEY -FK_Sli号—丄FCD葩阳叶印突.谍神突夏生于数据库"牝wi CREATE table Student (
学号CHAR(7) primary key ,
姓名NCHAR(5) n ot n ull,
性别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 n ull, 教师名NCHAR( 5) not n ull,
、实验源码
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 数据库管理系统的基本使用,复习了建立关系表的语 句,定义主码约束及外码约束的语句,和修改表结构的语句。
了解了数据完整性约束的功 能。
希望下次实验能够学到更多数据库的知识。
书号 NCHAR( 6) not NULL, 书店编号 Nchar ( 6) not NULL, 销售日期 Smalldatetime default getdate (), 销售数量
tinyint check ( 销售数量 > 0 ), primary key ( 书号 , 书店编号 , 销售日期 ), foreign key ( 书号 ) references Book ( 书号 ), foreign key ( 书店编 号 ) references Store ( 书店编号 RT INTO Book
) )
所在部门
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
CREATE table Book (
书号
NCHAR( 6) primary key , 书名
Nvarchar ( 30) not null, 第一作者
CHAR( 10 ) not null, 出版日期
smalldatetime check ( 出版日期 < getdate ()), 印刷数量
Smallint check ( 印刷数量 < 5000 and 印刷数量 价格
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 ' 北京 %' ) ( 4000 ), table Sale ) ADD constraint
> 1000 ) default )
Create
ys primary key ( 教师号 )。