Ⅰ 使用標准SQL嵌套語句查詢選修課程名稱為』稅收基礎』的學員學號和姓名
select s.s#,s.sn from s
join sc on s.s#=sc.s#
join c on sc.c#=c.c#
where c.cn='稅收基礎'
Ⅱ 這個sql語句怎麼寫題目如下:
SELECT S#,SN FROM SC,S,C
WHERE SC.S#=S.S#
AND SC.C#=C.C#
AND C.CN='稅收基礎』
AND SC.G>G1
Ⅲ 哪位大蝦有經典的sql三表聯查的習題呢,我面試需要,急需沖沖電啊,比如 像學生,課程,分數,這種三表之
為管理崗位業務培訓信息,建立3個表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分別代表學號、學員姓名、所屬單位、學員年齡
C (C#,CN ) C#,CN 分別代表課程編號、課程名稱
SC ( S#,C#,G ) S#,C#,G 分別代表學號、所選修的課程編號、學習成績
要求實現如下5個處理:
1. 使用標准SQL嵌套語句查詢選修課程名稱為』稅收基礎』的學員學號和姓名
2. 使用標准SQL嵌套語句查詢選修課程編號為』C2』的學員姓名和所屬單位
3. 使用標准SQL嵌套語句查詢不選修課程編號為』C5』的學員姓名和所屬單位
4. 使用標准SQL嵌套語句查詢選修全部課程的學員姓名和所屬單位
5. 查詢選修了課程的學員人數
6. 查詢選修課程超過5門的學員學號和所屬單位
**************問題描述************:
已知關系模式:
S (SNO,SNAME) 學生關系。SNO 為學號,SNAME 為姓名
C (CNO,CNAME,CTEACHER) 課程關系。CNO 為課程號,CNAME 為課程名,CTEACHER 為任課教師
SC(SNO,CNO,SCGRADE) 選課關系。SCGRADE 為成績
要求實現如下5個處理:
1. 找出沒有選修過「李明」老師講授課程的所有學生姓名
2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績
3. 列出既學過「1」號課程,又學過「2」號課程的所有學生姓名
4. 列出「1」號課成績比「2」號同學該門課成績高的所有學生的學號
5.列出「1」號課成績比「2」號課成績高的所有學生的學號及其「1」號課和「2」號課的成績
Ⅳ Oracle 查詢題
1 select S#,SN from S where S# in ( select S# from SC where C# in (select C# from C where CN='稅收基礎'));2select SN,SD from S where S# in ( select S# from SC where C#='C2));3 select SN,SD from S where not Exists S# in(select S# from SC where C#='C5));4 select SN,SC from S where not exists S# in(select S# from SC where not existe C# in (Select C# from C));5 select count(distinct S#) from SC;6 select SN,SD from S where S# in (Select S# from SC where Count (*) >5 order by S#);7 select SN,CN,G from S,C,SC where S.S#=SC.S# and C.C#=SC.C#;
Ⅳ SQL測試題(註:最佳答案必須能在MySQL下運行)
/*
閑著沒事,瞅瞅網路上的問題,今天天晚了,先解決一個,另一個明兒個再說了!
第二道題也算已經搞定了!
環境 : mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
參考 :
exist與in 的區別
http://blog.csdn.net/change888/archive/2008/03/31/2232778.aspx
*/
/*********************************問題 1 **************************************/
drop table if exists s;
create table if not exists s (s varchar(32), sn varchar(32), sd varchar(32),
sa int);
insert into s values ('s1', '朱', '開發本部', 23);
insert into s values ('s2', '牛', '人事部', 25);
insert into s values ('s3', '楊', '財務部', 26);
insert into s values ('s4', '馬', '開發本部', 22);
insert into s values ('s5', '呂', '人事部', 27);
insert into s values ('s6', '於', '開發本部', 28);
insert into s values ('s7', '侯', '開發本部', 28);
drop table if exists c;
create table if not exists c (c varchar(32), cn varchar(32));
insert into c values ('c1', '軟體工程');
insert into c values ('c2', '計算機技術與科學');
insert into c values ('c3', '車輛工程');
drop table if exists sc;
create table if not exists sc (s varchar(32), c varchar(32));
insert into sc values ('s1', 'c1');
insert into sc values ('s1', 'c2');
insert into sc values ('s1', 'c3');
insert into sc values ('s2', 'c1');
insert into sc values ('s2', 'c3');
insert into sc values ('s3', 'c2');
insert into sc values ('s4', 'c2');
insert into sc values ('s4', 'c3');
insert into sc values ('s5', 'c1');
insert into sc values ('s6', 'c3');
/* 1. 查詢選修課程名稱為 「軟體工程」 的學員學號和姓名 */
select s.s '學號', s.sn '姓名' from s where s.s in
(select sc.s from sc where sc.c in
(select c.c from c where c.cn = '軟體工程'));
/* 2. 查詢選修課程編號為 「C2」 的學員姓名和所屬單位 */
select s.sn '姓名', s.sd '所屬單位' from s where s.s in
(select sc.s from sc where sc.c = 'C2');
/* 3. 查詢選修課程編號 不 為 「C2」 的學員姓名和所屬單位 */
select s.sn '姓名', s.sd '所屬單位' from s where
s.s not in (select sc.s from sc where sc.c = 'C2')
and
s.s in (select sc.s from sc);
/* 4. 查詢選修全部課程的學員姓名和所屬單位 */
select s.sn '姓名', s.sd '所屬單位' from s where
(select count(DISTINCT sc.c) from sc where sc.s = s.s)
=
(select count(DISTINCT c.c) from c );
/* 5. 查詢選修了課程的學員人數 */
select count(DISTINCT sc.s) '人數' from sc;
/* 6. 查詢選修課程 >= 2 門的學員學號和所屬單位 (不得不用 CASE 語句了)*/
select s.sn '姓名', s.sd '所屬單位' from s where s.s in
(select CASE WHEN count(DISTINCT sc.c) >=2 THEN sc.s END from sc group by sc.s );
/* 運行結果
------------------------------------1
+------+------+
| 學號 | 姓名 |
+------+------+
| s1 | 朱 |
| s2 | 牛 |
| s5 | 呂 |
+------+------+
------------------------------------2
+------+----------+
| 姓名 | 所屬單位 |
+------+----------+
| 朱 | 開發本部 |
| 楊 | 財務部 |
| 馬 | 開發本部 |
+------+----------+
------------------------------------3
+------+----------+
| 姓名 | 所屬單位 |
+------+----------+
| 牛 | 人事部 |
| 呂 | 人事部 |
| 於 | 開發本部 |
+------+----------+
------------------------------------4
+------+----------+
| 姓名 | 所屬單位 |
+------+----------+
| 朱 | 開發本部 |
+------+----------+
------------------------------------5
+------+
| 人數 |
+------+
| 6 |
+------+
------------------------------------6
+------+----------+
| 姓名 | 所屬單位 |
+------+----------+
| 朱 | 開發本部 |
| 牛 | 人事部 |
| 馬 | 開發本部 |
+------+----------+
*/
/*********************************問題 2 **************************************/
drop table if exists s ;
create table if not exists s ( sno varchar(32), sname varchar(32));
insert into s values ('s1', '朱');
insert into s values ('s2', '牛');
insert into s values ('s3', '楊');
insert into s values ('s4', '馬');
insert into s values ('s5', '呂');
insert into s values ('s6', '於');
insert into s values ('s7', '侯');
drop table if exists c;
create table if not exists c ( cno varchar(32), cname varchar(32),
cteacher varchar(32));
insert into c values ('c1', '數學', '張');
insert into c values ('c2', '日語', '李'); /*假設李老師同時教授日語和英語*/
insert into c values ('c3', '英語', '李');
drop table if exists sc;
create table if not exists sc (sno varchar(32), cno varchar(32),
scgrade double);
insert into sc values ('s1', 'c1', 75);
insert into sc values ('s1', 'c2', 70);
insert into sc values ('s1', 'c3', 80);
insert into sc values ('s2', 'c1', 50);
insert into sc values ('s2', 'c3', 40);
insert into sc values ('s3', 'c1', 50);
insert into sc values ('s3', 'c2', 60);
insert into sc values ('s4', 'c1', 90);
insert into sc values ('s4', 'c2', 40);
insert into sc values ('s4', 'c3', 20);
insert into sc values ('s5', 'c1', 80);
insert into sc values ('s6', 'c1', 85);
/* 1. 沒有 選 修過「李」老師講授課程的所有學生姓名 */
select s.sname '姓名' from s where s.sno not in
(select sc.sno from sc where sc.cno in
(select c.cno from c where c.cteacher = '李'));
/* 2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績 */
select s.sname '姓名', AVG(sc.scgrade) '平均成績' from s, sc
where s.sno = sc.sno
and
(select count(sc.sno) from sc where sc.sno = s.sno
and sc.scgrade < 60 ) >= 2
group by s.sno;
/* 3. 列出既學過「C1」號課程,又學過「C2」號課程的所有學生姓名 */
select s.sname '姓名' from s where s.sno in
(select t1.sno from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = 'c1' and t2.cno = 'c2');
/*或者*/
select s.sname '姓名' from s where s.sno in
(select sc.sno from sc where sc.cno = 'c1' and sc.sno in
(select t1.sno from sc t1 where t1.cno = 'c2'));
/* 4. 列出「C1」號課成績比「C2」號同學該門課成績高的所有學生的學號 */
select t1.sno '學號' from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = 'c1'
and t2.cno = 'c2' and t1.scgrade > t2.scgrade;
/* 5. 列出「C1」成績比「C2」成績高的學生的學號及其「C1」和「C2」的成績 */
select t1.sno '學號', t1.scgrade 'C1成績', t2.scgrade 'C2成績' from sc t1, sc t2
where t1.sno = t2.sno and t1.cno = 'c1'
and t2.cno = 'c2' and t1.scgrade > t2.scgrade;
/* 運行結果
------------------------------------1
+------+
| 姓名 |
+------+
| 呂 |
| 於 |
| 侯 |
+------+
------------------------------------2
+------+----------+
| 姓名 | 平均成績 |
+------+----------+
| 牛 | 45 |
| 馬 | 50 |
+------+----------+
------------------------------------3
+------+
| 姓名 |
+------+
| 朱 |
| 楊 |
| 馬 |
+------+
------------------------------------4
+------+
| 學號 |
+------+
| s1 |
| s4 |
+------+
------------------------------------5
+------+--------+--------+
| 學號 | C1成績 | C2成績 |
+------+--------+--------+
| s1 | 75 | 70 |
| s4 | 90 | 40 |
+------+--------+--------+
*/
Ⅵ 根據題目寫出SQL查詢語句
1.
SELECT S#,SN
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE CN="收基礎"))
2.
SELECT SN,SD
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE C#=2)
3.
SELECT SN,SD
FROM S
WHERE S# NOT IN
(SELECT S#
FROM SC
WHERE C#=5)
4.
SELECT SN,SD
FROM S
WHERE S# IN
(SELECT S#
FROM SC
GROUP BY S#
HAVING COUNT(*) =
(SELECT COUNT(*)
FROM C))
5.SELECT COUNT(DISTINCT S#)
FROM SC
6.
SELECT SN,SD
FROM S
WHERE S# IN
(SELECT S#
FROM SC
GROUP BY S#
HAVING COUNT(*)>5)
Ⅶ SQL面試題,哪位兄台幫我檢查一下(估計寫的都不對)
1)
SELECT S#, SN
FROM S
WHERE S# IN (SELECT SC.S# FROM SC, C WHERE SC.C# = C.C# AND C.CN = '稅收復')
2) 第二制個正確,但是效率太低
SELECT S.SN, S.SD
FROM S, C, SC
WHERE S.S# = SC.S# AND SC.C# = C.C# AND C.C# = 'C2'
3)SELECT S#, SD
FROM S WHERE S# IN (SELECT S# FROM SC GROUP BY S# HAVING COUN(C#) > 5)
Ⅷ 資料庫面試題
createdatabaseaaa;createtableusers(idintNOTNULLAUTO_INCREMENT,user_namechar(10),moneychar(10),add_timedatetimePRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;3.insertintousersvalues(2,'a1','a11',current_date),(3,'a1','a11',current_date),(4,'a1','a11',current_date),(5,'a1','a11',current_date),(6,'a1','a11',current_date),(7,'a1','a11',current_date),(8,'a1','a11',current_date),(9,'a1','a11',current_date),(10,'a1','a11',current_date),(11,'a1','a11',current_date);4.參考第二步5.參考第三步6.selecta.username,a.money,b.email,b.user_phone,b.weighfromusersa,user_infobwherea.id=b.idanda.id=XXX(你指定的);7.mysqlmp-uroot-paaa>/tmp/aaa.sql(需要輸入密碼)我用的是mysql上的寫法
Ⅸ sql 題目 幫忙!
select s#,sn from s where s# in(select c# from sc where s# in (select c# from c where cn='稅收基礎'))
Ⅹ sql語句面試題
a)selectpnameas'商品名',avg(qty)as平均銷售量froms,p,mwherem.city='上海'ands.mno=m.mnoandp.pno=s.pno,selectp.Pno,p.pname,sum(s.qty)fromsleftjoinpons.pno=p.pnoleftjoinmonp.Mno=m.Mnowherem.city='上海市'groupbyp.Pno,p.pname,p.city,p.colorb)、先刪除Sale表的外鍵PNO,再刪除gds表。c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系區別:1、視圖是已經編譯好的sql語句。而表不是2、視圖沒有實際的物理記錄。而表有。3、表是內容,視圖是窗口4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改5、表是內模式,視圖是外模式6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。