SQL SERVER数据库实验报告详细.docx

上传人:b****6 文档编号:8821766 上传时间:2023-02-01 格式:DOCX 页数:16 大小:47.70KB
下载 相关 举报
SQL SERVER数据库实验报告详细.docx_第1页
第1页 / 共16页
SQL SERVER数据库实验报告详细.docx_第2页
第2页 / 共16页
SQL SERVER数据库实验报告详细.docx_第3页
第3页 / 共16页
SQL SERVER数据库实验报告详细.docx_第4页
第4页 / 共16页
SQL SERVER数据库实验报告详细.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

SQL SERVER数据库实验报告详细.docx

《SQL SERVER数据库实验报告详细.docx》由会员分享,可在线阅读,更多相关《SQL SERVER数据库实验报告详细.docx(16页珍藏版)》请在冰豆网上搜索。

SQL SERVER数据库实验报告详细.docx

SQLSERVER数据库实验报告详细

数据库原理及应用实验报告

学号:

姓名:

实验1

一、实验目的:

熟悉SQLServer使用界面,掌握使用SSMS和SQL语句创建并设置数据库。

二、实验原理:

1.使用SSMS创建数据库

2.创建数据库语句:

CREATEDATABASE数据库名

[ON[PRIMARY]//指定一个文件为主要文件

[<文件格式>[,…n]]

[,<文件组格式>[,…n]]]

[LOGON{<文件格式>[,…n]}]

<文件格式>:

:

=

([NAME=逻辑文件名,]

FILENAME=‘操作系统下的文件名和路径’

[,SIZE=文件初始容量]

[,MAXSIZE={文件最大容量|UNLIMITED}]

[,FILEGROWTH=递增值])[,…n]

<文件组格式>:

:

=FILEGROUP文件组名<文件格式>[,…n]

3.修改数据库语句:

ALTERDATABASE数据库名

{ADDFILE<文件格式>[,…n][TOFILEGROUP文件组名]

|ADDLOGFILE<文件格式>[,…n]

|REMOVEFILE逻辑文件名

|ADDFILEGROUP文件组名

|REMOVEFILEGROUP文件组名

|MODIFYFILE<文件格式>

|MODIFYFILEGROUP文件组名文件组属性}

:

:

=

(NAME=逻辑文件名

[,FILENAME=‘实际文件名和路径’]

[,SIZE=容量]

[,MAXSIZE={最大容量|UNLIMITED}]

[,FILEGROWTH=递增量])

三、实验内容:

1.使用SQL语句完成下题

(1)使用CREATEDATABASE语句创建一个名为“st”数据库,要求①主要数据文件:

逻辑文件名为“stdata1”,实际文件名为“stdata1.mdf”②事务日志文件:

逻辑文件名为“stlog1”,实际文件名为“stlog1.ldf”③初始容量均为3MB,最大容量均为10MB,递增量均为1MB。

(2)使用CREATEDATABASE语句创建一个名为“student”数据库,要求①主要数据文件:

逻辑文件名为“studentdata1”,实际文件名为“studentdata1.mdf”②非主要数据文件:

逻辑文件名为“studentdata2”,实际文件名为“studentdata2.ndf”③事务日志文件:

逻辑文件名为“studentlog1”,实际文件名为“studentlog1.ldf”④初始容量均为3MB,最大容量均为10MB,递增量均为1MB。

(3)使用ALTERDATABASE语句在“st”数据库中添加一个数据文件和一个事务日志文件,其逻辑文件名分别为“studentdata3”和“studentlog2”,其实际文件名分别为“studentdata3.ndf”和“studentlog2.ldf”,初始容量均为1MB,最大容量均为10MB,递增量均为1MB;然后将数据文件studentdata3的初始容量增加到5MB,上限增加到20MB。

解:

(1)createdatabasestonprimary

(name=stdata1,

filename='d:

\xs\stdata1.mdf',

size=3mb,maxsize=10mb,filegrowth=1mb)

logon

(name='stlog1',

filename='d:

\xs\stlog1.ldf',

size=1mb,maxsize=10mb,filegrowth=1mb)

go

(2)createdatabasestudentonprimary

(name=studentdata1,

filename='d:

\xs\studentdata1.mdf',

size=3mb,maxsize=10mb,filegrowth=1mb),

(name=studentdata3,

filename='d:

\xs\studentdata2.ndf',

size=1mb,maxsize=10mb,filegrowth=1mb)

logon

(name='studentlog1',

filename='d:

\xs\studentlog1.ldf',

size=1mb,maxsize=10mb,filegrowth=1mb)

