数据库实验Word文档格式.docx
- 文档编号:17905253
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:46
- 大小:1.45MB
数据库实验Word文档格式.docx
《数据库实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验Word文档格式.docx(46页珍藏版)》请在冰豆网上搜索。
2.启动SQL查询分析器
3.掌握创建数据库和表分别是CREATEDATABASE和CREATETABLE
四、注意事项:
1.在MicrosoftSQLServer2000的查询分析器(QueryAnalyzer)中使用单条SQL语句,其末尾不需要分号“;
”作为命令结尾标记。
2.通常,SQLServer2000对大多数末尾带有分号的SQL命令都能顺利执行,但对少数的SQL命令,末尾若带分号,则SQLServer2000会给出错误信息提示。
五、实验学时:
2学时
六、实验重点及难点:
1.列级完整性约束条件
2.空值的概念
3.CREATEDATABASE和CREATETABLE的用法
七、实验步骤:
(一)企业管理器创建数据库和表
1.启动企业管理器;
1.打开所有程序,找到MicrosoftSQLServer2008打开。
SQLServerManagementStudio打开。
输入服务器名称(即完整计算机名称B005(本机))。
完成启动企业管理。
2.创建数据库Company。
1.在新建查询中输入SQL语句:
createdatabaseCompany;
执行完成创建数据库Company。
即完成创建数据库Company。
(二)T-SQL语句创建数据库和表
1.创建数据库University,并创建一个主数据文件University_Data和一个日志文件University_Log;
1.创建数据库University。
使用SQL语句:
createdatabaseUniversity;
2.创建一个主数据文件University_Data和一个日志文件University_Log;
然后按路径找到行数据和日志。
3.建立表5.3所示的学生表Students,各属性为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。
要求Sno和Sname不能为空值,且取值唯一,Sno为键码。
1.首先创建Students表。
createtableStudents
(Snochar(9)primarykey,
Snamechar(20)unique,
Ssexchar
(2),
Sagesmallint,
Sdeptchar(20)
);
用select*fromStudents语句;
查询已建表:
2.插入表5.3中的数据。
insert
intoStudents(Sno,Sname,Ssex,Sage,Sdept)
values('
S01'
'
王建平'
男'
21,'
自动化'
);
S02'
刘华'
女'
19,'
S03'
范林军'
18,'
计算机'
S04'
李伟'
数学'
S05'
黄河'
S06'
长江'
20,'
再次使用查询语句select*fromStudents;
运行结果:
4.建立表5.4所示的课程表Courses,各属性为Cno-课程号,Cname-课程名,Pre_Cno-先修课程号,Credits-学分,要求Cno和Cname不能为空值,Cno取值唯一,且为键码。
首先创建Courses表。
createtableCourses
(Cnochar(9)notnullprimarykey,
Cnamechar(20)uniquenotnull,
Pre_Cnochar(4),
Creditssmallint,
使用insertinto语句插入数据,如图所示:
insert
intoCourses(Cno,Cname,Pre_Cno,Credits)
C01'
英语'
null'
4);
intoCourses(Cno,Cname,Pre_Cno,Credits)
C02'
数据结构'
C05'
2);
C03'
数据库'
C04'
DB_设计'
3);
C++'
C06'
网络原理'
C07'
操作系统'
查询结果:
select*fromCourses;
5.建立表5.5所示的成绩表Reports。
各属性名为Sno-学号,Cno-课程号和Grade-考试成绩,要求Sno和Cno不能为空,且取值唯一,Sno+Cno为键码。
使用SQL语句创建表Reports:
createtableReports
(Snochar(9)notnull,
Cnochar(9)notnull,
Gradesmallint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudents(Sno),
foreignkey(Cno)referencesCourses(Cno)
使用SQL语句插入数据:
intoReports(Sno,Cno,Grade)
values('
92);
84);
90);
94);
82);
72);
75);
查询结果:
6.在相关表上建立索引。
创建各个表的索引:
createuniqueindexStusnoonStudents(Sno);
createuniqueindexCoucnoonCourses(Cno);
createuniqueindexCSnoonReports(Sno,Cno);
Students、Courses、Reports表的创建查询结果:
实验二SQL基本表的插入、修改和删除
熟练掌握基本表的插入、修改和删除,为后继学习作准备。
1.了解并掌握SQL查询分析器及企业管理器的使用;
2.掌握基本表的插入、删除与修改。
1.启动SQL查询分析器
2.掌握进行插入、删除与修改分别是INSERT、DROP和UPDATE
1.注意每次对表的修改,命令执行完后要查看表的变动刷新表。
2.特别注意在执行插入、删除与修改等更新操作时,要保证数据的完整性。
3.SQLServer2000增加了删除属性的命令。
六、实验重点及难点
1.T-SQL语句对基本表的定义进行删除与修改,并插入基本表数据。
2.T-SQL语句对数据库操作的灵活控制功能。
1.启动SQL查询分析器;
2.选择SQLSERVER后,按确认;
3.选择University数据库;
4.验证如下例题:
4.1修改基本表
向基本表Students中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。
altertableStudentsADDSentrancedatedatetime;
在Students表中增加属性列Sentrancedate
将Sage(年龄)的数据类型改为SMALLINT型。
SQL语句:
altertableStudentsaltercolumnSagesmallint;
将STudents表中的Sage的数据类型改为smallint。
删除Sname(姓名)必须取唯一值的约束。
SQL语句:
altertableStudentsdropconstraintUQ__Students__52723D276262D465;
说明:
为了保证后面例子能够顺利运行,请大家一定将属性列Sentrancedate从Students表中删除。
为了调试SQL语句方便,这里没有在表Reports中增加参照完整性约束,甚至没有定义主键。
4.2删除Students表。
因为Students表中有Reports表的外码,故只有删除Repors表后才能删除Students表。
SQL语句:
droptableReports;
droptableStudents;
此表删除后,请立即将其建立起来,以便后面的例子使用。
4.3向表中添加元组
将一个学生元组(S01,王建平,男,21,计算机)添加到基本表Students中。
values('
请同学们用这个命令,按表5.3提供的数据,将其余5个学生的元组也添加到基本表Students中。
执行结果:
向Courses表插入元组(‘C01’,’英语’,’’,4)。
'
请同学们用这个命令,按表5.4提供的数据,将其余6门课程的信息插入Courses表中。
insert
intoCourses(Cno,Cname,Pre_Cno,Credits)
Insert
将学习成绩的元组(‘S01’,’C01’,92)添加到基本表Reports中。
intoReports(Sno,Cno,Geade)
运行结果:
实验三数据库的查询
一、实验目的及要求
1.熟练掌握SELECT查询语句的使用
2.掌握无条件、有条件查询及查询结果排序与分组
二、实验任务
1.掌握查询语句的一般格式。
2.掌握无条件、有条件查询及查询结果排序与分组
三、操作要点
1.进行查询时先进入查询分析器
2.明白了解无条件、有条件查询及查询结果排序与分组
四、注意事项
1.SELECT语句的基本语法格式
2.SELECT语句的执行方法
3.SELECT语句和ORDERBY子句的作用和用法
4.SELECT语句和GROUPBY子句的作用和用法
4学时
1.SELECT语句的基本语法
2.掌握数据汇总的方法
七、实验步骤
2.选择SQL SERVER后,按确认;
3.选择数据库University,
验证如下例题:
3.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:
selectSno,Sname,Ssex,Sage,Sdept
fromStudents;
运行结果为:
3.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
这是一个无条件的投影查询,其命令为:
selectSname,Sno,Sdept
3.3查询选修了课程的学生学号。
其命令为:
selectCno
fromCourses;
3.4查询数学系全体学生的学号(Sno)和姓名(Sname)。
selectSno,Sname
fromStudents
whereSdept='
;
运行结果为:
3.5查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。
selectSname,Sage
whereSagebetween18and22;
3.6查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。
selectSname,Sage
fromStudents
whereSagenotbetween18and22;
运行结果为:
3.7查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。
selectSno,Sname,Sage
whereSdeptin('
3.8查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。
selectSname,Sno,Ssex
whereSnamelike'
刘%'
运行结果为:
3.9查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。
selectCno,Credits
fromCourses
whereCname='
3.10查询以"
DB_"
开头,且倒数第2个汉字字符为“设”的课程的详细情况。
select*
whereCnamelike'
DB\_设_'
escape'
\'
3.11假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。
fromReports
whereGradeisnull;
3.12查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。
select*
orderbySdept,Sagedesc;
3.13查询学生总人数。
selectcount(*)'
学生总人数'
fromStudents;
3.14查询选修了课程的学生人数。
selectcount(distinctSno)'
选修课总人数'
fromReports;
3.15计算选修C01号课程的学生平均成绩。
selectavg(Grade)'
C01号课程平均分'
whereCno='
3.16查询选修C01号课程的学生最高分数。
selectmax(Grade)'
C01号课程最高分'
3.17对课本的select案例3.16~3.42进行实现
课本的Student_Course数据库各表为:
案例1:
查询全体学生的学号与姓名
命令为:
selectSno,SnamefromStudent;
案例2:
查询全体学生的姓名、学号、所在系
命令为:
selectSname,Sno,SdeptfromStudent;
案例4:
查询全体学生的姓名及其出生年份
selectSname,2016-Sage'
2016-Sage'
fromStudent;
案例5:
查询全体学生的姓名、出生年份和所在院系,要求用小写字母表示系名
selectSname,'
YearofBirth'
2014-Sage'
LOWER(Sdept)'
LOWER(Sdept)'
案例6:
查询选修了课程的学生学号
selectSnofromSC;
案例7:
查询计算机系全体学生的名单
selectSnamefromStudentwhereSdept='
CS'
案例8:
查询所有年龄在20岁以下的学生姓名及其年龄
selectSname,SagefromStudentwhereSage<
20;
案例9:
查询考试成绩不及格的学生的学号
命令为:
selectdistinctSnofromSCwhereGrade<
60;
案例10:
查询年龄在20~23岁(包含20岁和23岁)之间的学生的姓名、系别和年龄
selectSname,Sdept,SagefromStudentwhereSagebetween20and23;
运行结果为:
案例11:
查询年龄不在20~23岁之间的学生的姓名、系别和年龄
selectSname,Sdept,SagefromStudentwhereSage
notbetween20and23;
案例12:
查询计算机系、数学系和信息系的学生的姓名和性别
selectSname,SsexfromStudentwhereSdeptin('
MA'
IS'
运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验