SQL Server 作业Word下载.docx
《SQL Server 作业Word下载.docx》由会员分享,可在线阅读,更多相关《SQL Server 作业Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
联系人
价格
数量
开工日期
完工日期
p1
l1
木板
福汉
123
李军
150
10
2004-01-02
2004-03-01
l2
钢板
东胜
456
赵海
430
2
p2
5
2004-01-11
2004-02-12
l3
水泥
50
20
学号
姓名
出生日期
班号
系名
专业
宿舍区
0001
李明
80-01-02
C001
计算机
应用
A001
0002
杜军
79-05-21
0003
王海
81-02-23
C002
机械
自动化
A002
0004
赵俊
80-06-08
C003
软件
0005
钱进
80-10-18
0006
孙胜
80-06-02
0007
C004
控制
0008
张华
0009
王汉
C005
0010
陈易
可分解为:
供应商表(供应商编号、供应商名、联系人、电话)、材料表(材料号、材料名、价格)供求关系表(工程号、供应商编号、材料号、数量)、工程表(工程号、开工日期、完工日期)
2)假设某公司的进货单使用的订单格式如下
进货单号:
1145进货日期:
09/15/2002检收人:
金额:
12000.00
产品编号
品名
金额
a
插座
100.00
2000.00
b
电表
200.00
40
8000.00
c
开关
40.00
公司的业务规定:
进货单号是唯一的,每张进货单对应一个进货单号
一张进货单上可以有多种产品的进货情况
一张进货单有一个人检收,一个人也可以有检收多张进货单
每一个产品编号对应一种产品的品名
每一个检收人都是公司的一个员工,需存储基本的个人信息,(姓名、性别、出生日期、学历、地址、联系方式)
依据题目的意思,对于主键的设定可为:
进货单表(进货单号-pk、进货日期、员工编号、金额)、进货详情表(进货单号-pk、产品编号-pk、产品数量)、产品表(产品编号-pk、产品名称、价格)、员工信息表(员工编号-pk、员工姓名、性别、出生日期、学历、地址、联系方式。
)
3)商店销售商品的数据库,涉及如下数据:
商店号、商店名、地址
商品号、商品名、单价。
某商店销售某商品的数量和日期。
设计e/r图(属性名用中、英文均可);
转换成关系模型(注明键码和函数依赖)。
可设计为:
商品表(商品号-pk、商品名、单价)、商店表(商店号-pk、商店名、地址)、销售表(商店号-pk、商品号-pk、日期、数量)
4)e-r图向关系模式转换应遵循哪三个原则。
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的键就是关系的键。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
一个n:
m联系转换为一个关系模式。
与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为各实体键的组合。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
具有相同键的关系模式可合并。
5)根据以下需求情况,设计数据库,完成数据库详细设计说明书、数据字典等相关文档。
用E/R图来描述逻辑数据模型,并将E/R图映射为数据表格,形成物理数据模型及数据字典。
某商场需求描述如下:
商场有多个部门,每个部门有若干员工,员工只能属于一个部门,部门有不同的业务性质,其中若干部门管理(存储)若干商品,而财务、经理办公室不直接管理商品,每种商品均有一种品牌、同一品牌有许多商品,必属于某种类别、若干商品隶属于同一类别,必须有计价单位,若干商品有相同的单位,商品按计量方法可以分为称重和计数商品,考虑到现实的复杂性,可能还会经营其它计量方法的商品(如:
以体积计量的汽油、酒精、散装食用油等)。
员工信息表(员工编号、员工名称、性别、出生年月、部门编号)、部门表(部门编号、部门名称、部门经理编号)、商品信息表(商品编号、商品名称、品牌编号、单位、单价、部门编号)品牌信息表(品牌编号、品牌名称)、销售信息表(商品号、数量、日期、员工编号)
6)把下图关系设计为三范式,写出SQL脚本,设计主键和外键,注意完善数据的完整性,并适当的向表中插入部分示例数据。
7)
学生表(学号、姓名、性别、年龄、所在班级)、班级表(班级号、班级名、班级人数、教师编号)、教师信息表(教师编号、教师名,性别、出生日期、联系方式)、课程表(课程号、课程名、学分)、成绩表(学号、课程号、成绩)
第2讲SQLServer2000数据库管理
3、简答题:
1)在windows资源管理器中将与示例数据库pubs有关的两个磁盘文件复制到一个指定的文件夹中。
2)在查询分析器中,用dropdatabase语句将示例数据库pubs删除掉。
3)MDF,NDF,LDF,说明一下他们是否可不要,要的话,可以有多个吗?
4、问答题:
8)使用企业管理器和查询分析器分别创建数据库students,要求所有参数为默认值。
9)简述sqlserver数据库中各种物理文件的作用、文件组的作用及所能拥有的个数?
3.用查询分析器创建一个数据库,要求数据库文件放在E盘自己的文件夹里面。
主要数据文件stu_data大小为1,最大为10,按10%增加,日志文件stu_log和主要数据文件相同。
4.用企业管理器创建一个数据库,要求有MDF,2个NDF,1个LDF三种数据文件,其它参数和上面一题相同。
5.把上面一题做好的数据库备份起来,把备份文件存放在自己的文件夹下面,取名为“备份文件“
然后把第4题的数据库删除,然后还原这个数据。
。
(注意,怕自己删除后还原不了的,小心操作)
8.介绍一下如何把刚刚创建好的数据复制出来,例如把创建在E盘文件夹的数据文件COPY到桌面的时候,它会说文件正在使用。
报错,怎么办才能自制成功?
?
9、说明一下怎么把一个创建好的MDF,LDF的数据库重新插入到数据库中去呢?
(附加数据库存,操作一下试试)
第3讲数据存储与数据完整性
5、简答题:
1)若要在一个数据库表中存储职工的id号、姓名、性别、地址、身份证号码、工资收入和出生日期,应分别使用什么数据类型?
2)char类型和vcarchar类型有什么区别?
6、问答题:
10)创建一个进货(buyin)表,该表应有如下字段,确定该表的主键,如果试图往表中添加如下记录,能否成功,若不成功,原因是什么?
属性
样例数据
进货号
1001
进货玩具号
000001
进货时间
2004-11-24
进货价格
100
insertbuyinvalues(‘1002’,’000002’,gedate(),10,20)
insertbuyinvalues(‘1002’,’000003’,gedate(),5,30)
insertbuyinvalues(‘1002’,’000002’,10,20)
根据实际需求情况,主键约定为进货号和进货玩具号的复合;
第一个操作成功;
第二个操作成功;
第三个操作不成功,原因是违反了主键约束;
第四个操作不成功,原因是字段数目不对。
11)在查询分析器中,执行下列操作,试写出完成操作所使用的语句(还没有讲到这一知识点,在帮助里面输入altertable来查询帮助来做下面的题目)
删除students表中的primarykey约束
删除scores表中的primarykey约束。
试写出完成上述操作所使用的语句。
12)按以下语句创建表格验证以下语句能否实现插入操作,若不能找出其原因
sql源代码
createtabletest
(cidchar(5)primarykey,
vnamevarchar(10)unique,
vcityvarchar(10)check(vcityin(‘武汉’,’北京’,’上海’)),
vaddressvarchar(20))
验证以下语句能否实现插入操作,若不能找出其原因
inserttestvalues(‘a0001’,’赵琴’,’武汉’,’楚雄大道101号’)
inserttestvalues(‘a0001’,’王华’,’北京’,’光明大道101号’)
inserttestvalues(‘a0002’,’孙山’,’天津’,’黄浦街52号’)
inserttestvalues(‘a0003’,’赵琴’,’武汉’,’解放大道598号’)
第一次操作成功;
第二次操作不成功,原因为违反了主键约束;
第三次操作不成功,原因为违反了检查约束;
第四次操作不成功,原因为违反了唯一性约束。
13)SQLServer2000中的数据类型可以分为以下类型:
字符串类型、统一代码类型、日期时间类型、数值类型、货币类型、二进制码字符串类型等。
试在下面的表格中填写相关数据类型的名称。
数据类型
数据类型名称
数字数据类型
字符串数据类型
日期时间类型
其他数值类型
14)用查询分析器创建一个数据库stuDb,要求创建之前判断一下是不是存在,如果存在就删除它,然后再来创建它。
然后使用它,在它里面创建三张表,stuInfo,teacherInfo,scoreInfo,自己分析一下应该在这三张表中放入什么字段名,注意创建表的时候也要检查一下这张表是不是存在,如果存在就删除它,然后再来创建它。
注意表的主键,原子性。
第3讲简答题:
1)创建下面三张表,要求,第一张表书号为主键,单价不能大于100。
第二张表客户号为主键,客户地址默认为“北京“。
第三张表订单号为主键,书号和客户号分别为引用第一和第二两张表的外键。
7、问答题:
15)用下面这个表格创建三张表,供应商表,材料表,供求关系表。
如下:
字段名最好用英文,不会就用拼音,如:
供应商编号字段就写gysId.注意每个表都应该有约束。
供应商表(供应商编号、供应商名、联系人、电话)
材料表(材料号、材料名、价格)
供求关系表(工程号、供应商编号、材料号、数量)
工程表(工程号、开工日期、完工日期),
16)假设某公司的进货单使用的订单格式如下
进货单表(进货单号-pk、进货日期、员工编号、金额)、进货详情表(进货单号-fk、产品编号-fk、产品数量)、产品表(产品编号-pk、产品名称、价格)、员工信息表(员工编号-pk、员工姓名、性别、出生日期、学历、地址、联系方式。
17)把下图关系设计为三范式,写出SQL脚本,设计主键和外键,注意完善数据的完整性,并适当的向表中插入部分示例数据。
第4讲表中数据处理
8、简答题:
利用northwind数据库完成employees的查询。
(可以查询帮助select)
1)显示所有员工的基本信息列表
2)将名为“king”的员工的城市改为“china”
3)删除名为“king”的员工的信息
9、问答题:
18)创建数据库centermanagement,在centermanagement数据库中创建表usertypes,并插入3条记录,表结构及表中数据如下:
19)在usertypes表中执行更新操作,把所有usertypecode为2的数据行更新为5;
然后删除所有usertypecode为5的用户。
updateusertypessetusertypecode=5whereusertypecode=2;
deletefromusertypeswhereusertypecode=5
20)修改表users中的数据(这个表在northwind数据库中),使用户“wangli”的名称(name)改变为“wangling”、口令(pwd)为“wlwlwl”。
21)利用pubs数据库完成。
向titleauthor表中插入数据行,新的数据为:
au_id=172-32-1176、title_id=bu1032、royaltyper=73。
22)利用pubs数据库完成。
删除jobs表中min_lvl大于100的数据行。
第5讲基本查询语句
10、简答题:
利用northwind数据库完成
1)查询所有产品(Products表)的信息。
Select*fromproducts
2)查询雇员姓名、所在城市及其家庭电话,姓名以格式“姓.名”显示。
(Employees为雇员表)
Selectlastname+’.’+firstname,city,homephonefromemployees
3)查询出单价(unitprice)最贵的前10种产品(Products表)的信息。
Selecttop10*fromproductsorderbyunitpricedesc
4)查询出所有单价(unitprice)超过50美元的产品名称ProductName、产品代号ProductID及其单位重量QuantityPerUnit。
(产品表Products)
Selectproductname,productid,quantityperunitfromproductswhereunitprice>
50
5)查询出职务(title)为销售代表’SalesRepresentative’,称呼(TitleOfCourtesy)为’Ms.’的所有职员(Employees表)姓名和生日。
Selectlastname,firstname,birthdatefromemployeeswheretitle=‘salesrepresentative’andtitleofcourtesy=‘ms.’
6)查询出每个供应商(SupplierID)所提供产品(Products表)的平均价格avg(UnitPrice)。
Selectsupplierid,avg(unitprice)fromproductsgroupbysupplierid
7)查询得到不同的国家(Country)有多少家供应商(Suppliers表)的信息。
Selectcountry,count(supplierid)fromsuppliersgroupbycountry
8)查询显示哪些供应商(Suppliers表)有传真(Fax)
Select*fromsupplierswherefaxisnotnull
9)查询不同产品ProductID所订购的总价Quantity*UnitPrice。
(提示:
[OrderDetails]订单详情表)
Selectproductid,quantity*unitpricefrom[orderdetails]
10)查询出生日期BirthDate在1940年至1960年之间的雇员Employees信息。
Select*fromemployeeswherebirthdatebetween‘1940’and‘1960’
11)查询单价小于50元的产品
Select*fromproductswhereunitprice<
12)查询编号为3、6、9的员工。
Select*fromemployeeswhereemployeeidin(3,6,9)
13)显示所有定单的基本信息列表。
Select*fromorders
14)查询所有客户的信息列表。
Select*fromcustomers
15)查询所有员工的名字和地址。
Selectlastname,firstname,addressfromemployees
16)查询所有产品的名称、单价。
Selectproductname,unitpricefromproducts
17)查询所有办理定单的员工号,去除重复的。
Selectdistinctemployeeidfromorders
18)按以下格式显示所有产品的名字、编号和单价。
名字
编号
单价
Selectproductnameas‘名字’,productidas‘编号’,unitpriceas‘单价’
19)查询编号为10253的定单信息。
Select*fromorderswhereorderid=‘10253’
20)查询编号为10250、10260、10270的定单的所有信息。
Select*fromorderswhereorderidin(10250,10260,10270)
利用pubs数据库完成
21)查询Titles表,返回所有版税royalty列非空的数据行;
Select*fromtitleswhereroyaltyisnotnull
22)查询Titles表,返回预付款advance列值大于7000的行数;
Select*fromtitleswhereadvance>
7000
23)查询Titles表,按照出版物类型type列进行分组,显示每一组中type值、Price的平均值;
Selecttype,avg(price)fromtitlesgroupbytype
24)查询TitleAuthor表中,按照Title_ID进行分组查询,并显示每一组中版权费(royaltyper)的最大值;
Selecttitle_id,ma