大数据库原理与应用实验报告材料.docx
《大数据库原理与应用实验报告材料.docx》由会员分享,可在线阅读,更多相关《大数据库原理与应用实验报告材料.docx(31页珍藏版)》请在冰豆网上搜索。
大数据库原理与应用实验报告材料
数据库原理与应用实验报告
实验报告
1.实验目的
熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2.实验内容
✧在SSMS环境中使用SQL语言创建数据库
✧使用CREATE语句创建基本表。
✧更改基本表的定义:
增加列,删除列,修改列的数据类型。
✧创建表的升、降序索引。
✧删除基本表的约束、基本表的索引或基本表。
3.实验步骤(按自己来)
1)在SSMS环境中使用SQL语言创建数据库:
姓名全拼_Mis
2)使用SQL语句创建关系数据库基本表:
供应商表:
姓名全拼_S(拼音缩写_Sno,拼音缩写_Sname,拼音缩写_Status,拼音缩写_City)
零件表:
姓名全拼_P(拼音缩写_Pno,拼音缩写_Pname,拼音缩写_Color,拼音缩写_Weight)
工程项目表:
姓名全拼_J(拼音缩写_Jno,拼音缩写_Jname,拼音缩写_City)
零件供应情况表:
姓名全拼_SPJ(拼音缩写_Sno,拼音缩写_Pno,拼音缩写_Jno,拼音缩写_QTY)
其中:
拼音缩写_Sno、拼音缩写_Pno、拼音缩写_Jno、(拼音缩写_Sno,拼音缩写_Pno,拼音缩写_Jno)分别是表xuning_S、表xuning_P、表xuninig_J、表xuning_SPJ的主键,具有唯一性约束。
3)找出供应工程J1的供应商号
4)找出供应工程J1零件P1的供应商号
5)找出供应工程J1红色零件的供应商号
6)找出没有使用杭州供应商生产的绿色零件的工程号
7)找出和供应商S1在同一城市的供应商所提供的所有零件
8)找出供应红色的P1零件且其供应量>200的供应商号
9)找出所有供应商的姓名和所在城市
10)找出零件的名称、颜色、重量
11)找出使用供应商S2所供应零件的工程号
12)找出工程项目J3实用的各种零件的名称及数量
13)找出杭州厂商供应的所有零件号码
14)找出使用杭州产的零件的工程号
15)找出没有天津产的零件的工程号
16)把全部红色零件的颜色改为蓝色
17)由供应商S4供给J3零件P5改为由S3供应,请做必要的修改
18)从供应商表关系中删除S3的记录,并从供应情况关系中删除相应的记录
19)请将(S2,J6,P4,300)插入到供应情况关系中
20)为‘一键’工程项目建立一个供应情况的视图,包括供应商号,零件代码,供应商名称,供应数量
A)找出‘一键’使用的各零件代码及数量
B)找出供应商S2的供应情况
C)找出供应零件P2且供应数量大于100的供应商名
21)把对表xuning_S的插入权限授予用户zhangyong,并允许他再将此权利授予他人
22)把查询表xuning_SPJ和修改QTY的权限授予liming
4.实验结果(只要粘贴图片,查询分析器,写的语句和结果,四张表的语句粘一个图就可以了,剩下三张表的语句粘就可以了)
1)在SSMS环境中使用SQL语言创建数据库jiangxue_Mis
语句:
CREATEDATABASEjiangxue_Mis
ON
(
NAME=jiangxue_data,
FILENAME='c:
\jiangxue\jiangxue-mis-data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5
)
LOGON
(
NAME='jiangxue_Log',
FILENAME='c:
\jiangxue\jiangxue_mis_log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB
)
2)用SQL语言创建供应商表
1.创造jiangxue_S
createtablejiangxue_S
(
Snochar(5)primarykey,
Snamechar(20)notnull,
Statusint,
Citychar(20)notnull
)
2.创造jiangxue_P
createtablejiangxue_P
(
Pnochar(5)primarykey,
Pnamechar(20)notnull,
Colorchar(20)notnull,
Weightint
)
3.创造jiangxue_J
createtablejiangxue_J
(
Jnochar(5)primarykey,
Jnamechar(20)notnull,
Citychar(20)notnull,
)
4.创造jiangxue_SPJ
createtablejiangxue_SPJ
(
Snochar(5),
Pnochar(5),
Jnochar(5),
QTYint,
primarykey(Sno,Pno,Jno),
constraintS_SPJforeignkey(Sno)referencesjiangxue_S,
constraintP_SPJforeignkey(Pno)referencesjiangxue_P,
constraintJ_SPJforeignkey(Jno)referencesjiangxue_J
)
3)将数据插入各表
1.数据插入jiangxue_S表
insert
intojiangxue_S
values('S1','利群',30,'广州')
insert
intojiangxue_S
values('S2','同方',20,'杭州')
insert
intojiangxue_S
values('S3','天远',60,'北京')
insert
intojiangxue_S
values('S4','精诚',10,'上海')
insert
intojiangxue_S
values('S5','化缘',80,'重庆')
insert
intojiangxue_S
values('S6','弘治',50,'太原')
2.将数据插入jiangxue_P
insert
intojiangxue_P
values('P1','钉子','绿','34')
insert
intojiangxue_P
values('P2','螺丝','蓝','25')
insert
intojiangxue_P
values('P3','螺母','橙','12')
insert
intojiangxue_P
values('P4','螺栓','紫','27')
insert
intojiangxue_P
values('P5','螺钉','红','53')
insert
intojiangxue_P
values('P6','齿轮','绿','17')
insert
intojiangxue_P
values('P7','传送带','红','28')
3.将数据插入jiangxue_J
insert
intojiangxue_J
values('J1','一键','济南')
insert
intojiangxue_J
values('J2','三汽','广州')
insert
intojiangxue_J
values('J3','拉链厂','杭州')
insert
intojiangxue_J
values('J4','无线电厂','北京')
insert
intojiangxue_J
values('J5','机床厂','上海')
insert
intojiangxue_J
values('J6','螺钉厂','重庆')
insert
intojiangxue_J
values('J7','机械厂','天津')
4.将数据插入jiangxue_SPJ
insert
intojiangxue_SPJ
values('S1','P1','J3','340')
insert
intojiangxue_SPJ
values('S1','P1','J2','250')
insert
intojiangxue_SPJ
values('S1','P2','J5','120')
insert
intojiangxue_SPJ
values('S1','P2','J6','270')
insert
intojiangxue_SPJ
values('S1','P2','J7','530')
insert
intojiangxue_SPJ
values('S2','P2','J1','170')
insert
intojiangxue_SPJ
values('S2','P3','J2','280')
insert
intojiangxue_SPJ
values('S2','P4','J3','100')
insert
intojiangxue_SPJ
values('S2','P4','J4','120')
insert
intojiangxue_SPJ
values('S2','P5','J7','310')
insert
intojiangxue_SPJ
values('S2','P5','J5','560')
insert
intojiangxue_SPJ
values('S2','P6','J6','200')
insert
intojiangxue_SPJ
values('S3','P7','J1','300')
insert
intojiangxue_SPJ
values('S3','P1','J1','400')
insert
intojiangxue_SPJ
values('S4','P3','J2','410')
insert
intojiangxue_SPJ
values('S4','P4','J3','330')
insert
intojiangxue_SPJ
values('S4','P4','J4','650')
insert
intojiangxue_SPJ
values('S4','P5','J4','150')
insert
intojiangxue_SPJ
values('S5','P7','J5','230')
insert
intojiangxue_SPJ
values('S5','P7','J7','280')
insert
intojiangxue_SPJ
values('S6','P2','J2','350')
insert
intojiangxue_SPJ
values('S6','P2','J3','420')
insert
intojiangxue_SPJ
values('S6','P6','J1','310')
题目1.4:
(1)找出供应工程J1零件的供应商号
selectdistinctSno
fromjiangxue_SPJ
whereJno='J1'
(2)找出供应工程J1零件P1的供应商号
selectdistinctSno
fromjiangxue_SPJ
whereJno='J1'andPno='P1'
(3)找出供应工程J1红色零件的供应商号
selectdistinctSno
fromjiangxue_SPJ
whereJno='J1'andPnoin
(selectPno
fromjiangxue_P
whereColor='红'
)
(4)找出没有使用杭州供应商生产的绿色零件的工程号
selectdistinctJno
fromjiangxue_SPJ
wherePnoin
(selectPno
fromjiangxue_P
whereColor='绿'
)andSnoin
(selectSno
fromjiangxue_S
whereCity<>'杭州'
)
(5)找出同供应商S1在同一城市的供应商所提供的所有零件
(6)找出供应红色的P1零件且其供应量大于200的供应商号
selectSnofromjiangxue_SPJ
whereexists
(select*fromjiangxue_P
wherePno=jiangxue_SPJ.PnoandColor='红色'andPno='P1'andQTY>200
)
题目1.5:
(1)找出所有供应商的姓名和所在城市
selectSname,City
fromjiangxue_S
(2)找出所有零件的名称、颜色和重量
selectPname,Color,Weight
fromjiangxue_P
(3)找出使用供应商S2所供应零件的的工程号
selectJnofromjiangxue_SPJ
whereSno='S2'
orderbyJnoASC
(4)找出工程项目J3使用的各种零件的名称及其数量
selectPname,sum(QTY)QTYS
fromjiangxue_SPJ,jiangxue_P
whereJno='J2'andjiangxue_P.Pno=jiangxue_SPJ.Pno
groupbyjiangxue_P.Pname
(5)找出杭州厂商供应的所有零件号码
selectdistinctPnofromjiangxue_SPJ
whereSnoin
(
selectSnofromjiangxue_S
whereCity='杭州'
)
(6)找出使用杭州产的零件的工程名称
selectdistinctJnamefromjiangxue_j
whereJnoin(
selectJnofromjiangxue_SPJ
whereSnoin
(selectSnofromjiangxue_SwhereCity=’杭州’))
(7)找出没用供应天津产的零件的工程号
SelectdistinctJnofromjiangxue_SPJ
whereSnoin
(selectSnofromjiangxue_SwhereCity<>'天津')
(8)把全部红色零件的颜色改成蓝色
修改前:
修改后:
(9)由供应商S4供给J3零件P5改为由S3供应,请做必要的修改
修改前:
修改后;
(10)从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录
(11)请将(S2,J6,P4,300)插入到供应情况关系中。
插入前:
修改后:
题目1.11:
为‘一建’工程项目建立一个供应情况的视图,包括供应商号,零件代码,供应商名称,供应数量
createviewjiangxue_yijian
asselectjiangxue_S.Sno,Pno,Sname,QTY
fromjiangxue_S,jiangxue_SPJ
wherejiangxue_S.Sno=jiangxue_SPJ.SnoandJnoin
(selectJnofromjiangxue_J
whereJname='一键')
(1)找出“一建”工程项目使用的各种零件代码及其数量
selectPno,QTY
fromjiangxue_yijian
(2)找出供应商S2的供应情况
selectQTY
fromjiangxue_yijianwhereSno='S2'
(3)找出供应零件P2且供应数量大于100的供应商号
selectSno
fromjiangxue_yijian
wherePno='P2'andQTY>100
题目1.12
(1)把对表jiangxue_S的插入权限授予用户zhangyong,并允许他再将此权利授予他人
grantinsert
onjiangxue_S
toZhangYong
withgrantoption
(2)把查询表jiangxue_SPJ和修改QTY的权限授予LiMing
grantselect,update(QTY)
onjiangxue_SPJ
toLiMing