SQL语句实验报告Word文件下载.docx

上传人:b****4 文档编号:14312681 上传时间:2022-10-22 格式:DOCX 页数:32 大小:720.32KB
下载 相关 举报
SQL语句实验报告Word文件下载.docx_第1页
第1页 / 共32页
SQL语句实验报告Word文件下载.docx_第2页
第2页 / 共32页
SQL语句实验报告Word文件下载.docx_第3页
第3页 / 共32页
SQL语句实验报告Word文件下载.docx_第4页
第4页 / 共32页
SQL语句实验报告Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

SQL语句实验报告Word文件下载.docx

《SQL语句实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《SQL语句实验报告Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

SQL语句实验报告Word文件下载.docx

SNAMECHAR(20),

STATUSINT,

CITYCHAR(20));

CREATETABLEP

(PNOCHAR(20)PRIMARYKEY,

PNAMECHAR(20),

COLORCHAR(10),

WEIGHTINT);

CREATETABLEJ

(JNOCHAR(20)PRIMARYKEY,

JNAMECHAR(20),

CREATETABLESPJ

(SNOCHAR(20),

PNOCHAR(20),

JNOCHAR(20),

QTYINT,

PRIMARYKEY(SNO,PNO,JNO),

FOREIGNKEY(SNO)REFERENCESS(SNO),

FOREIGNKEY(PNO)REFERENCESP(PNO),

FOREIGNKEY(JNO)REFERENCESJ(JNO));

2.利用INSERT语句为四个基础表插入数据(每个表插入操作均只以两个数据插入为例,其它省略):

INSERT

INTOS

VALUES('

S1'

'

精益'

20'

天津'

);

S2'

盛锡'

10'

北京'

INTOP

P1'

螺母'

红'

12'

P2'

螺栓'

绿'

17'

INTOJ

J1'

三建'

J2'

一汽'

长春'

INTOSPJ

200'

J3'

100'

3.利用UPDATE语句更新表中统计:

UPDATEP

SETWEIGHT=WEIGHT+5

WHERECOLOR='

;

UPDATESPJ

SETQTY=QTY-10

WHERESNOIN

(SELECTSNO

FROMS

WHERECITY='

4.利用Delete语句删除p表中全部红色零件统计

DELETE

FROMSPJ

WHEREPNOIN

(SELECTPNO

FROMP

四、试验结果

1.利用INSERT语句为四个基础表插入数据:

2.利用UPDATE语句更新表中统计:

3.利用Delete语句删除p表中全部红色零件统计

五、问题与处理

1.怎样保留数据库?

 

原认为需要用一次输入一次,以后经过老师讲解知道能够分离数据库(只保留.mdf文件就行了,到用时在附加数据库),还能够备份数据库。

2.为基础表P插入数据犯错。

在定义基础表P时,为PNAME列定义了UNIQUE约束条件,但插入数据时发觉PNAME有两个相同数据,造成不能正确插入数据。

经老师提醒后,选择利用DROP语句删除SPJ表和P表,进行修改重新定义,再次插入数据时便可顺利插入。

3.用Delete语句删除p表中全部红色零件统计时,直接在P表中进行对应操作,造成出现:

“DELETE 

语句与REFERENCE 

约束"

FK__spj__pno__4F7CD00D"

冲突。

该冲突发生于数据库"

myspj"

表"

dbo.spj"

 

column 

'

pno'

语句已终止”情况。

经老师提醒后,发觉p.pno作为spj.pno外码,两张表相关系,需先在SPJ表中进行删除操作,然后才能在P表中进行删除操作,这么方可顺利完成p表中全部红色零件统计删除操作。

六、思索题

(1)在为各表设定关键字时弹出页面中相关键字和索引选项,试经过给基础表设定这两个项目并说明二者区分。

答:

关键字会受主码影响,而索引不受主码影响,能够为任何属性设索引。

索引能够加紧表查询速度,常常将用来查询一个或者多个字段设置为索引。

(2)基础表中输入数据时,注意数据与字段类型和长度以及能否为空属性是否一致,保留时如有错误分析错误原因,立刻更正并将错误汇报写在试验汇报中。

答:

在基础表中插入数据时,不为空地方不可输入空值,不然将无法继续插入。

七、试验总结

试验刚开始时,因为之前没有接触过SQLServer软件,造成有点不知所措,更不知从何下手,在老师指导和同学们帮助下,逐步学会了怎样进行试验操作。

感觉数据库还是比很好学(相对编程来说),不过建数据库时候轻易犯错,工作比较繁琐,建表时更要考虑周全并仔细检验,稍不小心,就可能造成前功尽弃,造成进行重新建表、插入数据等一系列操作。

试验二:

简单查询和连接查询

熟练掌握用SQL语句实现简单查询和多个数据表连接查询。

(一)完成下面简单查询:

①查询全部“天津”供给商明细;

②查询全部“红色”14千克以上零件。

③查询工程名称中含有“厂”字工程明细。

(二)完成下面连接查询:

①等值连接:

求s表和j表相同城市等值连接。

②自然连接:

查询全部供给明细,要求显示供给商、零件和工程名称,

并根据供给、工程、零件排序。

③笛卡尔积:

求s和p表笛卡尔积。

④左连接:

求j表和spj表左连接。

⑤右连接:

求spj表和j表右连接。

(一)简单查询

①查询全部“天津”供给商明细

SELECT*

②查询全部“红色”14千克以上零件

ANDWEIGHT>

='

14'

③查询工程名称中含有“厂”字工程明细

FROMJ

WHEREJNAMELIKE'

%厂'

(二)连接查询

①等值连接

SELECTS.*,J.*

FROMS,J

WHERES.CITY=J.CITY;

②自然连接

SELECTSNAME,JNAME,PNAME,QTY

FROMS,P,J,SPJ

WHERES.SNO=SPJ.SNOAND

P.PNO=SPJ.PNOAND

J.JNO=SPJ.JNO;

③笛卡尔积

FROMS,P;

④左连接

FROMJLEFTOUTERJOINSPJON(J.JNO=SPJ.JNO);

⑤右连接

FROMSPJRIGHTOUTERJOINJON(SPJ.JNO=J.JNO);

①查询全部“天津”供给商明细②查询全部“红色”14千克以上零件

③查询工程名中含“厂”字工程明细

(二)连接查询①等值连接

④左连接⑤右连接

1.因为试验一对表中数据有所更改,进行试验二时不得不对试验数据再

次进行更改,添加和删除。

处理:

对有影响数据进行更改,而没有影响数据不做改变。

2.对多个表进行连接时,数据有时会被打乱。

对每一个数据名称前都加上所在表前缀,方便于区分数据。

3.对于存在量词和全称量词无法正确把握,不能得出正确查询结果。

对书中数据查询进行逐句逐字了解,以正确把握存在量词和全称量词利用。

4.在做自然连接时,查询出来结果有一百多行。

处理措施:

仔细检验以后发觉,少了一个连接Select 

SPJ.PNO=P.PNO。

查看试验内容2中左连接和右连接实施结果是否一致,为何?

不一致,左连接是输出第一个表全部,二右连接是输出第二个表全部。

原因:

左连接列出左边关系中全部元组,右连接列出右边关系中全部元组。

经过此次试验,我发觉自己对书本上知识点了解还不够透彻,前面所学知识也忘了不少,做试验时几乎都是翻着书本做出来。

如求s和p表笛卡尔积时,就感觉有点陌生了,不知道从哪着手,本认为会很麻烦,问询同学后才发觉简单“SELECT*FROMS,P;

”语句就能够处理,由此可见自己对知识点了解还不够到位。

试验三:

分组查询和嵌套查询

熟练掌握用SQL语句实现多个数据表分组查询和嵌套查询。

(一)分组查询:

1、求多种颜色零件平均重量。

2、求北京供给商和天津供给商总个数。

3、求各供给商供给零件总数。

4、求各供给商供给给各工程零件总数。

5、求使用了100个以上P1零件工程名称。

6、求各工程使用各城市供给零件总数。

(二)嵌套查询:

1、in连接谓词查询:

①查询没有使用天津供给商供给红色零件工程名称。

②查询供给了1000个以上零件供给商名称。

(having)

2、比较运算符:

求重量大于全部零件平均重量零件名称。

3、Exists连接谓词:

①查询供给J1全部零件都是红色供给商名称。

②最少用了供给商S1所供给全部零件工程号JNO。

(一)分组查询

1.求多种颜色零件平均重量

SELECTCOLOR,AVG(WEIGHT)

GROUPBYCOLOR;

2.求北京供给商和天津供给商总个数

SELECTCITY,COUNT(CITY)

GROUPBYCITY

HAVINGCITY='

ORCITY='

3.求各供给商供给零件总数

SELECTSPJ.SNO,SUM(QTY)

GROUPBYSPJ.SNO;

4.求各供给商供给给各工程零件总数

SELECTSPJ.SNO,JNO,SUM(QTY)

GROUPBYSPJ.SNO,JNO;

5.求使用了100个以上P1零件工程名称

SELECTJNAME

FROMSPJ,J

WHEREJ.JNO=SPJ.JNOANDPNO='

GROUPBYJNAME,QTY

HAVINGQTY

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

当前位置:首页 > 小学教育 > 语文

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

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