1、SQL实验报告2SQL Server 2000实验报告姓 名:李 奇 轩院 系:化工学院盐湖系专 业:09因材施教学 号:0922405012 实验一 数据库的创建和管理一、实验目的与要求1)掌握用企业管理器和T-SQL语句创建数据库的方法。2)掌握修改数据库,数据库更名的方法。3)掌握删除数据库的方法。二、实验过程设计及实验步骤1在SQL Server企业管理器中创建一个数据库,具体要求如下:(1)数据库名称为Test1。(2)主要数据文件:逻辑文件名为Test1Data1,物理文件名为Test1Data1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。(3)次要数据文件:逻
2、辑文件名为Test1Data2,物理文件名为Test1Data2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。(4)事务日志文件:逻辑文件名为Test1Log1,物理文件名为Test1Log1.ldf,初始容量为1MB,大容量为5MB,递增量为512KB。2在查询分析器中输入并执行一个CREATE DATABASE语句,具体要求如下:(1)数据库名称为Test2;(2)主要数据文件:逻辑文件名为Test2Datal,物理文件名为Test2Datal.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB;(3)次要数据文件:逻辑文件名为Test2Data2,物理文件名为
3、Test2Data2. ndf,初始容量为1 MB,最大容量为10MB,递增量为1MB;(4)事务日志文件:逻辑文件名为Test2Logl,物理文件名为Test2Logl.Ldf,初始容量为512KB,最大容量为5MB,递增量为512KB。create database Test2on primary(name=Test2data1, filename=d:Test2data1.mdf, size=1, maxsize=10, filegrowth=1),filegroup ff(name=Test2data2, filename=d:Test2data2.mdf, size=1, maxsi
4、ze=10, filegrowth=1)log on (name=Test2Log1, filename=d:Test2data1.mdf, size=1, maxsize=5, filegrowth=512kb)3按照下列要求在企业管理器中修改第2题中创建的Test2数据库:(1)主要数据文件的容量为2MB,最大容量为20MB,递增量为2MB。(2)次要数据文件的容量为2MB,最大容量为20MB,递增量为2MB。(3)事务日志文件:初始容量为1MB,最大容量为10MB,递增量为1MB。alter database test2 modify file ( name=Test2data1, si
5、ze=2, maxsize=20, filegrowth=2)alter database test2 modify file ( name=Test2data2, size=2, maxsize=20, filegrowth=2)alter database test2 modify file ( name=Test2Log1, size=1, maxsize=10, filegrowth=1)4数据库更名,要求:把TEST1数据库改名为new_TEST1。alter database test1modify name=new_test15收缩数据库,要求:分别使用DBCC SHRINKDA
6、TABASE和DBCC SHRINKFILE进行收缩。DBCC SHRINKDATABASE( test2 , target_percent , NOTRUNCATE | TRUNCATEONLY )6删除数据库(1)在企业管理器中删除new_TEST1数据库。在Enterprise manager可以在“new_TEST1”上单击右键,然后单击删除(2)在查询分析器中用DROP DATABASE语句删除经过第3题修改以后的Test2数据库。drop database Test2三、SQL调试及结果create database Test2on primary(name=Test2data1,
7、 filename=d:Test2data1.mdf, size=1, maxsize=10, filegrowth=1name=Test2data2, filename=d:Test2data2.mdf, size=1, maxsize=10, filegrowth=1)log on (name=Test2Log1, filename=d:Test2data1.mdf, size=512kb, maxsize=5, filegrowth=512kb)上面那样做程序报错,次要数据文件的生成应该是用filegroup编写,create database Test2on primary(name=
8、Test2data1, filename=d:Test2data1.mdf, size=1, maxsize=10, filegrowth=1),filegroup ff(name=Test2data2, filename=d:Test2data2.mdf, size=1, maxsize=10, filegrowth=1)数据库改名字:alter database test1modify name=new_test1删除数据库:在Enterprise manager可以在要删除的数据库图标上单击右键,然后单击删除 用命令删除:drop database Test2四、实验体会 通过这次实验我
9、们了解了Enterprise Manager和T-SQL在很多情况下具有相同的作用,学会了在两种情况下创建数据库(create database)、修改数据库(alter database)以及删除数据库(drop database),在数据库的基础上又可以添加删除数据文件,以及对数据库各种属性的编辑。 利用T-SQL修改数据库的语法还不是很熟悉,主要是alter database modify file|modify name=New_name生成文件的时候以语法格式,但是在次实验中特别注意的是,在修改指定文件的属性的时候,一次只能用该语句修改一个文件的一个属性,修改后size应该比修改前大
10、。alter database命令可以修改数据库包括:添加文件、重命令、删除文件等。但是该命令DBA或是具有create database权限的数据库才可以用 还了解到一个数据库包含的文件种类为:.mdf(数据文件)、ldf(日志文件)事务日志文件一般为数据文件的一半比较适中。 像SQL这样的可视化程序,我们既可以用代码编写,又可以直接在界面上编辑。后者明显可以节约很多的时间,但是为了程序的健全性和使用者容易查看我们多数还是用代码。实验二 数据查询一、实验目的与要求1)掌握使用SELECT 语句查询数据。2)掌握在企业管理器中查询数据的方法。二、实验过程设计及实验步骤实验表结构如下:学生表:
11、Student(Sno, Sname, Ssex ,Sage, Sdept) ,其中Sno为主键课程表:Course(Cno,Cname, Ccredit),其中Cno为主键学生选课表:SC(Sno,Cno,Grade),其中Sno,Cno的组合为主键要求:首先创建数据库XSGL,在该数据库中创建以上三表,在各表中输入一些记录,然后进行下面的操作,写出相应的命令序列:1)查询全体学生的学号和姓名。程序代码:select Sno,Sname from Student2)查询全体学生的姓名、学号、所在系。程序代码:select Sno,Sname,Sdept from Student3)查询全体学
12、生的详细信息。程序代码:select * from Student4)查询全体学生的姓名及其出生年份。程序代码:select Sname,(2008-Sage) as years from Student5)查询软件工程系全体学生的名单。程序代码:select Sname from Student where(Sdept=软件工程)6)查询所有年龄在20岁以下的学生姓名以及年龄。程序代码:select Sname,Sage from Student where(Sage20)7)查询考试成绩不及格的学生的学号。程序代码:select Sno,Grade from SC where(Grade=
13、20 and Sage= 23)9)查询不在信息系、数学系、也不在软件工程系学生的姓名和性别。程序代码:select Sname,Sno,Ssex from Student where(Sdept信息and Sdept数学and Sdept软件工程)10)查询所有姓刘的学生的姓名、学号和性别。程序代码:select Sname,Sno,Ssex from Student where(Sname like 刘%)11)查询姓“欧阳”且全名为三个汉字的学生的姓名。程序代码:select Sname from Student where(Sname like 欧阳_)12)查询姓名中第2个字为“阳”
14、字的学生的姓名和学号。程序代码:select Sname from Student where(Sname like _阳%)13)查询所有不姓刘的学生的姓名、学号。程序代码:select Sname,Sno,Ssex from Student where(Sname not like 刘%)14)查询缺少成绩的学生的学号和相应的课程号。程序代码:select Sno,Cno from SC where(Grade is null)15)查询软件工程系年龄在20岁以下的学生姓名。程序代码:select Sname,Sage from Student where(Sdept=软件工程 and S
15、age3)24)查询每个学生及其选修课程的情况。程序代码:select Sname,Sdept,SC.Sno,SC.Cno,Cname from Student,SC,Course where Student.Sno=SC.Sno and SC.Cno=Course.Cno25)查询选修2号课程且成绩在90分以上的所有学生。程序代码:select Sno from SC where(Cno=C2 and Grade=90)26)查询每个学生的学号,姓名,选修的课程名和 成绩。程序代码:select Sname,Student.Sno,Cno,Grade from Student,SC wher
16、e Student.Sno=SC.Sno27)查询所有选修了1号课程的学生姓名。程序代码:方法一:select Sname from Student where(Sno=any(select Sno from SC where Cno=C1)方法二:select Sname,SC.Sno,Cno from Student,SC where Student.Sno=SC.Sno and Cno=C128)查询选修了课程名为“数据库”的学生的学号和姓名。程序代码:select Sname,SC.Sno,Cname from student,SC,Course where Student.Sno=S
17、C.Sno and Course.Cno=SC.Cno and Cname=数据库三、SQL调试及结果1)程序代码:select Sno,Sname from Student 运行结果:如图4-1图4-12)程序代码:select Sno,Sname,Sdept from Student 运行结果:如图4-2图4-23)程序代码:select * from Student 运行结果:如图4-3图4-34)程序代码:select Sname,(2008-Sage) as years from Student 运行结果:如图4-4图4-45)程序代码:select Sname from Stude
18、nt where(Sdept=软件工程)运行结果:如图4-5图4-56)程序代码:select Sname,Sage from Student where(Sage20)运行结果:如图4-6图4-67)程序代码:select Sno,Grade from SC where(Grade=20 and Sage= 23)运行结果:如图4-8图4-89)程序代码:select Sname,Sno,Ssex from Student where(Sdept信息and Sdept数学and Sdept软件工程)运行结果:如图4-9图4-910)程序代码:select Sname,Sno,Ssex fro
19、m Student where(Sname like 刘%)运行结果:如图4-10图4-1011)程序代码:select Sname from Student where(Sname like 欧阳_)运行结果:如图4-11图4-1112)程序代码:select Sname from Student where(Sname like _阳%)运行结果:如图4-12图4-1213)程序代码:select Sname,Sno,Ssex from Student where(Sname not like 刘%)运行结果:如图4-13图4-1314)程序代码:select Sno,Cno from S
20、C where(Grade is null)运行结果:如图4-14图4-1415)程序代码:select Sname,Sage from Student where(Sdept=软件工程 and Sage3)运行结果:如图4-23如图4-2324)程序代码:select Sname,Sdept,SC.Sno,SC.Cno,Cname from Student,SC,Course where Student.Sno=SC.Sno and SC.Cno=Course.Cno运行结果:如图4-24图4-2425)程序代码:select Sno from SC where(Cno=C2 and Gra
21、de=90)运行结果:如图4-25图4-2526)程序代码:select Sname,Student.Sno,Cno,Grade from Student,SC where Student.Sno=SC.Sno 运行结果:如图4-26图4-2627)方法一程序代码:select Sname from Student where(Sno=any(select Sno from SC where Cno=C1) 运行结果:如图4-27图4-27方法二程序代码:select Sname,SC.Sno,Cno from Student,SC where Student.Sno=SC.Sno and C
22、no=C1运行结果:如图4-28图4-2828)程序代码:select Sname,SC.Sno,Cname from student,SC,Course where Student.Sno=SC.Sno and Course.Cno=SC.Cno and Cname=数据库运行结果:如图4-29图4-29四、实验体会1) 通过这次的上机实习,我学会了运用select语句来查询数据的各种命令以及语法。2) Select * from3) Where4) Group by5) Having6) Order by7) Distinct 可以消去重复行8) Count(*)可以用来统计元组个数9)
23、10) 上述的都是在实际查询过程中经常需要用到的命令11) 此外,查询多个表中的数据一起来组合,我们通常会用到连接。表之间满足一定条件的行进行里连接,where后面跟着连接的条件。也可以运用关键字Join进行连接,当将Join关键字放于from子句中时,应有关键词on与之相对应,以表明连接的条件。 实验三 视图的创建和使用一、实验目的与要求1)理解视图的概念2)掌握利用企业管理器和CREATE VIEW命令创建视图方法。3)熟悉修改视图、查看视图和删除视图的方法。4)掌握通过视图修改数据表的方法二、实验过程设计及实验步骤创建视图是数据库应用中的常见需求,可以使用企业管理器创建、管理视图,也可以
24、用T-SQL语句创建、管理视图。1)在企业管理器中创建如下视图:在sales数据库中使用表Categories和Products创建视图view_cate_prod,来查询每种类型的产品的总库存。2)在查询分析器中创建视图:将上题用create view 来创建,视图名为view2程序代码: USE Sales GO CREATE VIEW view2 AS SELECT ProductName,Products.CategoryID,Description,Quantity FROM Products JOIN Categories ON Products.CategoryID=Catego
25、ries.CategoryID3)修改视图,并加密:将视图view2加密。程序代码:ALTER VIEW view2WITH ENCRYPTION AS SELECT ProductName,Products.CategoryID,Description,Quantity FROM Products JOIN Categories ON Products.CategoryID=Categories.CategoryID4)查看视图信息:使用系统存储过程sp_help、sp_helptext、sp_depends 5)通过视图修改数据:修改产品编号为P02006的产品的名称(ProductName)及产品种类描述(Descript
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1