2013《数据库原理及应用》实验报告答案

实验四 连接查询、嵌套查询

一、实验目的

1、掌握SQL Server 2005数据库引擎的使用方法,加深对SQL的语句的理解; 2、使用数据库引擎查询文档用SELECT语句进行数据查询; 3、熟练掌握运用DML语言对表中的数据进行连接查询和嵌套查询 二、实验内容

利用连接查询和嵌套查询等方法实现多表查询。 三、实验步骤

1、找出工程项目J2使用的各种零件的名称及其数量

Sql语句:

SELECT PNAME,QTY FROM P,SPJ WHERE P.PNO=SPJ.PNO AND JNO=’J2’; 该查询能否用嵌套查询实现?为什么? 不能,因为查询结果涉及到两张表的信息。 2、找出没有使用天津产的零件的工程号码

Sql语句:

SELECT JNO FROM J WHERE JNO NOT IN( SELECT JNO FROM SPJ WHERE SNO IN( SELECT SNO FROM S WHERE CITY=’天津’ ) ); 或

SELECT JNO FROM J WHERE JNO NOT IN( SELECT JNO FROM SPJ,S

WHERE SPJ.SNO=S.SNO AND CITY=’天津’ );

3、找出使用上海产的零件的工程名称

Sql语句(使用连接和嵌套两种方法来实现): 连接查询

SELECT JNAME FROM S,SPJ,J

WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY=’上海’; 嵌套查询

SELECT JNAME FROM J WHERE JNO IN( SELECT JNO FROM SPJ WHERE SNO IN( SELECT SNO FROM S WHERE CITY=’上海’ ) ); 或

SELECT JNAME FROM J WHERE JNO IN( SELECT JNO FROM SPJ,S

WHERE SPJ.SNO=S.SNO AND S.CITY=’上海’ ) );

4、找出既使用S1供应商提供的零件又使用S2供应商提供的零件的工程号

Sql语句:

SELECT JNO FROM SPJ WHERE SNO=’S1’ AND JNO IN( SELECT JNO FROM SPJ WHERE SNO=’S2’ ); 或

SELECT X.JNO FROM SPJ X, SPJ Y

WHERE X.JNO=Y.JNO AND X.SNO=’S1’ AND Y.SNO=’S2’;

5、求使用S2供应商供应的P3零件数目超过丰泰盛供应商供应的P6零件数目的工程号

Sql语句:

SELECT JNO FROM SPJ X

WHERE SNO=’S2’ AND PNO=’P3’ AND QTY >( SELECT QTY FROM SPJ

WHERE JNO=X.JNO AND PNO=’P6’ AND SNO IN(

SELECT SNO FROM S WHERE SNAME=’丰泰盛’ ) ); 或

SELECT X.JNO FROM SPJ X,SPJ Y

WHERE X.JNO=Y.JNO AND X. SNO=’S2’ AND X.PNO=’P3’ AND X.QTY>Y.QTY AND Y.PNO=’P6’ AND Y.SNO IN( SELECT SNO FROM S WHERE SNAME=’丰泰盛’ );

实验五 数据更新

一、实验目的

1、掌握更新语句的基本语法和用法,加深对SQL的语句的理解; 2、了解DML语言的INSERT、UPDATE、DELETE对数据的操作,; 3、能将这些更新操作应用于实际操作中去,学会在SQL Server 2005中用DML语言对表中的数据进行插入、删除和修改。 二、实验内容

1、在查询分析器中使用INSERT、UPDATE、DELETE语句进行数据更新。 三、实验步骤

1、由S5供给J4的零件P6改为由S3供应,请做必要的修改

Sql语句:

UPDATE SPJ SET SNO=’S3’

WHERE SNO=’S5’ AND JNO=’J4’ AND PNO=’P6’;

2、向零件表中插入一个零件记录(零件代码:P7;零件名:螺钉;颜色:黑;重量:10)

Sql语句:

INSERT INTO P VALUES(‘P7’,’螺钉’,’黑’, 10);

3、从SPJ表中把S1供应某工程P1零件数量低于S1供应各工程P1零件数量平均值的供应元组全部删去。

Sql语句:

DELETE FROM SPJ WHERE SNO=’S1’ AND PNO=’P1’ AND QTY <(

SELECT AVG(QTY) FROM SPJ WHERE SNO=’S1’ AND PNO=’P1’ );

4、将P表中零件重量小于等于20的零件颜色全部改为黄色。

Sql语句:

UPDATE P SET COLOR=’黄’ WHERE WEIGHT<20;

5、求每个供应商供应给J1工程的零件总数,并把结果存入数据库中。

Sql语句:

CREATE TABLE SJ1_SUM( SNO CHAR(4), J1NUM SMALLINT );

INSERT INTO SJ1_SUM

SELECT SNO,SUM(QTY) FROM SPJ WHERE JNO=’J1’ GROUP BY SNO; 6、将S2供应商供应给J1工程的蓝色零件的零件数目增加5%

Sql语句:

UPDATE SPJ SET QTY=QTY*1.05

WHERE SNO=’S2’ AND JNO=’J1’ AND PNO IN( SELECT PNO FROM P WHERE COLOR=’蓝’ );

7、从供应商关系中删除S2的记录。

Sql语句:

DELETE FROM SPJ WHERE SNO=’S2’; DELETE FROM S WHERE SNO=’S2’;

思考:当进行数据的插入、删除和修改的时候需要注意哪些方面? 语法,是否违背完整性。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4