数据库实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一创建数据库及关系表
一、实验目的
1. 掌握SQL Server数据库管理系统的使用,能够中该环境中进行日常数据库操作;
2. 掌握在SQL Server中使用图形化工具创建数据库的方法;
3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;
4.掌握修改表结构的语句。
二、实验要求
1.了解SQL Server数据库的组成,会使用图形化工具创建数据库。
2.编写建立表及主、外码约束的T-SQL语句,并执行这些语句,在数据库中建立符合要求的关系表。
3.编写修改表结构的语句。
三、实验内容和步骤
1.创建符合如下条件的数据库:
数据库的名字为:Students
数据文件的逻辑文件名为:Students_dat,存放在D:\Test录下(若D:盘中无此子目录,可先建立此目录,然后再创建数据库。);
文件的初始大小为:5MB;
增长方式为自动增长,每次增加1MB。
日志文件的逻辑文件名字为:Students_log,也存放在D:\Test目录下;
日志文件的初始大小为:2MB;
日志文件的增长方式为自动增长,每次增加10%。
2.在已建立的Students数据库中,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。
Course表结构
Teacher表结构
Sno char(7)primary key,
Sname nchar(10)not null,
Ssex nchar(2),
Sage tinyint,
Sdept nvarchar(20),
Spec char(10)
)
create table course(
Cno char(10),
Cname nvarchar(20)not null,
Credit int,
Semester tinyint,
Primary key(Cno)
)
create table sc(
Sno char(7)not null,
Cno char(10)not null,
Grade tinyint,
primary key(Sno,Cno),
foreign key(Sno )references Student(Sno), foreign key(Cno )references Course(Cno), )
create table teacher(
Tno char(8)not null,
Tname char(10)not null,
Dept nvarchar(20),
Salary numeric(6,2),
Birthery smalldatetime
)
执行结果:
2.写出实现如下操作的SQL语句,并查看执行结果:
(1)在SC表中添加一个新的修课类别列:列名为:XKLB,类型为char(4)。
alter table sc
add XKLB char(4)
(2)将Course表中的Credit列的类型改为:tinyint(微整型,取值范围在0~255)。
alter table course
alter column Credit tinyint
(3)删除Student表的spec列。
alter table student
drop column spec
(4)为Teacher表添加主码约束,其主码列为:Tno。
alter table teacher
add constraint y_s
primary key(Tno)
3.执行下列语句,能否成功?为什么?
INSERT INTO SC VALUES(‘S001’, ’C01’, 88,’必修’)
答:不成功,因为错误显示sc表的sno学号列有外键约束,它是引用的student学生表里面的学号,所以执行前面的语句时’s001’不存在于学生表中,所以执行不成功。若在student学生表中插入学号’s001’的学生信息,如:insert into student values('s001','王盼','女',19,'数学系') 则再执行该语句时成功。
四.实验小结:
通过这次实验,学习了SQL Server数据库管理系统的使用的方法,通过自己创建数据库和表,熟悉了上课中讲到的相关知识,在完成实验的同时对自己所编写的代码进行调试和查错,并且自己发现错误并改正,对知识的理解和掌握都有很大的帮助。
实验二数据操作语句
一、实验目的
理解数据操作语句的功能。
二、实验要求
1.根据实验一建立的数据库和关系表,导入部分数据;
2.编写实现数据操作功能的SQL语句。
三、实验内容及步骤
1. 查询计算机系年龄最大的三个学生的姓名和年龄。
select top 3 sname,sage,sdept from student
where sdept='计算机系'
order by sage desc
2. 统计每个学生的选课门数,并按选课门数的递增顺序显示结果。select sno,count(*)from sc
group by sno
order by count(*)
3. 列出总成绩超过200分的学生,要求列出学号、总成绩。