1、实验二 交互式SQL数据库系统概论实验报告题目:实验二 交互式SQL姓名日期2011/4/16实验内容与完成情况:一、数据定义(一)用SQL语句建立第二章习题5中的4个表,进行表结构的修改和删除练习。1、建立基本表(1)创建“供应商”表S CREATE TABLE S(SNO CHAR(3) ,SNAME CHAR(10) ,STATUS CHAR(2) ,CITY CHAR(10); (2)创建“零件”表PCREATE TABLE P(PNO CHAR(3),PNAME CHAR(10),COLOR CHAR(4),WEIGHT INT);(3)创建工程项表JCREATE TABLE J(J
2、NO CHAR(3),JNAME CHAR(10),CITY CHAR(10);(4)创建工程情况表SPJCREATE TABLE SPJ( SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);创建的四个表如下图所示:2、修改基本表(1)在P表中加入属性零件长度LENGTH(INT型)ALTER TABLE P ADD LENGTH INT;(2)将P表中的属性WEIGHT类型改为SMALLINT型ALTER TABLE P ALTER COLUMN WEIGHT SMALLINT;(3)删除刚才在P表中加入的零件长度LENGTH属性ALTER TA
3、BLE P DROP COLUMN LENGTH;3、删除基本表(1)在所有操作结束后删除S表DROP TABLE S;二、数据操作1. 插入数据。1)向S 表插入下列数据2)向P 表插入下列数据3)向J 表插入下列数据4)向SPJ 表插入下列数据完成上述操作后得到四个表如下图所示2. 用SQL完成第二章习题5中的查询。(1)查询供应工程J1零件的供应商号码SNOSELECT DISTINCT SNOFROM SPJWHERE JNO=J1;查询结果为: (2)查询供应工程J1零件P1的供应商号码SNOSELECT DISTINCT SNOFROM SPJ WHERE JNO=J1 AND P
4、NO=P1;查询结果为: (3)查询供应工程J1零件为红色的供应商号码SNOSELECT SNOFROM SPJ, PWHERE JNO = J1AND SPJ.PNO = P.PNOAND COLOR = 红;查询结果为: (4)查询没有使用天津供应商生产的红色零件的工程号JNOSELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJ, S, PWHERE SPJ.JNO = J.JNOAND SPJ.SNO = S.SNOAND SPJ.PNO = P.PNOAND S.CITY = 天津AND P.COLOR = 红);查询结果为: (5)查询至
5、少用了供应商S1所供应的全部零件的工程号JNOSELECT DISTINCT JNOFROM SPJ SPJZWHERE NOT EXISTS(SELECT *FROM SPJ SPJXWHERE SNO = S1AND NOT EXISTS(SELECT *FROM SPJ SPJYWHERE SPJY.PNO = SPJX.PNO AND SPJY.JNO = SPJZ.JNO);查询结果为: 2用SQL完成第三章习题5中的查询。(1)找出所有供应商的姓名和所在城市。SELECT SNAME, CITYFROM S;查询结果为: (2)找出所有零件的名称、颜色、重量。SELECT PNAM
6、E, COLOR, WEIGHTFROM P;查询结果为:(3)找出使用供应商S1所供应零件的工程号码。SELECT JNOFROM SPJWHERE SNO=S1;查询结果为:(4)找出工程项目J2使用的各种零件的名称及其数量。SELECT P.PNAME, SPJ.QTYFROM P, SPJWHERE P.PNO = SPJ.PNOAND SPJ.JNO = J2;查询结果为:(5)找出上海厂商供应的所有零件号码。SELECT DISTINCT PNOFROM SPJWHERE SNO IN(SELECT SNOFROM SWHERE CITY = 上海);查询结果为:(6)找出使用上海
7、产的零件的工程名称。SELECT JNAMEFROM JWHERE JNO IN(SELECT JNOFROM SPJ, SWHERE SPJ.SNO = S.SNOAND S.CITY = 上海);查询结果为: (7)找出没有使用天津产的零件的工程号码。SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.JNO = J.JNOAND SNO IN(SELECT SNOFROM SWHERE CITY = 天津);查询结果为:(8)把全部红色零件的颜色改成蓝色。UPDATE PSET COLOR = 蓝WHERE COLOR =
8、 红;select * from P;结果为:(9)由S5供给J4的零件P6改为由S3供应,请作必要修改。UPDATE SPJSET SNO = S3WHERE SNO =S5AND JNO =J4AND PNO =P6;select * from SPJ;结果为:(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。DELETEFROM SPJWHERE SNO =S2;DELETEFROM SWHERE SNO = S2;SELECT * FROM SSELECT * FROM SPJ;结果为:(11)请将(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES(S2,J6,P4,200);SELECT * FROM SPJ;结果为:出现的问题及解决方案:1.在创建基本表时是否可以缺省主码?答:可以。在定义基本表时可以定义主码也可以先不定义主码。2.对基本表进行修改时,执行ALTER TABLE P DROP LENGTH显示失败答:执行上述语句后,显示不是约束条件,不能执行删除列的操作,应该在列LENGTH前加上限定条件COLUMN,即语句应为ALTER TABLE P DROP COLUMN LENGTH。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1