精品文档
精品文档
i
i欢迎下载
理工大学学生实验报告
学院名称
专业班级
课程名称
学号
学生姓名
实验日 期
实验成 绩
实验题目
交互式SQL
实验一认识DBMS
一、 实验目的1 ?通过对某个商用数据库管理系统的安装使用,初步了解 DBMS的 工作环境和系统构架。在此推荐SQL SERVER2O05
熟悉DBMS的安装、配置及使用。
3 ?搭建今后实验的平台。
二、 实验平台
操作系统:Windows XF。
数据库管理系统:SQL SERVER2005选择安装各个数据库管理系统 之前,请仔细看清硬件的配置要求。
三、 实验内容和要求
1 .根据安装文件的说明安装数据库管理系统。在安装过程中记录安 装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今 后运行数据库管理系统会有什么影响。
学会启动和停止数据库服务。
在正确安装SQL SERVER200后, SQL SERVE数据库弓I擎服务会在 系统启动时自动启动。如果要手动地启动和停止数据库引擎服务,可以
通过 SQL SERVEBE置管理器(SQLSERVER CONFIGURATION MANAGER 进行管理。SQL SERVED置管理器综合了 SQLSERVER 200中的服务管 理器、服务器网络适用工具和客户端网络实用工具的功能。
打开SQL SERVERS置管理器工具,单击“ SQL SERVER200服务”
节点,其中的“ SQL SERVER服务就是我们所说的数据库引擎。与 SQL SERVER 200(一样,可以通过这个配置管理器来启动、停止所安装的服 务,如“ sqlservermssqlsermeRo
了解RDBMS系统的体系结构。
实验二交互式SQL
.数据定义
(一) 基本表的操作
1.建立基本表
例如,建立一个学生表:
create table Stude nt (Sno char(9) primary key, Sn ame char(20) uniq ue, Ssex char(2), Sage smalli nt,
Sdept char(20))
I sno
建立个课程表:
create table Course (Cno char(4) primary key,
Cn ame char(40),
Cpno char(4),
Ccredit smalli nt,
foreig n key (Cp no) refere nces Course(C no))
I | cn撫电 | ccr tdi t | cptio
create table sc
(S no char(9),
Cno char ⑷,
Grade smalli nt,
primary key(S no,Cno),
foreig n key (Sno) refere nces stude nt(S no),
foreig n key (Cno) refere nces course(C no)) ;
sno con grade
2?修改基本表
例如,像student表加一个入学时间列:
alter table Stude nt add S_entrance datetime
sno | sname ss?x sage t s ftntranee
alter table Stude nt alter colu mn Sage int
alter table Course add uniq ue(C name)
3.删除基本表
例如,删除已经建立的学生表:
drop table Stude nt
drop table Course
(二)索引操作
建立索引
例如,为学生课程数据库中的 student, course, sc 三个
表建立索引。其中 student 表按学号升序建唯索引,
course表按课程号升序建唯索引, sc表按学生升序和课
程号升序建唯索引:
create unique in dex Stus no on Stude nt(S no);
create unique in dex Couc no on Course(C no);
create un ique in dex SCno on SC(S no ASC,C no DESC)
删除索引
例如,删除student表的Stusno索引:
drop in dex Stus name
(三)数据操作
更新操作
插入数据
例如,在student表中插入下列数据:
200215125,张立,男,19,IS
代码如下
in sert into stude nt(S no,S name,Ssex,Sage,Sdept)values('200215125',' 张
立;,’男',19,'S"「
| IX
I Edept
I e antraiic#
^□021^121B
结果如下:
22
CS
<FULL>
插入后,
L9
IS
<KULL>
200Z151Z3
L0
Mk
<HULL>
200215125
L9
IS
<MULL>
在Course表中插入以下数据:
数据库,5,4
数学,null ,2
数据处理,null ,2
操作系统,6,3
PASCAL语言,6,4
数据结构,7,4
1,数据库,5,4
信息系统,1,4
insert into course(Cno,Cname,Cpno,Ccredit)values('1',' 数据库','5',4);
in sert into course(C no,C name,Ccredit)values('2',' 数学',2);
insert into course(Cno,Cname,Ccredit)values('6',' 数据处理',2);
insert into course(Cno,Cname,Cpno,Ccredit)values('4',' 操 作系统
',6,3);
insert into course(Cno,Cname,Cpno,Ccredit)values('7',PASCAL 语言
',6,4);
insert into course(Cno,Cname,Cpno,Ccredit)values('5',' 数据结构
',7,4);
insert into course(Cno,Cname,Cpno,Ccredit)values('1',' 数据库','5',4);
insert into course(Cno,Cname,Cpno,Ccredit)values('3',' 信息 系 统
','1',4);
con
cnarrie
cpnc
□credit
1
m i
埶据库
5
4
2
2
数学
NULL
2
3
3
信息系藐
1
4
4
4
G
3
5
5
数摇结构
7
4
6
€
NULL
2
7
7
PASCAL语=
G
4
2?修改数据
例如,将学生200215121的年龄改为22岁:
update stude nt set Sage=22 where Sn o='200215121'
修改前:
Issas
sage
| s;d?pt
I s entranct
200215121
李萸
男
20
cs
<MULL>
修改后:
I EDlO>
I
sage
sdept
s entr &nce
1200215121
章重
畀
22
cs
<SULL>
删除数据
例如,删除学号为 200215128的学生记录:
delete from stude nt where Sn o='200215128'
删除所有学生的选课记录:
delete from sc
删除计算机科学系所有学生的选课记录:
delete from sc where 'CS'=(select Sdept from stude nt where
stude nt.S no=SC.S no )
查询操作
单表查询
例如,查询全体学生的学号与姓名:
select Sn o,S name from stude nt
ST1O
12345200215121 李勇
1
2
3
4
5
200215126张魚明
200215125 张立
再例如,查询全体学生的详细记录
select * from stude nt;
S10
snamre
SSSC
ssge
adept
s_entrance
1
| 200215121
■j李勇
男
23
cs
NULL
2
200215122
刘晨
女
20
cs
NULL
3
200215123
王敏
7B
ma
NULL
4
200215125
张立
20
is
NULL
5
200215126
张咸民
H
19
C5
NULL
6
200215128
陈冬
19
is
NULL
查询所有年龄在20岁以下的学生姓名及其年龄
select Sn ame,Sage from stude nt where Sage<20;
3结果A消息
sriarTie
『
查询所有姓刘的学生的姓名、学号和性别 。
select Sn ame,S no ,Ssex from stude nt where Sn ame like ' 刘 %';
sname
sno
1 j划晨
I 20Q215122
连接查询
例如,查询每个学生及其选修课程的情况:
select stude nt.*,sc.* from stude nt,sc where stude nt.S no=sc.S no
snossex sage sdepts ent rancesno
sno
ssex sage sdept
s ent rance
sno
eno
grade
]2l j21&:21 2002151213
]2l j21&:21 200215121
3 ^200215121
41200215122
5 1200215122
李李李刘刘
臭胃舅女女
NULL
200215121
1
92
NULL
200215121
2
35
NULL
200215121
3
88
NULL
200215122
2
90
NULL
200215122
3
SO
查询每一门课的间接先修课:
select first.C no ,sec on d.Cp no from course first,course sec ond where first.Cp no=sec on d.C no
匚
eno epno
1
1 7
2
3 E
3
4 NULL
4
5 6
7 NULL
查询每个学生及其选修课程的情况,用外连接来完成
select stude nt.S no,S name,Ssex,Sage,Sdept,C no,Grade from stude nt left outer join sc on
(stude nt.S no=sc.S no);
Sno
Sname
Ssex
Sage
Sdept
Con
Grade
1
1 200215121
1
i李勇
ft
23
cs
1
0
2
200215121
李更
w
23
cs
2
D
3
200215121
李勇
23
cs
3
0
4
200215122
划晨
女
20
cs
2
0
5
200215122
対晨
女
20
GS
3
0
嵌套查询
例如,查询与“刘晨”在同一个系学习的学生
select Sn o,S name,Sdept
from stude nt where
Sdept in
(select Sdept from stude nt
where
Sn ame=刘晨');
Sno
Sname
Sdept
1
f 200215121]
李更
cs
2
200215122
刘晨
cs
3
张成民
cs
查询选修了课程名为“信息系统”的学生学号和姓名
select Sn o,S name
from stude nt where
Sn o in
(select Sno from sc
Where
Cn o in
(select
Cno from course where
Cname=信息系统'));
Sno SnarriE
riooiisiif'l 李勇
2W215122 J 划晨
集合查询
例如,查询计算机科学系的学生以及年龄不及十九岁的学生:
Select *
Form stude nt
Where sdept = ‘s'
Union
Select *
From stude nt
Where sage < 19
sno
sage
sdept
s entrance
1
200215121
李勇
22
OS
NULL
2
200215123
王敏
W
MA
NULL
3
200215126
张成明
1&
cs
NULL
视图操作
1.建立视图
例如,建立信息系学生的视图:
Create view
IS_stude nt
As
Select sno.sn ame, sage
Form stude nt
Where sdept = 'IS'
sno
I siiaine
対展
19
200215125
19
生
将学生的学号和他的成绩定义为一个视图
删除视图
例如,删除视图 BT_S
Drop view BT_S
查询视图
在信息系学生中找出年龄小于 20岁的学生
Select *
Form IS_Stude nt
Where sage < 20
sno
sname
sage
1
200215122 刘辰 19
2
200215125 张立 19
更新视图
将信息系统学生IS_student中学号为200215122的学生姓名改为“刘辰”
Update IS_stude nt
Set sname = I'文悚'
Where sno = 200215122'
删除信息系学生视图IS_studnet中学号为200215129的记录
Delete
From IS_stude nt
Where sno = 200215129'
相关热词搜索: 理工大学 实验 数据库 报告