没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
实验一 熟悉数据库环境和基本的数据库查询
一、实验内容
( 1 )创建数据库,用企业管理器或查询分析器使用
( 2 )创建相关的数据表
( 3 )数据查询:单表查询、多表查询以及嵌套查询
( 4 )视图的创建与使用
二、实验要求
( 1 )熟悉 sql sever2005 或 sql sever2008 平台,练习使用基本的查询语句
( 2 )记录实验中出现的疑难问题
( 3 )体会数据查询的实现过程,了解视图的作用
三、实验过程
( 1
1
1
1 )创建数据库
create database ST
注 : 这里我遇到一个问题 , 书本上并没说明怎么建数据库 , 而是说明了建一个模式 , 然后就
可以在该模式下建立表等内容了 。 所以我当时就觉得所谓模式 , 可能就是数据库的另外一种
表示方法 , 但是我在用查询语句建立模式时 , 在对象资源管理器中并没有显示模式 。 我又 用
create database ST 建立了一个数据库 , 结果数据库显示在了对象资源管理器中 , 于是我上网
查了资料。原来模式与数据库是不同的两个概念。网上令人信服的答案是, schema 就是在
数据库下面的一个名字空间 , 只是用来存放表的名字 , 当一个数据库用户做查询或什么别的
动作的时候 , 有个 search_path 来限定它的查询顺序 , 通常是 $user,public , 这样 , 实际上
一个数据库可以有多个同名的表,只要挂在不同的 schema 下就可以了。实际上, schem a
类似于操作系统层次的目录(这个 “ 目录 ” 用来存放表名称 ) ,那么一个数据库就相当于一
个操作系统, schema 相当于这个操作系统的目录,表相当于这个系统中的文件,因此 , 一
个库中可以有多个同名的表 。 所以 , 我就只创建了一个数据库 , 然后在它默认的模式 ( 用户
为 ado )下建表。
( 2
2
2
2 ) 创建 S
S
S
S 、 C
C
C
C 以及 SC
SC
SC
SC 三个表
有了第一步的基础 , 第二步想要把表建立在自己建立的数据库上就很方便了 。 用以下查
询语句:
create table ST.dbo.S --ST 表示数据库, dbo 表示模式,此处未定义
-- 模式,所以以用户名为默认模式
(
Sno char(9) primary key,
Sname char(20) unique,
Ssex char(2),
Sage smallint,
Sdept char(20)
);
create table ST.dbo.C
(
Cno char(4) primary key,
Cname char(40),
Cpno char(4),
Ccredit smallint,
foreign key (Cpno) references C(Cno)
)
create table ST.dbo.SC
(
Sno char(9),
Cno char(4),
Grade smallint,
primary key(Sno,Cno),
foreign key (Sno) references S(Sno),
foreign key (Cno) references C(Cno)
);
( 3
3
3
3 ) 向表中添加数据
S 中:
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080001',' 小刚 ',' 男 ',21,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080002',' 小艳 ',' 女 ',20,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080003',' 小美 ',' 女 ',21,' 外国语 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080004',' 小阳 ',' 男 ',19,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080005',' 小航 ',' 男 ',20,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080006',' 小玲 ',' 女 ',20,' 外国语 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080007',' 小潘 ',' 男 ',21,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080008',' 小磊 ',' 男 ',21,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080009',' 小鹏 ',' 男 ',21,' 计算机 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080010',' 小媛 ',' 女 ',20,' 土木 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080011',' 小伟 ',' 男 ',22,' 电气 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080012',' 小婷 ',' 女 ',20,' 机械 ')
insert into S(Sno,Sname,Ssex,Sage,Sdept)
values('20080013',' 小黄 ',' 女 ',20,' 外国语 ')
C 中:
insert into C(Cno,Cname,Cpno,Ccredit)
values('1',' 数据库 ','5','4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('2',' 数学 ',NULL,'2')
insert into C(Cno,Cname,Cpno,Ccredit)
values('3',' 信息系统 ','1','2')
insert into C(Cno,Cname,Cpno,Ccredit)
values('4',' 操作系统 ','6','3')
insert into C(Cno,Cname,Cpno,Ccredit)
values('5',' 数据结构 ','7','4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('6',' 数据处理 ',NULL,'2')
insert into C(Cno,Cname,Cpno,Ccredit)
values('7','C++ 程序设计 ','6','4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('8',' 离散数学 ','2','4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('9',' 计算机网络 ',NULL,'4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('10',' 编译原理 ','7','4')
insert into C(Cno,Cname,Cpno,Ccredit)
values('1',' 大学英语 ',NULL,'8')
SC 中:
insert into SC(Sno,Cno,Grade)
values ('20080001','6',87)
insert into SC(Sno,Cno,Grade)
values ('20080002','1',92)
insert into SC(Sno,Cno,Grade)
values ('20080002','3',78)
insert into SC(Sno,Cno,Grade)
values ('20080002','9',97)
insert into SC(Sno,Cno,Grade)
values ('20080003','4',59)
insert into SC(Sno,Cno,Grade)
values ('20080003','7',66)
insert into SC(Sno,Cno,Grade)
values ('20080005','10',90)
insert into SC(Sno,Cno,Grade)
values ('20080006','5',76)
insert into SC(Sno,Cno,Grade)
values ('20080006','8',90)
insert into SC(Sno,Cno,Grade)
values ('20080007','2',56)
insert into SC(Sno,Cno,Grade)
values ('20080008','4',67)
insert into SC(Sno,Cno,Grade)
values ('20080009','8',77)
insert into SC(Sno,Cno,Grade)
values ('20080010','3',69)
insert into SC(Sno,Cno,Grade)
values ('20080011','6',78)
insert into SC(Sno,Cno,Grade)
values ('20080012','9',63)
insert into SC(Sno,Cno,Grade)
values ('20080012','6',81)
insert into SC(Sno,Cno,Grade)
values ('20080012','3',78)
insert into SC(Sno,Cno,Grade)
values ('20080012','1',91)
insert into SC(Sno,Cno,Grade)
values ('20080013','4',71)
insert into SC(Sno,Cno,Grade)
values ('20080013','9',90)
insert into SC(Sno,Cno,Grade)
values ('20080013','2',84)
insert into SC(Sno,Cno,Grade)
values ('20080013','8',67)
注 : 在向基本表添加数据的时候遇到一个问题 , 如果某项值为空 , 那么是用 ‘ ’ 还是 NULL
,
最后经过尝试,是用 NULL 。
( 4
4
4
4 )更新数据
修改一个元组的值:
update S
set Sage=22
where Sname=' 小潘 ';
修改多个元组的值:
update S
set Sage=Sage+1
where Sno<20080005;
( 5
5
5
5 ) 单表查询
select * from S
where Ssex=' 女 ';
( 6
6
6
6 )多表查询
select S.Sno,S.Sname,SC.Grade
from S,SC
where S.Sno=SC.Sno and SC.Grade>=90;
( 7
7
7
7 ) 嵌套查询
select Sname
from S
where not exists
(
select *
from SC
where Sno=S.Sno and Cno='6'
);
( 8
8
8
8 ) 视图的创建
create view unpassS(Sno,Sname,Cname,Grade)
as
select S.Sno,S.Sname,C.Cname,SC.Grade
from S,SC,C
where S.Sno=SC.Sno and C.Cno=SC.Cno and SC.Grade<'60';
注:在创建视图时如果指定了视图的各属性,那么在选择语句中就要相应地选择出各属性
,
否则会出错。
( 9
9
9
9 ) 视图的使用
select *
from unpassS;
( 10
10
10
10 ) 视图的删除
drop view unpassS;
四、实验截图
( 1
1
1
1 ) S
S
S
S 表
剩余25页未读,继续阅读
资源评论
- ybXinHaiXingYuanyb2013-03-26本实验指导书,给我了不少参考,顶起来
- cauyahui2013-01-15这个是实验指导,不是实验报告,没有具体的操作流程,
p63423
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功