数据库实验报告模版.docx

上传人:b****4 文档编号:4632602 上传时间:2022-12-07 格式:DOCX 页数:13 大小:147.77KB
下载 相关 举报
数据库实验报告模版.docx_第1页
第1页 / 共13页
数据库实验报告模版.docx_第2页
第2页 / 共13页
数据库实验报告模版.docx_第3页
第3页 / 共13页
数据库实验报告模版.docx_第4页
第4页 / 共13页
数据库实验报告模版.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库实验报告模版.docx

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

数据库实验报告模版.docx

数据库实验报告模版

 

 

学生实验报告

 

学院:

软件与通信管理学院

课程名称:

数据库系统原理

专业班级:

软件125班

姓名:

吴灏

学号:

0123734

 

学生实验报告

(二)

学生姓名

吴灏

学号

0123734

同组人:

实验项目

交互式sql

■必修□选修

□演示性实验□验证性实验■操作性实验□综合性实验

实验地点

W201

实验仪器台号

指导教师

边海容

实验日期及节次

3月18日5.6节

3月25日5.6节

4月1日5.6节

一、实验综述

1、实验目的及要求

目的:

1)熟悉SQLSERVERdatamanagementstudio的使用。

2)掌握建立表和基本约束性条件的SQL语句语法。

3)理解SELECT语句的操作和基本使用方法。

4)理解JOIN语句的操作和基本使用方法,掌握内连接、外连接、自身连接的概念和使用

5)掌握使用SQL语句删除和修改数据的方法

6)掌握视图的定义与工作原理。

要求:

完成大部分实验练习题

2、实验仪器、设备或软件

仪器设备:

电脑一台

工具:

sqlserver2008

二、实验过程(实验步骤、记录、数据、分析)

(1创建数据库,创建五张基本表并且导入数据

createtable员工人事表(

员工编号nvarchar(5)notnullprimarykey,

员工姓名nvarchar(10)notnull,

性别nvarchar

(1)notnull,

所属部门nvarchar(4)notnull,

职称nvarchar(6)notnull,

到职日datetimenotnull,

生日datetimenull,

薪水intnotnull,

住址varchar(50)null

(2)查询已导入的基本表

(3)sql语句练习

1)查找出职称为职员的女员工的姓名、职称、性别。

select员工姓名,职称,性别

from人事员工表

where职称='职员'

and性别='f'

2)查找出employee表中周晓梅住址相同的员工的姓名、性别、职称、薪水、住址。

select员工姓名,性别,职称,薪水,住址

from人事员工表

where住址in

(select住址

from人事员工表

where员工姓名='周

小梅')

3)由employee表中查找出薪水最高的员工信息。

select*

from人事员工表

where薪水=

(selectMAX(薪水)

from人事员工表

4)由sales表中查找出订单金额大于“E0014业务员在1996/10/15这天所接每一张订单的金额”的所有订单。

select*

from销售主表

where订单金额>

(select订单金额

from销售主表

where业务员编号='E0014'

and订货日期='1996-10-1500:

00:

00')

5)查询出employee表中所有女职工的平均工资和住址在"上海市"的所有女职工的平均工资

selectAVG(薪水)

from人事员工表

where薪水in(

select薪水

from人事员工表

where性别='f')

union

selectAVG(薪水)

from人事员工表

where薪水in(

select薪水

from人事员工表

where性别='f'

and住址='上海市')

6)计算出sale_item表中每一笔销售数据的销售金额,并按照销售金额的大小排序。

select单价*销售数量

from销货明细表

orderby单价*销售数量

7)检索product表和sale_item表中数量大于2的相同产品的产品编号、产品名称、数量、单价。

select产品名称表.产品编号,产品名称,销售数量,单价

from产品名称表,销货明细表

where产品名称表.产品编号=销货明细表.产品编号

and销售数量>2

8)查找所有经理的姓名、职称、薪水。

select员工姓名,职称,薪水

from员工人事表

where职称='经理'

9)查找出姓“王”并且名字的最后一个字为“功”的员工。

select员工姓名

from员工人事表

where员工姓名like'王%功'

