实验二 交互式SQL.docx

上传人:b****6 文档编号:2942128 上传时间:2022-11-16 格式:DOCX 页数:13 大小:205.89KB
下载 相关 举报
实验二 交互式SQL.docx_第1页
第1页 / 共13页
实验二 交互式SQL.docx_第2页
第2页 / 共13页
实验二 交互式SQL.docx_第3页
第3页 / 共13页
实验二 交互式SQL.docx_第4页
第4页 / 共13页
实验二 交互式SQL.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验二 交互式SQL.docx

《实验二 交互式SQL.docx》由会员分享,可在线阅读,更多相关《实验二 交互式SQL.docx(13页珍藏版)》请在冰豆网上搜索。

实验二 交互式SQL.docx

实验二交互式SQL

《数据库系统概论》实验报告

题目:

实验二交互式SQL

姓名

日期

2011/4/16

实验内容与完成情况:

一、数据定义

(一)用SQL语句建立第二章习题5中的4个表,进行表结构的修改和删除练习。

1、建立基本表

(1)创建“供应商”表S

CREATETABLES(

SNOCHAR(3),

SNAMECHAR(10),

STATUSCHAR

(2),

CITYCHAR(10));

(2)创建“零件”表P

CREATETABLEP(

PNOCHAR(3),

PNAMECHAR(10),

COLORCHAR(4),

WEIGHTINT);

(3)创建工程项表J

CREATETABLEJ(

JNOCHAR(3),

JNAMECHAR(10),

CITYCHAR(10));

(4)创建工程情况表SPJ

CREATETABLESPJ(

SNOCHAR(3),

PNOCHAR(3),

JNOCHAR(3),

QTYINT);

创建的四个表如下图所示:

2、修改基本表

(1)在P表中加入属性零件长度LENGTH(INT型)

ALTERTABLEPADDLENGTHINT;

(2)将P表中的属性WEIGHT类型改为SMALLINT型

ALTERTABLEPALTERCOLUMNWEIGHTSMALLINT;

(3)删除刚才在P表中加入的零件长度LENGTH属性

ALTERTABLEPDROPCOLUMNLENGTH;

3、删除基本表

(1)在所有操作结束后删除S表

DROPTABLES;

二、数据操作

1.插入数据。

1)向S表插入下列数据

2)向P表插入下列数据

3)向J表插入下列数据

4)向SPJ表插入下列数据

完成上述操作后得到四个表如下图所示

2.用SQL完成第二章习题5中的查询。

(1)查询供应工程J1零件的供应商号码SNO

SELECTDISTINCTSNO

FROMSPJ

WHEREJNO='J1';

查询结果为:

(2)查询供应工程J1零件P1的供应商号码SNO

SELECTDISTINCTSNO

FROMSPJ

WHEREJNO='J1'ANDPNO='P1';

查询结果为:

(3)查询供应工程J1零件为红色的供应商号码SNO

SELECTSNO

FROMSPJ,P

WHEREJNO='J1'

ANDSPJ.PNO=P.PNO

ANDCOLOR='红';

查询结果为:

(4)查询没有使用天津供应商生产的红色零件的工程号JNO

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ,S,P

WHERESPJ.JNO=J.JNO

ANDSPJ.SNO=S.SNO

ANDSPJ.PNO=P.PNO

ANDS.CITY='天津'

ANDP.COLOR='红');

查询结果为:

(5)查询至少用了供应商S1所供应的全部零件的工程号JNO

SELECTDISTINCTJNO

FROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJX

WHERESNO='S1'

ANDNOTEXISTS

(SELECT*

FROMSPJSPJY

WHERESPJY.PNO=SPJX.PNOANDSPJY.JNO=SPJZ.JNO));

查询结果为:

2.用SQL完成第三章习题5中的查询。

(1)找出所有供应商的姓名和所在城市。

SELECTSNAME,CITY

FROMS;

查询结果为:

(2)找出所有零件的名称、颜色、重量。

SELECTPNAME,COLOR,WEIGHT

FROMP;

查询结果为:

(3)找出使用供应商S1所供应零件的工程号码。

SELECTJNO

FROMSPJ

WHERESNO='S1';

查询结果为:

(4)找出工程项目J2使用的各种零件的名称及其数量。

SELECTP.PNAME,SPJ.QTY

FROMP,SPJ

WHEREP.PNO=SPJ.PNO

ANDSPJ.JNO='J2';

查询结果为:

(5)找出上海厂商供应的所有零件号码。

SELECTDISTINCTPNO

FROMSPJ

WHERESNOIN

(SELECTSNO

FROMS

WHERECITY='上海');

查询结果为:

(6)找出使用上海产的零件的工程名称。

SELECTJNAME

FROMJ

WHEREJNOIN

(SELECTJNO

FROMSPJ,S

WHERESPJ.SNO=S.SNO

ANDS.CITY='上海');

查询结果为:

(7)找出没有使用天津产的零件的工程号码。

SELECTJNO

FROMJ

WHERENOTEXISTS

(SELECT*

FROMSPJ

WHERESPJ.JNO=J.JNO

ANDSNOIN

(SELECTSNO

FROMS

WHERECITY='天津'));

查询结果为:

(8)把全部红色零件的颜色改成蓝色。

UPDATEP

SETCOLOR='蓝'

WHERECOLOR='红';

select*fromP;

结果为:

(9)由S5供给J4的零件P6改为由S3供应,请作必要修改。

UPDATESPJ

SETSNO='S3'

WHERESNO='S5'

ANDJNO='J4'

ANDPNO='P6';

select*fromSPJ;

结果为:

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。

DELETE

FROMSPJ

WHERESNO='S2';

DELETE

FROMS

WHERESNO='S2';

SELECT*FROMS

SELECT*FROMSPJ;

结果为:

(11)请将(S2,J6,P4,200)插入供应情况关系。

INSERTINTOSPJVALUES('S2','J6','P4',200);

SELECT*FROMSPJ;

结果为:

出现的问题及解决方案:

1.在创建基本表时是否可以缺省主码?

答:

可以。

在定义基本表时可以定义主码也可以先不定义主码。

2.对基本表进行修改时,执行ALTERTABLEPDROPLENGTH显示失败

答:

执行上述语句后,显示不是约束条件,不能执行删除列的操作,应该在列LENGTH前加上限定条件COLUMN,即语句应为ALTERTABLEPDROPCOLUMNLENGTH。

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

当前位置:首页 > 表格模板 > 调查报告

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

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