数据库实验报告110文档格式.docx

上传人:b****5 文档编号:19250096 上传时间:2023-01-04 格式:DOCX 页数:19 大小:22.68KB
下载 相关 举报
数据库实验报告110文档格式.docx_第1页
第1页 / 共19页
数据库实验报告110文档格式.docx_第2页
第2页 / 共19页
数据库实验报告110文档格式.docx_第3页
第3页 / 共19页
数据库实验报告110文档格式.docx_第4页
第4页 / 共19页
数据库实验报告110文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库实验报告110文档格式.docx

《数据库实验报告110文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验报告110文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

数据库实验报告110文档格式.docx

SIZE=100MB,

MAXSIZE=200,

FILEGROWTH=20),

(NAME=JWGLXT3_DAT2,

\jc\JWGLXTdat2.ndf'

(NAME=JWGLXT3_DAT3,

\jc\JWGLXTdat3.ndf'

FILEGROWTH=20)

LOGON

(NAME=JWGLXT3_log1,

\jc\JWGLXT3log1.ldf'

(NAME=JWGLXT3_log2,

\jc\JWGLXT3log2.ldf'

2.修改数据库

①为jwglxt2数据库添加一个8MB大小的新数据文件

ALTERDATABASEJWGLXT2

ADDFILE

NAME=JWGLXTdata2,

\jc\JWGLXTdata2.ndf'

SIZE=8MB,

MAXSIZE=100MB,

FILEGROWTH=5MB

②向jwglxt2数据库中添加两个5MB大小的日志文件

ALTERDATABASEJWGLXT

ADDLOGFILE

(NAME=JWGLXTlog1,

\jc\JWGLXTlog1.ldf'

FILEGROWTH=5MB),

(NAME=JWGLXTlog2,

\jc\JWGLXTlog2.ldf'

FILEGROWTH=5MB)

3.重命名数据库

(1)使用管理平台把“jwglxt1”数据库重命名为“New_jwglxt”

(2)使用T-SQL语句把“jwglxt1”数据库重命名为“New_jwglxt”

Sp_renamedb‘jwglxt1’,’new_jwglxt’

4.删除数据库

(1)使用管理平台把“jwglxt1”数据库删除

(2)使用T-SQL语句把“jwglxt1”数据库删除

实验二数据表的创建(2012..9.26)

1.熟练掌握T-SQL语句创建数据表的方法

2.熟练掌握表的基本特性

3.掌握SQLServer的基本数据类型

4.熟练掌握使用管理平台创建数据表的方法

1.创建用户数据表

(1)在SQLServermanagementStudio管理工具下创建数据表

(2)使用T-SQL语句创建数据表

①创建一个名为jwglxt的数据库

②在jwglxt数据库中创建如下数据表

Student表的结构与数据类型

字段名

数据类型

约束

说明

Sno

Char(8)

Primarykey

学号

Clno

Char(6)

Notnull

班级编号

Sname

姓名

Ssex

Char

(2)

性别

Sbir

Datetime

出生日期

表记录参照P84图2.46

createtablestudent

(snochar(8)primarykey,

clnochar(6)notnull,

snamechar(8)notnull,

ssexchar

(2)check(ssexin('

男'

'

女'

))default('

)notnull,

sbirdatetime

Sc表的结构与数据类型

foreignkey

Cno

Char(5)

课程编号

score

Numeric(5,1)

成绩

主键snocno

表记录参照P81图2.40

createtablesc

(snochar(8),

cnochar(5),

primarykey(sno,cno),

foreignkey(sno)referencesstudent(sno),

scorenumeric(5,1)

course表的结构与数据类型

Cname

Char(20)

课程名称

credits

学分

表记录参照P99图2.66

createtablecourse

(cnochar(8)primarykey,

cnamechar(20)uniquenotnull,

creditsnumeric(5,1)

(请自行添加创建代码)

2.为数据表添加各类约束

①为student表的性别列指定默认值“男”,并设置检查约束为性别只能是“男”或“女”

②为course表的Cname字段指定唯一约束

③为SC表的sno字段建立外键约束(student表的sno字段)

实验三表的维护(2012.9.26)

1.熟练掌握使用SQL语句对表的结构进行修改

2.熟练掌握使用管理平台删除表、重命名表的操作方法

3.熟练使用SQL语句删除表、重命名表

使用实验二创建的student、sc、course三个表

1.为数据表student添加一个允许为空的列,列名为Sdept,类型为varchar(20)和一个sage列,其为计算列(通过sbir计算学生年龄)

altertablestudent

addsdeptvarchar(20)null

addsageasyear(getdate())-year(sbir)

2.将添加的sage列删除

dropcolumnsage

3.为sdept列添加默认值“计算机系”

addconstraintdfdefault('

计算机系'

)forsdept

4.删除sdept的默认值约束

dropconstraintdf

5.修改student表中sname列的长度为20

altercolumnsnamechar(20)

6.将student表重命名为stu

sp_rename'

student'

stu'

7.删除表stu

altertablesc

dropFK__sc__sno__182C9B23

droptablestu

(分别使用管理工具和SQL语句操作,实验报告只写SQL语句)

实验四简单查询(2012.10.10)

1.熟练掌握SQL语句使用方法

2.熟练使用聚合函数

3.熟练使用分组、排序

1.查询全体学生的学号、姓名、性别和年龄

selectsno,sname,ssex,sage

fromstudent

2.查询选修了课程的学生的学号(不显示重复行)

selectdistinctsno

fromsc

3.查询全体学生的详细信息

select*

4.查询全体学生的学号、姓名和出生年份(出生年份使用别名)

selectsno,sname,year(sbir)as出生年份

5.查询年龄在21-23岁之间的学生,显示学号、姓名及年龄

selectsno,sname,year(getdate())-year(sbir)as年龄

fromstudent

whereyear(getdate())-year(sbir)between21and23

6.查询姓“李”的学生记录

select*fromstu

wheresnamelike'

李%'

7.查询选修了课程01001、02002,成绩在80-90之间的学生

selectstu.*,o,sc.scorefromstudentinnerjoinsconstudent.sno=sc.sno

where(cno='

01001'

orcno='

02002'

)andscorebetween80and90

8.查询student表的5条记录

selecttop5*fromstudent

9.查询考试成绩排在前10%的学生的学号、姓名、成绩

selecttop10percentstu.sno,sname,score

fromstudent,sc

wherestudent.sno=sc.sno

10.查询缺少学习成绩的学生的学号和课程号(空值查询)

selectsno,cnofromsc

wherescoreisnull

11.求学生的总人数

selectcount(sno)as全班人数

12.求选修了课程的学生的总人数

selectcount(distinctsno)as选修课程人数

13.求200801班的学生的平均年龄

selectclno,avg(score)as平均成绩

fromstudentinnerjoinsconstudent.sno=sc.sno

groupbyclno

havingclno='

200801'

14.求选修01001课程的最高、最低、平均成绩

selectcno,max(score)as最高成绩,min(score)as最低成绩,avg(score)as平均成绩

groupbycno

havingcno='

15.求各门课程的平均成绩与总成绩(分组查询)

selectcno,avg(score)as平均成绩,sum(score)总成绩

16.求学生人数不足4人的班级及相应的学生数(分组查询)

selectclno,count(sno)as班级人数

groupbyclnoHavingcount(sno)<

4

实验五多表查询和子查询(2012.10.17)

1.熟悉基本的连接查询,掌握内连接与外连接及自连接

2.掌握相关子查询的方法

3.学会嵌套子查询的方法

4.学会集合查询的方法

1.查询选修了课程的学生姓名、学号、课程号、选课成绩

selectstudent.sno,sname,cno,score

2.查询选修了课程的姓“李”的学生的姓名、学号、课程号、选课成绩、并且选课成绩大于80分。

andscore>

80

3.分别将student表与sc表进行左连接、右连接、全连接、交叉连接,观察连接结果

内连接

selectstudent.*,sc.*

左连接

fromstudentleftouterjoinsconstudent.sno=sc.sno

右连接

fromstudentrightouterjoinsconstudent.sno=sc.sno

全连接

fromstudentfullouterjoinsconstudent.sno=sc.sno

交叉连接

fromstudentcrossjoinsc

4.查询比莫芳芳年龄大的学生(使用自连接)

selecta.*

fromstudentainnerjoinstudentbona.sno=b.sno

whereb.sage>

(selectsagefromstudentwherestudent.sname='

莫芳芳'

5.查询学生的姓名、课程名及考试成绩

selectsname,cname,score

joincourseono=o

6.查询选修了课程的学生信息

selectstudent.*

wheresnoin(selectdistinct(sno)fromsc)

7.查询与覃天同班的学生信息

whereclno=(selectclnofromstudentwheresname='

覃天'

8.查询比’200801’班中某一学生年龄大的学生的姓名和学号

selectsname,sno

wheresage>

any(selectsagefromstudentwhereclno='

9.选修了02002课程的学生的姓名和学号(子查询exists)

selectsno,sname

whereexists(selectsnofromscwherestudent.sno=sc.snoandcno='

10.查询选修了01001或2002的学生学号(集合查询)

selectsnofromsc

wherecno='

union

2002'

11.查询选修了全部课程的学生的姓名(相关子查询)

selectsname

wherenotexists(select*

fromcourse

wherenotexists(select*

fromsc

wherestudent.sno=sc.snoando=o)

12.查询选修了课程,但没有选修02003课程的学生的姓名、学号(相关子查询或集合查询)

wheresnoin(selectdistinct(sno)fromsc)

intersect

wheresnonotin(selectsnofromscwherecno='

02003'

13.查询成绩比所选课程平均成绩高的学生的学号、课程号、成绩(相关子查询)

selectx.*fromscx

wherescore>

(selectavg(score)fromscywherey.sno=x.sno)

14.查询所有未选修课程的学生学号、姓名

wheresnonotin(selectdistinct(sno)fromsc)

15.查询所有选修了课程的学生的学号、姓名

实验六数据更新和视图

1.熟练掌握插入、更新、删除数据表记录的方法

2.熟练掌握视图的创建方法

3.掌握视图的维护方法

1.向student数据表插入一条记录

20100101201001张容女1990-6-12

insertstudent

values('

20100101'

201001'

张容'

1990-6-12'

2.将200801班的学生记录追加到一个空表student1(表结构与student相同)中

insertintostudent1

select*fromstudent

whereclno='

3.在sc表中,将所有选修了02002课程的学生的选课成绩增加5分

updatesc

setscore=score+5

4.删除数据表sc中的所有记录

deletesc1或者truncatetablesc1

5.删除数据表student中所有女生记录

deletestudent1wheressex='

6.利用管理平台创建学生成绩表视图stuv1,包括sno,sname,cname,score

7.用SQL语句创建学生成绩表视图stuv2,包括sno,sname,cname,score

createviewstuv2

as

selectstudent.sno,sname,cname,score

joincourseono=o

8.为数据表student创建一个视图stuv,包括sno,clno,sname,ssex,sbir。

createviewstuv

selectsno,clno,sname,ssex,sbirfromstudent

①通过视图向数据表添加一条记录20100112201001张宏男1992-10-12

insertintostuv

values('

20100112'

张宏'

1992-10-12'

②通过视图将20100112的学生记录的性别改为女

updatestuv

setssex='

wheresno='

③通过视图删除20100112的学生记录

deletefromstuv

9.删除视图stuv

dropviewstuv

实验七SQL程序设计(2012.10.31)

1.熟练掌握SQL语言中局部变量的定义和赋值方法

2.熟练掌握流程控制语句在程序中的使用方法

1.声明两个整型局部变量:

@a1和@a2,并给@a1赋初值10,给@a2赋初值@a1*5,输出@a2的结果

declare@a1int,@a2int

set@a1=10

set@a2=@a1*5

print@a2

2.用exists确定student表中是否存在“赵丽丽”,如果存在则显示记录信息,不存在则返回提示信息。

ifexists(select*fromstudentwheresname='

赵丽丽'

select*fromstudentwheresname='

else

print'

没有赵丽丽的记录'

3.使用while语句实现计算5000减1、减2、减3……一直减到50的结果。

declare@sint,@iint

set@s=5000

set@i=1

while@i<

=50

begin

set@s=@s-@i

set@i=@i+1

end

print'

5000-1-2-...-50='

+cast(@saschar(20))

4.用case语句实现功能:

声明@x、@y为字符型,长度为6,为@x赋初值’abc’,分情况判断:

当@x=’a’时,@y=’abc’+’1’

当@x=’b’时,@y=’abc’+’2’

当@x=’c’时,@y=’abc’+’3’

否则,@y=’no’

declare@xchar(6),@ychar(6)

set@x='

abc'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1