❶ sql查詢選修了全部課程的學生姓名
分析原因如下:
第一問:兩個NOT EXISTS表示雙重否定:沒有一個選了課的學生沒有選course表裡的課程
select sname from student where not exists /*沒有一個學生滿足以下條件*/
(select * from course where not exists /*什麼條件呢?沒有選過Course表裡的課*/
(select * from sc where sno =student.sno /*這里兩個=分別指對應的關系,表示選
過課並且是Course里and cno=course.cno) 的課,只不過用not exists否定掉了*/
第二問:其實和NOT IN 是一個意思 exists只返回true 或false 這里not exists里的內容 其實就 是指學生選過的課程,再用NOT EXISTS否定了,就變成了沒有選
❷ 用SQL查詢同時選修了1號課和2號課的學生學號
工具/材料:以Management Studio為例。
1、首先在桌面上,點擊「Management Studio」圖標。
❸ SQL資料庫中查詢選修了所有課程的學生的學號和姓名及選修門數
所有離開了數據結構(表結構)的SQL語句都是白搭!
先假設數據結構為
學生表(學號 主鍵或設有唯一索引,姓名,性別)
課程表(課程號 主鍵或設有唯一索引,課程名)
選課表(課程號,學號)-- 欄位「課程號」和「學號"設有雙欄位唯一索引
查詢出選修了所有課程的學生的學號、姓名和選修門數:
select a.學號,b.姓名,a.cnt as 選修門數 from
(select 學號,count(1) as as cnt from 選課表 group by 學號
having count(1)=(select count(1) from 課程表)) a,
學生表 b where a.學號=b.學號;
❹ 用SQL語句查詢選修了課程的學員人數
SC表裡應該有個XKLB欄位,看這門課是否選修還是必修,因為有的課程對A來說是必修的,而對B來說就是選修,
SELECT COUNT(DISTINCT SNO) FROM SC WHERE XKLB='選修';
❺ 請寫出SQL查詢統計每門課程的選修人數顯示課程編號學生人數。
SQL查詢語句:Select 課程編號,count(*) 學生人數From 課程 group by 選修人數;
PS:SQL用於統計和分組的函數是:
統計函數:count(*)。
分組函數:Group By 分組表達式。
❻ SQL查詢選修了兩門以上(包括兩門)課程的學生信息
1:select sno(學生的學號) from sc(學生選課表)
group by sno having count(*)>1
2:select s.sno,s.name from student s
where s.sno in(select sno from score sc
group by sc.cno having sum(sc.sno)>2 )
3:應為三張表;學生表A 課程表B 選修表C(cid aid bid)--沒有選修任何課程的學生的學號
❼ 如何用SQL查詢全部學生都選了人課程號和課程名
1,全部學生都選了人課程號和課程名
select b.cno,b.cname
from 學生關系 a,課程關系 b,學習關系 c where a.sno=c.sno and b.cno=c.cno
group by b.cno,b.cname having count(*)=(select count(*) from 學生關系)
2,某位學生沒有選的課程名稱
select a.sname,b.cname
from 學生關系 a,課程關系 b,學習關系 c where a.sno=c.sno and b.cno=c.cno
group by a.sname,b.cname having count(*)<(select count(*) from 課程關系)
我這是列的每個學生沒選的,要是查某位學生,加個條件就行
select a.sname,b.cname
from 學生關系 a,課程關系 b,學習關系 c where a.sno=c.sno and b.cno=c.cno
and a.sname='xxx'
group by a.sname,b.cname having count(*)<(select count(*) from 課程關系)
❽ SQL資料庫中查詢選修了所有課程的學生的學號和姓名及選修門數
所有離開了數據結構(表結構)的SQL語句都是白搭!
先假設數據結構為
學生表(學號主鍵或設有唯一索引,姓名,性別)
課程表(課程號主鍵或設有唯一索引,課程名)
選課表(課程號,學號)--欄位「課程號」和「學號"設有雙欄位唯一索引
查詢出選修了所有課程的學生的學號、姓名和選修門數:
selecta.學號,b.姓名,a.cntas選修門數from
(select學號,count(1)asascntfrom選課表groupby學號
havingcount(1)=(selectcount(1)from課程表))a,
學生表bwherea.學號=b.學號;