实验内容与完成情况(记录所有的实验过程): 按照《数据库系统概论》(第五版)P79页的学生课程数据库和P70-71页中的SPJ数据库完成以下查询 1.P130 3:(3);(6) (3): SELECT A,B,S.C,S.D,E FROM S,T WHERE S.C=T.C AND S.D=T.D; (4): SELECT S.C,S.D,T.* FROM S,T; 2.查询所有供应商的姓名和所在城市。 SELECT Sname 供应商,CITY 所在城市 FROM S; 运行结果 3.查询使用上海供应的零件的工程名称。 SELECT JNAME 工程名称 FROM J WHERE JNO IN( SELECT JNO FROM SPJ WHERE SNO IN( SELECT SNO FROM S WHERE CITY='上海' ) ); 运行结果 4.查询每个工程的信息及相应的供应信息(包括列出尚未被供应零件的那些工程)。 查询结果形如下: jno jname city sno pno qty ---- -------- ---- ---- ---- ------ j1 三建 北京 s1 p1 200 j1 三建 北京 s2 p3 400 …… j4 造船厂 天津 s5 p6 500 j5 机车厂 唐山 s2 p3 400 j6 无线电厂 常州 NULL NULL NULL j7 半导体厂 南京 NULL NULL NULL SELECT J.*,SNO,PNO,QTY FROM J LEFT OUTER JOIN SPJ ON J.JNO=SPJ.JNO; 运行结果 5.查询供应工程J1蓝色零件的供应商号SNO,请用两种方法实现。 方法1: SELECT DISTINCT SNO 供应商号 FROM SPJ WHERE JNO='J1' AND PNO IN( SELECT PNO FROM P WHERE COLOR='蓝'); 方法2: SELECT DISTINCT SNO 应商号,JNO,P.COLOR FROM SPJ JOIN P ON P.PNO=SPJ.PNO AND P.COLOR = '蓝' AND SPJ.JNO = 'J1'; 运行结果 6.查询先行课的学分为4的课程信息。 方法1: SELECT Course.* FROM Course WHERE Cpno IN( SELECT Cno FROM Course WHERE Ccredit=4 ); 方法2: SELECT DISTINCT First.* FROM Course First,Course Second WHERE First.Cpno IN( SELECT Cno FROM Course WHERE Ccredit=4 ); 运行结果 7.查询课程名称与其间接先行课的名称。 SELECT First.Cname 课程名称,Third.Cname 先行课名称 FROM Course First,Course Second,Course Third WHERE First.Cpno=Second.Cno AND Second.Cpno=Third.Cno 8.查询非计算机科学系中比计算机科学系所有学生年龄都小的学生完整信息,用两种方法实现。 方法1: SELECT * FROM Student WHERE Sdept!='CS' AND Sage< ALL( SELECT Sage FROM Student WHERE Sdept='CS' ); 方法2: SELECT * FROM Student WHERE Sdept!='CS' AND Sage< ( SELECT MIN(Sage) FROM Student WHERE Sdept='CS' ); 运行结果 |
相关文章
- Power Query合并查询的各种联结种类,对比SQL中各种join连接
- MySql的join(连接)查询 (三表 left join 写法)
- 使用 SQL Server Management Studio 连接和查询 SQL Server 实例
- 使用 SQL Server Management Studio 连接和查询 SQL Server 实例-----------------------1
- SQL多表连接查询(具体实例)
- sql多表连接查询
- mybatis xml多表查询,子查询,连接查询,动态sql-TypeDao.xml
- sql server 使用链接服务器连接Oracle,openquery查询数据
- Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
- MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)