数据库原理与应用实验报告实验报告1.实验目的熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2.实验容✧在SSMS环境中使用SQL语言创建数据库✧使用CREATE语句创建基本表。
✧更改基本表的定义: 增加列,删除列,修改列的数据类型。
✧创建表的升、降序索引。
✧删除基本表的约束、基本表的索引或基本表。
3.实验步骤(按自己来)1)在SSMS环境中使用SQL语言创建数据库:全拼_Mis2)使用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的权限授予liming4.实验结果(只要粘贴图片,查询分析器,写的语句和结果,四表的语句粘一个图就可以了,剩下三表的语句粘就可以了)1)在SSMS环境中使用SQL语言创建数据库jiangxue_Mis语句:CREATE DATABASE jiangxue_MisON(NAME=jiangxue_data,FILENAME='c:\jiangxue\jiangxue-mis-data.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME='jiangxue_Log',FILENAME='c:\jiangxue\jiangxue_mis_log.ldf', SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB)2)用SQL语言创建供应商表1.创造jiangxue_Screate table jiangxue_S(Sno char(5)primary key,Sname char(20)not null,Status int,City char(20)not null)2.创造jiangxue_Pcreate table jiangxue_P(Pno char(5)primary key,Pname char(20)not null,Color char(20)not null,Weight int)3.创造jiangxue_Jcreate table jiangxue_J(Jno char(5)primary key,Jname char(20)not null,City char(20)not null,)4.创造jiangxue_SPJcreate table jiangxue_SPJ(Sno char(5),Pno char(5),Jno char(5),QTY int,primary key(Sno,Pno,Jno),constraint S_SPJ foreign key(Sno)references jiangxue_S, constraint P_SPJ foreign key(Pno)references jiangxue_P, constraint J_SPJ foreign key(Jno)references jiangxue_J )3)将数据插入各表1.数据插入jiangxue_S表insertinto jiangxue_Svalues('S1','利群',30,'') insertinto jiangxue_Svalues('S2','同方',20,'') insertinto jiangxue_Svalues('S3','天远',60,'') insertinto jiangxue_Svalues('S4','',10,'')insertinto jiangxue_Svalues('S5','化缘',80,'') insertinto jiangxue_Svalues('S6','弘治',50,'') 2.将数据插入jiangxue_P insertinto jiangxue_Pvalues('P1','钉子','绿','34') insertinto jiangxue_Pvalues('P2','螺丝','蓝','25') insertinto jiangxue_Pvalues('P3','螺母','橙','12') insertinto jiangxue_Pvalues('P4','螺栓','紫','27') insertinto jiangxue_Pvalues('P5','螺钉','红','53') insertinto jiangxue_Pvalues('P6','齿轮','绿','17') insertinto jiangxue_Pvalues('P7','传送带','红','28') 3.将数据插入jiangxue_J insertinto jiangxue_Jvalues('J1','一键','')insertinto jiangxue_Jvalues('J2','三汽','')insertinto jiangxue_Jvalues('J3','拉链厂','') insertinto jiangxue_Jvalues('J4','无线电厂','') insertinto jiangxue_Jvalues('J5','机床厂','') insertinto jiangxue_Jvalues('J6','螺钉厂','') insertinto jiangxue_Jvalues('J7','机械厂','天津') 4.将数据插入jiangxue_SPJ insertinto jiangxue_SPJvalues('S1','P1','J3','340') insertinto jiangxue_SPJ values('S1','P1','J2','250') insertinto jiangxue_SPJ values('S1','P2','J5','120') insertinto jiangxue_SPJ values('S1','P2','J6','270') insertinto jiangxue_SPJ values('S1','P2','J7','530') insertinto jiangxue_SPJ values('S2','P2','J1','170') insertinto jiangxue_SPJ values('S2','P3','J2','280') insertinto jiangxue_SPJ values('S2','P4','J3','100') insertinto jiangxue_SPJ values('S2','P4','J4','120') insertinto jiangxue_SPJ values('S2','P5','J7','310') insertinto jiangxue_SPJ values('S2','P5','J5','560') insertinto jiangxue_SPJ values('S2','P6','J6','200') insertinto jiangxue_SPJ values('S3','P7','J1','300') insertinto jiangxue_SPJ values('S3','P1','J1','400') insertinto jiangxue_SPJ values('S4','P3','J2','410') insertinto jiangxue_SPJvalues('S4','P4','J3','330')insertinto jiangxue_SPJvalues('S4','P4','J4','650')insertinto jiangxue_SPJvalues('S4','P5','J4','150')insertinto jiangxue_SPJvalues('S5','P7','J5','230')insertinto jiangxue_SPJvalues('S5','P7','J7','280')insertinto jiangxue_SPJvalues('S6','P2','J2','350')insertinto jiangxue_SPJvalues('S6','P2','J3','420')insertinto jiangxue_SPJvalues('S6','P6','J1','310')题目1.4:(1)找出供应工程J1零件的供应商号select distinct Snofrom jiangxue_SPJwhere Jno='J1'(2)找出供应工程J1零件P1的供应商号select distinct Snofrom jiangxue_SPJwhere Jno='J1'and Pno='P1'(3)找出供应工程J1红色零件的供应商号select distinct Snofrom jiangxue_SPJwhere Jno='J1'and Pno in(select Pnofrom jiangxue_Pwhere Color='红')(4)找出没有使用供应商生产的绿色零件的工程号select distinct Jnofrom jiangxue_SPJwhere Pno in(select Pnofrom jiangxue_Pwhere Color='绿')and Sno in(select Snofrom jiangxue_Swhere City<>'')(5)找出同供应商S1在同一城市的供应商所提供的所有零件(6)找出供应红色的P1零件且其供应量大于200的供应商号select Sno from jiangxue_SPJwhere exists(select * from jiangxue_Pwhere Pno=jiangxue_SPJ.Pno and Color='红色'and Pno='P1'and QTY>200 )题目1.5:(1)找出所有供应商的和所在城市select Sname,Cityfrom jiangxue_S(2)找出所有零件的名称、颜色和重量select Pname,Color,Weightfrom jiangxue_P(3)找出使用供应商S2所供应零件的的工程号select Jno from jiangxue_SPJwhere Sno='S2'order by Jno ASC(4)找出工程项目J3使用的各种零件的名称及其数量select Pname,sum(QTY) QTYSfrom jiangxue_SPJ,jiangxue_Pwhere Jno='J2' and jiangxue_P.Pno=jiangxue_SPJ.Pno group by jiangxue_P.Pname(5)找出厂商供应的所有零件select distinct Pno from jiangxue_SPJwhere Sno in(select Sno from jiangxue_Swhere City='')(6)找出使用产的零件的工程名称select distinct Jname from jiangxue_jwhere Jno in (select Jno from jiangxue_SPJwhere Sno in(select Sno from jiangxue_S where City=’’)) (7)找出没用供应天津产的零件的工程号Select distinct Jno from jiangxue_SPJwhere Sno in(select Sno from jiangxue_S where City <> '天津')(8)把全部红色零件的颜色改成蓝色修改前:修改后:(9)由供应商S4供给J3零件P5改为由S3供应,请做必要的修改修改前:修改后;(10)从供应商关系中删除S3的记录,并从供应情况关系中删除相应的记录(11)请将(S2,J6,P4,300)插入到供应情况关系中。