go

(3)alterdatabasest

addfile

(name=studentdata3,

filename='d:

\xs\studentdata3.ndf',

size=1mb,maxsize=10mb,filegrowth=1mb),

(name='studentlog2',

filename='d:

\xs\studentlog2.ldf',

size=1mb,maxsize=10mb,filegrowth=1mb)

alterdatabasest

modifyfile

(name=studentdata3,

size=5mb,maxsize=20mb)

实验2

一、实验目的:

掌握使用SSMS和SQL语句创建并管理数据库表.

二、实验原理:

1.在SSMS上创建数据库表

2.创建数据库表语句:

CREATETABLE[数据库名.拥有者]表名

(<字段定义>)[,…n]

<字段定义>:

:

={字段名数据类型}

[[DEFAULT常量表达式]|[IDENITY[(种子,增量)]]]

[<字段定义>][,…n]

3.创建约束

[CONSTRAINT约束名]NULL|NOTNULL

[CONSTRAINT约束名]PRIMARYEY[CLUSTERED|NONCLUSTERED]

[(字段名[,…16])]]

[CONSTRAINT约束名]DEFAULT默认值[FOR字段名]

[CONSTRAINT约束名]UNIQUE[CLUSTERED|NONCLUSTERED][(字段名[,…16])]]

[CONSTRAINT约束名]FOREIGNKEY[(字段名[,…16])]REFERENTCES引用表名(引用字段名[,…16])

[CONSTRAINT约束名]CHECK(条件表达式)

4.修改数据库表

ALTERTABLE

ALTERCOLUMN字段名新数据类型[(精度[,小数位数])][NULL|NOTNULL]

ALTERTABLE表名

ADD{字段定义|字段名AS计算机字段表达式}[,…n]

ALTERTABLE表名

DROPCOLUMN字段名[,…n]

ALTERTABLE表名

ADDCONSTRAINT约束定义[,…n]

ALTERTABLE表名

DROPCONSTRAINT约束名[,…n]

三、实验内容

1.使用SQL语句完成下题:

(1)使用CREATETABLE语句创建一个学生表,其中包含以下字段:

学号(int,自动编号,种子为200001,增量为1,定义为主键);姓名(varchar(8),notnull);专业(varchar(20),null,)。

(2)使用CREATETABLE语句创建一个成绩表其中包含以下字段:

学号(int,notnull);课程号(int,notnull);成绩(real,null,)。

(3)使用altertable语句新增学生表和成绩表之间的外键联系,并新增对成绩的检查性约束。

解:

(1)createtable学生表

(学号intidentity(200001,1)primarykey,

姓名varchar(8)notnull,

专业varchar(20)null)

(2)createtable成绩表

(学号intnotnull,

课程号intnotnull,

成绩realnull)

(3)altertable成绩表

add

constraintgjmgforeignkey(学号)references学生表(学号),

constraintfhjgcheck(成绩>=0and成绩<=100)

实验3

一、实验目的:

熟练掌握SELECT语句对数据库表的各项操作.

二、实验原理:

1.选择查询语句:

SELECT字段列表(指定输出字段)

[INTO新表](将检索结果存储到一张新表)

From数据源(指定检索的数据来源)

