几道 SQL 语句面试题
--S (sno,sname)学生关系,sno为学号 sname为姓名
--C(cno,cname,Cteacher)课程关系 cno为课程号,cname为课程名,cteacher 为任课教师
--SC(sno,cno,scgrade)选课关系 scgrade为成绩 ---- 没有选修过 李明 老师讲授课程的所有学生姓名 SELECT * FROM S WHERE SNO NOT IN( SELECT DISTINCT A.sno FROM SC A INNER JOIN ( SELECT * FROM C A WHERE A.Cteacher='李明') B
ON A.cno=B.cno
) ---- 列出二门以上(含两门)不及格课程学生姓名及学号
WITH TB AS
(
SELECT A.SNO FROM SC A WHERE A.scgrade<60 GROUP BY A.sno HAVING COUNT(*)>=2
) SELECT S.* FROM TB INNER JOIN S ON TB.SNO=S.SNO --- 列出学过 “1” 号课程 又学过 “2” 号课程的所有学生姓名
WITH TB AS
(
SELECT DISTINCT SC.CNO FROM SC WHERE SC.CNO IN ( SELECT CNO FROM C WHERE C.CNAME IN('1','2') ) GROUP BY SC.CNO
HAVING COUNT(*)>=2
) SELECT S.* FROM TB INNER JOIN S ON TB.SNO =S.SNO 或采用 INTERSECT 关键字
WITH TC AS
(
SELECT SNO FROM SC WHERE SC IN ( SELECT CNO FROM C WHERE C.CNAME ='1') INTERSECT SELECT SNO FROM SC WHERE SC IN ( SELECT CNO FROM C WHERE C.CNAME ='2') ) SELECT * FROM S WHERE S.SNO IN ( SELECT * FROM TC ) --- 列出 “1” 号课程 比 “2” 号课程成绩高的所有学生号 SELECT A.SNO FROM ( SELECT * FROM SC WHERE SC.SNO = (SELECT CNO FROM C WHERE C.CNAME='1')) A
LEFT JOIN
( SELECT * FROM SC WHERE SC.SNO = (SELECT CNO FROM C WHERE C.CNAME='2')) B
ON A.SNO=B.SNO AND A.scgrade>B.scgrade --- 列出 “1” 号课程成绩 比“2” 号课程成绩高所有学生学号 及其 “1” 号课程 及 “2” 号课程成绩 SELECT A.SNO ,A.scgrade,B.scgrade FROM ( SELECT * FROM SC WHERE SC.SNO = (SELECT CNO FROM C WHERE C.CNAME='1')) A
LEFT JOIN
( SELECT * FROM SC WHERE SC.SNO = (SELECT CNO FROM C WHERE C.CNAME='2')) B
ON A.SNO=B.SNO AND A.scgrade>B.scgrade
几道 SQL 语句面试题的更多相关文章
- 【转】SQL语句面试题
1.一道SQL语句面试题,关于group by表内容:2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2 ...
- sql语句 面试题
ql语句 面试题 自动编号 学号 姓名 课程编号 课程名称 分数 1 2005001 张三 0001 数学 69 2 2005002 李四 ...
- 几个SQL语句笔试题
1.表A和表B具有完全相同的结构,查出表A中有但表B中没有的数据: create table A( id int , name ), password ) ); create table B( id ...
- 根据题目完成以下50道SQL语句
已知有如下4张表: 学生表:STUDENT(S#,SNAME,SAGE,SSEX) 课程表:COURSE(C#,CNAME,T#) 成绩表:SC(S#,C#,SCORE) 教师表:TEACHER(T# ...
- SQL语句操作数据试题
1.在SQL Server中,下列关于数据完整性的说法错误的是(). (选择一项) A:实体完整性要求表中的每一行数据都反映不同的试题,不能存在相同的数据行 B:域完整性是只给定列的输入有效性 C:在 ...
- 经典的SQL语句面试题
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...
- 经典的SQL语句面试题(转)
Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题:1. ...
- 一条SQL语句面试题:求选修所有课程的学生
前几天求职面试,有一道SQL题:给出三个表:学生.课程.成绩,求选修了所有课程的学生. 一道看似很简单的问题,把我难住了,我改了又改,涂涂画画,抓耳挠腮,因为试卷没有多少空白位置了,最后只好放弃.心情 ...
- 【转】经典的SQL语句面试题
Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题: 1 ...
随机推荐
- UVa 524 Prime Ring Problem【回溯】
题意:给出n,把从1到n排成一个环,输出相邻两个数的和为素数的序列 照着紫书敲的, 大概就是这个地方需要注意下,初始化的时候a[0]=1,然后dfs(1),从第1个位置开始搜 #include< ...
- 64位SqlServer通过链接服务器与32位oracle通讯
在SQL SERVER里只安装了32位的oracle客户端的情况下,添加链接服务器然后执行查询会报如下信息: 原因:在64位的SQL Engine中已经不提供MSDAORA 的驱动了,可以使用Ora ...
- cocos2d-x 滚动文字(二)
http://blog.csdn.net/kuovane/article/details/8131789 首先送上demo,下载地址为:demo下载地址 一,怎么在文字前面空两隔?只需在xml里的文字 ...
- I.MX6 show battery states in commandLine
#/bin/sh # I.MX6 show battery states in commandLine # 声明: # 在命令行下自动显示电池状态的信息. # # -- # set battery r ...
- 让你的 Node.js 应用跑得更快的 10 个技巧(转)
Node.js 受益于它的事件驱动和异步的特征,已经很快了.但是,在现代网络中只是快是不行的.如果你打算用 Node.js 开发你的下一个Web 应用的话,那么你就应该无所不用其极,让你的应用更快,异 ...
- linux - markdown编辑器
1. linux可以用web-qq,http://web2.qq.com,[我们从未放弃成长,这句话挺感动我的.] (禽兽!你怎么在一开始就跑题!?) ————我只要“及时预览”———— 2. htt ...
- zoj 1967 Fiber Network/poj 2570
题意就是 给你 n个点 m条边 每条边有些公司支持 问 a点到b点的路径有哪些公司可以支持 这里是一条路径中要每段路上都要有该公司支持 才算合格的一个公司// floyd 加 位运算// 将每个字符当 ...
- Android自定义的webView——可实现的网页文本的复制
package com.example.customlinearlayout.view; import android.app.ProgressDialog; import android.conte ...
- 【转】visual studio 2012进行C语言开发[图文]
原文网址:http://blog.csdn.net/chengyafei0104/article/details/9826025 现在大家计算机大概都脱离XP了,so,之前蛮多可以用的编译器,可能放在 ...
- Oracle中如何判断一个字符串是否含有汉字
看到网友问,怎么查询表中某个字段数据是不是包含了全角字符啊? 这个问题涉及到几个函数:to_single_byte.length和lengthb,我之前做开发的时候研究的是如何判断一个字符串中是否包含 ...