10)查找住在上海或北京的女员工,并显示其姓名、所属部门、职称、住址。

select员工姓名,所属部门,职称,住址

from员工人事表

where住址

in(select住址

from员工人事表

where住址='上海市'or住址='北京市')

and性别='f'

11)在表sales中挑出销售金额大于等于10000元订单。

select*

from销售主表

where订单金额>='1000'

12)选取订单金额最高的前10%的订单数据。

(提示:

Selecttop10percent)

select*

from销售主表

where订单金额in(

selecttop10percent订单金额

from销售主表)

13)查找出职称为经理或职称为职员的女员工的信息。

select*

from员工人事表

where职称in(

select职称

from员工人事表

where职称='经理'or

职称='职员')

and性别='f'

14)计算出一共销售了几种产品。

selectCOUNT(distinct产品编号)

from销货明细表

15)显示sale_item表中每种个别产品的订购金额总和,并且依据总额由大到小排列来显示出每一种产品的排行榜。

select产品编号,sum(销售数量*单价)订购金额总和

from销货明细表

groupby产品编号

orderbysum(销售数量*单价)desc

16)计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序。

(提示:

Year(属性名)将属性名对应的日期型属性值提取年份,Month((属性名)将属性名对应的日期型属性值提取月份)

selectMONTH(出货日期)月份,产品编号,sum(销售数

量*单价)销售金额总和

from销货明细表

groupbyMONTH(出货日期),产品编号

orderbyMONTH(出货日期)

17)查找出employee表中住址相同的员工的姓名、性别、职称、薪水、住址。

(提示:

使用自我连接将两个地址相同的员工显示在同一行)

select住址,员工姓名,性别,职称

from员工人事表

groupby住址,员工姓名,性别,职称

18)查找出employee表中部门相同且住址相同的女员工的姓名、性别、职称、薪水、住址。

selectdistincta.所属部门,a.住址,a.员工姓名,a.性

别,a.职称,a.薪水

from员工人事表a,员工人事表b

wherea.所属部门=b.所属部门anda.住址=b.住址

anda.性别='f'

19)检索product表和sale_item表中相同产品的产品编号、产品名称、数量、单价。

select产品名称表.产品编号,产品名称,销售数量,单价

from产品名称表,销货明细表

where产品名称表.产品编号=销货明细表.产品编号

groupby产品名称表.产品编号,产品名称,销售数量,单

20)检索product表和sale_item表中单价高于2400元的相同产品的产品编号、产品名称、数量、单价。

select产品名称表.产品编号,产品名称,销售数量,单价

from产品名称表,销货明细表

where产品名称表.产品编号=销货明细表.产品编号

and单价>'2400'

groupby产品名称表.产品编号,产品名称,销售数量,单

21)分别使用左向外连接、右向外连接、完整外部连接检索product表和sale_item表中单价高于2400元的相同产品的产品编号、产品名称、数量、单价。

并分析比较检索的结果。

select产品名称表.产品编号,产品名称,销售数量,单价

from产品名称表,销货明细表

where产品名称表.产品编号=销货明细表.产品编号

and单价>'2400'

select产品名称表.产品编号,产品名称,销售数量,单价

from产品名称表leftoutjoin销货明细表on(产品名称表.产品编号=销货明细表.产品编号)

where单价>'2400'

//消息155,级别15,状态1,第2行

'out'不是可以识别的join选项。

select产品名称表.产品编号,产品名称,销售数量,单价

from销货明细表rightoutjoin产品名称表on(产品名称表.产品编号=销货明细表.产品编号);

where单价>'2400'

//消息155,级别15,状态1,第2行

'out'不是可以识别的join选项。

22)由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接每一张订单的金额”的所有订单。

select*

from销售主表

where订单金额>all(select订单金额

from销售主表

where业务员编号='E0013'and订货日期='1996-10

-15')

23)查询出employee表中所有女职工的平均工资和 住址在"上海市"的所有女职工的平均工资

selectAVG(薪水)女职工平均工资

from员工人事表

where性别='f'

selectAVG(薪水)上海市女职工平均工资