[WHERE搜索条件](指定对记录的过滤条件

[GROUPBY分组表达式](对检索到的记录分组)

[HAVING搜索表达式](指定对记录的过滤条件)

[ORDERBY排序表达式](对检索到的记录进行排序处理)

三、实验内容:

1.完成课后题3、5

7.3

(1)SELECT业务员姓名,年龄from业务员

where年龄=

(selectmax(年龄)from业务员)

(2)select业务员姓名,月薪from业务员

orderby月薪desc

(3)select*from业务员

where月薪between1000and2000

(4)select客户编号,count(订单号)as订单数,sum(金额)as总金额from订单

groupby客户编号

(5)select业务员姓名,count(订单号)as订单数from业务员fullouterjoin订单

on业务员.业务员编号=订单.业务员编号

groupby业务员姓名

havingcount(订单号)>=2

orderby订单数

(6)update业务员

set月薪=1.1*月薪

(7)select业务员姓名,年龄from业务员

where月薪>all(selectavg(月薪)from业务员)

(8)update业务员

set月薪=1.05*月薪

where业务员编号in

(select业务员编号from订单

groupby业务员编号havingsum(金额)>20000)

(9)select业务员姓名,订单号,z.客户编号,金额from业务员x,订单y,客户z

wherex.业务员编号=y.业务员编号andy.客户编号=z.客户编号and金额>=2000

 

7.5

(1)SELECTENO,ENAMEFROMEMP

WHEREENOIN(SELECTENOFROMWORKSWHERECNO='C4'ORCNO='C8'

GROUPBYENO

HAVINGCOUNT(CNO)>1)

(2)SELECTENO,ENAMEFROMEMP

WHEREECITYIN(SELECTCITYFROMCOMPWHERECNOIN(SELECTCNOFROMWORKS))

(3)SELECTENO,COUNT(CNO)ASNUM,SUM(SALARY)ASSUM_SALARYFROMWORKS

WHEREENOIN(SELECTENOFROMEMP)

GROUPBYENO

(4)SELECTDISTINCTENOFROMWORKS

WHERECNOIN(SELECTCNOFROMWORKSWHEREENO='E6')

(5)UPDATEWORKS

SETSALARY=100+SALARY

WHEREENOIN(SELECTENOFROMEMPWHEREAGE>50)

(6)DELETE

FROMWORKS

WHEREENOIN(SELECTENOFROMEMPWHEREAGE>60)

(7)CREATEVIEWEMP_WOMAN

ASSELECTEMP.ENO,ENAME,WORKS.CNO,CNAME,SALARYFROM(EMPJOINWORKSONEMP.ENO=WORKS.ENO)JOINCOMP

ONWORKS.CNO=COMP.CNOWHERESEX='女'

(8)SELECTCNO,ENOFROMWORKS

WHERECNOIN(selectCNOFROMCOMPWHERECITY='上海')

(9)selectENAMEfromEMP

WHEREENONOTIN(SELECTENOFROMWORKSWHERECNOIN(SELECTCNOFROMCOMPWHERECITY='上海'))

(10)SELECTENO,ENAMEFROMEMP

WHEREENOIN(SELECTENOFROMWORKSWHERESALARY>1000ANDCNOIN(selectCNOfromCOMPwhereCNAME='IBM'))ANDSEX='男'

 

7.3订单

订单号

日期

客户编号

业务员编号

金额

001

2010-09-08

8331

1991

100000

002

2011-05-12

8334

1993

2000000

003

2010-10-11

8332

1992

200000

004

2010-11-12

8333

1993

300000

005

2010-12-13

8334

1994

400000

006

2011-01-01

8335

1995

500000

007

2011-01-23

8333

1992

2500000

008

2011-02-05

8332

1995

320000

009

2011-03-06

8331

1994

3500000

010

2011-04-12

8334

1992

2400000

客户

客户编号

客户姓名

地址

类别

A1

张国荣

江西南昌

xx

A2

李斯

江西上饶

yy

A3

刘德华

浙江杭州

zz

A4

陈凯歌

福建厦门

xy

A5

李连杰

钓鱼岛

yz

业务员

业务员编号

业务员姓名

性别

年龄

月薪

1991

刘欢

25

1800

1992

无名

24

2000

1993

长风

28

2200

1994

飞雪

22

1500

1995

残剑

21

2800

7.5COMP

CNO

CNAME

CITY

C1

国防部

北京

C2

外交部

上海

C3

卫生部

珠海

C4

外汇局

深圳

C5

住建部

南昌

C6

教育部

天津

C7

发改委

南昌

C8

文化部

上饶

C9

全国妇联

纽约

C10

IBM

南昌

EMP

ENO

ENAME

AGE

SEX

ECITY

E1

海峰

22

南昌

E2

佩佩

25

纽约

E3

艾艾

26

北京

E4

明明

35

上海

E5

羽灵

36

深圳

E6

莉莉

34

杭州

E7

渐渐

45

珠海

E8

佳佳

46

广州

E9

可可

54

香港

E10

瓜瓜

51

上饶

WORKS

E1

C1

2500

E2

C2

2000

E3

C3

1500

E4

C4

800

E5

C5

900

E6

C6

1800

E7

C7

3600

E8

C8

4500

E3

C10

1600

E10

C2

4400

E1

C4

3400

E3

C9

2300

E4

C8

1500

 

实验四、设计性实验:

建立小型数据库管理系统

一、实验目的

熟悉数据库建立及应用的方法,系统的应用数据库。

二、实验原理

1.创建数据库语句:

CREATEDATABASE数据库名

[ON[PRIMARY]//指定一个文件为主要文件

[<文件格式>[,…n]]

[,<文件组格式>[,…n]]]

[LOGON{<文件格式>[,…n]}]

[FORLOAD//提供与SQLServer早期版本的兼容性|FORATTACH//将已经存在的数据库文件连接进来]

<文件格式>:

:

=

([NAME=逻辑文件名,]

FILENAME=‘操作系统下的文件名和路径’

[,SIZE=文件初始容量]

[,MAXSIZE={文件最大容量|UNLIMITED}]

[,FILEGROWTH=递增值])[,…n]

<文件组格式>:

:

=FILEGROUP文件组名<文件格式>[,…n]

2.修改数据库语句:

ALTERDATABASE数据库名

{ADDFILE<文件格式>[,…n][TOFILEGROUP文件组名]

|ADDLOGFILE<文件格式>[,…n]

|REMOVEFILE逻辑文件名

|ADDFILEGROUP文件组名

|REMOVEFILEGROUP文件组名

|MODIFYFILE<文件格式>

|MODIFYFILEGROUP文件组名文件组属性}

:

:

=

(NAME=逻辑文件名

[,FILENAME=‘实际文件名和路径’]

[,SIZE=容量]

[,MAXSIZE={最大容量|UNLIMITED}]

[,FILEGROWTH=递增量])

3.备份,恢复数据库原理语句:

RESTOREDATABASE数据库FROM备份设备名

EXECsp_attach_db‘数据库名’,‘文件名’[,…16]

4.创建数据库表语句:

CREATETABLE[数据库名.拥有者]表名

(<字段定义>)[,…n]

<字段定义>:

:

={字段名数据类型}

[[DEFAULT常量表达式]|[IDENITY[(种子,增量)]]]

[<字段定义>][,…n]

5.选择查询语句:

SELECT字段列表(指定输出字段)

[INTO新表](将检索结果存储到一张新表)

From数据源(指定检索的数据来源)

[WHERE搜索条件](指定对记录的过滤条件

[GROUPBY分组表达式](对检索到的记录分组)

[HAVING搜索表达式](指定对记录的过滤条件)

[ORDERBY排序表达式](对检索到的记录进行排序处理)

三、实验内容

1.数据库的设计

根据实际情况建立E-R数据模型,需要考虑的实体有学生、班级、课程。

其中E-R简图如下:

 

其中班级实体的属性为班级名称、班长学号等;学生属性为学号、姓名等;课程属性为课程号、课程名称;学习联系的属性为学生号、课程号、成绩。

其他属性自行设计。

2.数据库的建立

建立数据库及相应的数据库表。

3.数据库的使用

a.在数据库表中插入数据

b.设计SQL语言使其分别满足下列要求:

查找学号为20070101的学生姓名;

查找“计算机基础”课程的课程编号;

查找20070102号同学学习的课程名;

查找学习“C语言”课程的学生学号;

查找200701班班长的姓名;

查找成绩高于80分的学生学号;

查找“C语言课程”的平均成绩;

所有设计语句请在sqlserver中检验。

4.实验报告要求

画出你所设计的E-R数据模型,并给出你所建立的数据库表结构,写出你的数据库及数据库表的建立的语句,给出符合上述条件的select语句

E-R数据模型:

数据库表的结构:

班级

班级名称

班长姓名

学生

学号

姓名

课程

课程号

课程名称

学习联系

学号

课程号

成绩

语句:

createdatabasest

onprimary

(name='st',

filename='c:

\sql\st.mdf',

size=3mb,maxsize=10mb,filegrowth=10mb)

go

logon

(name='st',

filename='c:

\sql\st.ldf',

size=3mb,maxsize=10mb,filegrowth=10mb)

go

usestudent

createtable班级(

班级名称nchar(10)primarykey,

班长学号nchar(10)notnull)

go

createtable学生(

学号nchar(10)primarykey,

姓名nchar(10)notnull)

go

createtable课程(

课程号nchar(10)primarykey,

课程名称nchar(10)notnull)

go

createtable学习联系(

学号nchar(10)primarykey,

课程号nchar(10)notnull,

成绩intnull)

go

 

Select语句:

(1)select姓名from学生

where学号=20070101

(2)select课程号from课程

where课程名称='计算机基础'

(3)select课程名称from课程,学习联系

where学习联系.学号='20070102'and学习联系.课程号=课程.课程号

(4)select学号from学习联系,课程

where课程.课程名称='C语言'and课程.课程号=学习联系.课程号

(5)select姓名from班级,学生

where班级名称=200701and学号=班长学号

(6)select学号from学习联系

where成绩>80

(7)selectavg(成绩)as'平均成绩'from课程,学习联系

where课程名称='C语言'and课程.课程号=

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

当前位置:首页 > 表格模板 > 表格类模板

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

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