from员工人事表

where性别='f'and住址='上海市'

24)由sales表中查找出销售金额最高的订单。

select*

from销售主表

where订单金额=(selectmax(订单金额)

from销售主表)

25)由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接任一张订单的金额”的所有订单,并显示承接这些订单的业务员和该条订单的金额。

select业务员编号,订单号

from销售主表

where订单金额>all(select订单金额

from销售主表

where业务员编号='E0013'and订货日期='1996-10

-15')

26)找出公司女业务员所接的订单。

select*

from销售主表,员工人事表

where性别='f'and销售主表.业务员编号=员工人事

表.员工编号

27)找出公司中姓名相同的员工,并且依据员工编号排序相识这些员工信息。

selectdistincta.员工编号,a.员工姓名,a.性别,a.所属

部门,a.职称

from员工人事表a,员工人事表b

wherea.员工姓名=b.员工姓名

groupbya.员工姓名,a.性别,a.所属部门,a.职称,a.员

工编号

28)找出目前业绩未超过200000元的员工。

select员工编号,员工姓名,订单金额业绩

from员工人事表,销售主表

where员工人事表.员工编号=销售主表.业务员编号

and订单金额<='200000'

29)计算公司内各个部门的工资支出总和。

select所属部门,sum(薪水)工资支出

from员工人事表

groupby所属部门

30)计算每一产品销售数量总和与平均销售单价。

select产品编号,sum(销售数量)销售数量总和,avg(

单价)平均销售单价

from销货明细表

groupby产品编号

31)删除销售表sales中不存在于销售明细表中的定单号。

delete

from销售主表

where订单号notin

(select订单号

from销货明细表

32)删除sales表中作废的订单(其发票号码为I000000004),其订货明细数据也一并删除。

销售主表中没有发票的号码,所以无法删除

33)建立销售信息视图,能显示每个定单的详细信息

createview销售信息

as

select*

from销货明细表

34)将数据(10010,'1996/12/20')插入销售信息视图中/*注意:

插入数据时要考虑数据列是否有默认值或允许为空,否则INSERT失败。

*/

插入失败,没有默认值,将其修改为

insert

into销售信息

values(10010,'P0001',3,2600.00,'1996-12-2000:

00:

00')

35)创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。

createview上海客户信息

as

select客户号,客户名称,客户住址

from客户

where客户住址='上海市'

36)对视图添加一条记录数据。

(注意:

分别查看customer表和该视图的结果。

insert

into上海客户信息

values('12345','李含日','上海市')

37)删除视图中所有姓“王”的客户数据。

delete

from上海客户信息

where客户名称='王%'

38)通过视图修改表内某一名字中包含‘王’字的客户的姓名为‘张三’。

update上海客户信息

set客户名称='张三'

where客户名称='%王%'

39)有两个基本表employee和sales,创建一个视图,该视图包含sales中各业务员的编号、姓名、订单号、销售总金额。

createview销售详情

as

select业务员编号,员工姓名,订单号,订单金额销售总

金额

from销售主表,员工人事表

where销售主表.业务员编号=员工人事表.员工编号

40)将上述视图中订单号为10001的记录的销售总金额改为60000。

update销售详情

set销售总金额='60000'

where订单号='10001'

41)给上述视图添加一条记录数据。

insert

into销售详情

values('12303','李含日',54321,300000)

42)删除上述视图。

dropview销售详情

三、问题反馈

在将一组数据插入到视图时,不能将空值插入到属性为非空的位置,例如

createview上海客户信息

as

select客户号,客户名称,客户住址

from客户

where客户住址='上海市'

insert

into上海客户信息

values('12345','李含日','上海市')

//消息515,级别16,状态2,第1行

不能将值NULL插入列'邮政编码',表'ITEM1.dbo.客户表';列不允许有Null值。

INSERT失败。

语句已终止。

邮政编码是在基本表中,要将基本表中属性的数据一并插入

四、指导教师评语及成绩:

评语:

成绩:

指导教师签名:

边海容

批阅日期:

月日

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

当前位置:首页 > 初中教育 > 语文

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

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