當前位置:首頁 » 編程語言 » sql怎麼找學生號
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼找學生號

發布時間: 2023-02-20 22:41:04

資料庫sql語言 學生查找

--1查詢選修人數超過50人的課程的名字,以及每門課的選課總人數,並將結果按照人數的升序排序
select
Cname,count(*)
as
num
from
Course,
(
select
*
from
SC
where
Cno
in(
select
Cno
from
SC
group
by
Cno
having
Count(*)>50
)
)
tempTable
where
Course.Cno=tempTable.Cno
group
by
Course.Cno,Cname
order
by
num
asc
--2查詢每門課的成績都比這門課的其他同學高的學生的
學號

select
Table1.Sno
from
(
select
sc0.Sno,count(*)
as
Snum
from
sc
as
sc0
group
by
sc0.Sno
)
as
Table1,
(
select
STable.Sno,count(*)
as
maxNum
from
(
select
sc1
.Sno,sc1.Cno,sc1.Grade
from
sc
as
sc1,
(
select
sc2.Cno,max(sc2.Grade)
as
maxGrade
from
sc
as
sc2
group
by
sc2.Cno
)
as
maxTable
where
sc1.Cno=maxTable.Cno
and
sc1.Grade=maxTable.maxGrade
)
as
STable
group
by
STable.Sno
)
Table2
where
Table1.Sno=Table2.Sno
and
Table1.Snum=Table2.maxNum
--6查詢沒有選課的學生的學號和姓名
select
Student.Sno,Sname
from
Student
where
Student.Sno
not
in
(
select
distinct
Sc.Sno
from
SC
)

⑵ 資料庫SQL語句中 查詢選修了全部課程的學生的學號和姓名 理解

樓主別著急!
為好理解我們先從這條SQL語句所要實現的功能入手。
功能:查出選修了全部課程的學信息。那麼SQL在查詢數據的時候的遍歷每一個學生信息。判斷該學生是否滿足條件。
1
如果存在這么一條Course記錄A(暫命名為A),
則不選擇該學生。否則該學生就被查詢出來
2
那麼記錄A,是怎麼查出來的呢?A查出的條件是:不存在SC記錄B,只要不存在B,就可查出A
3
那麼B記錄是什麼?B記錄是選課信息表,根據學號和課程號可查出記錄B
如果B為空(該學生有沒有選的課程)也就是不存在,則A就有一條記錄,根據規則2可知:因為有A,所以該學生信息將不被輸出。
如果在SC中每一個課程編號和該學生編號為條件都能夠查出一條記錄B(也就是該學生選修了全部課程),所以A記錄不存在,則輸出該學生的信息。
也就是在選課表中,如果學生選了全部課程(也就是滿足SELECT
*
FROM
SC
WHERE
Sno=
Student.Sno
AND
Cno=
Course.Cno)始終存在,當然,課程編號是任意的)。那麼就輸出該學生的信息。你不要為理解這條SQL而忘記了它本身是要做什麼.
帶著SQL的目的(要實現的功能)去理解就好了。

⑶ 急,如何在sql裡面顯示score表中的最高分的學生學號和課程號

1、首先在打開的sql軟體中,在SC表中找到學了C2的學生學號。

⑷ 資料庫SQL語言 學生查找

--1查詢選修人數超過50人的課程的名字,以及每門課的選課總人數,並將結果按照人數的升序排序
select Cname,count(*) as num
from Course,
(
select *
from SC
where Cno
in(
select Cno
from SC
group by Cno
having Count(*)>50
)
) tempTable
where Course.Cno=tempTable.Cno
group by Course.Cno,Cname
order by num asc
--2查詢每門課的成績都比這門課的其他同學高的學生的學號
select Table1.Sno
from
(
select sc0.Sno,count(*) as Snum
from sc as sc0
group by sc0.Sno
) as Table1,
(
select STable.Sno,count(*) as maxNum
from
(
select sc1.Sno,sc1.Cno,sc1.Grade
from sc as sc1,
(
select sc2.Cno,max(sc2.Grade) as maxGrade
from sc as sc2
group by sc2.Cno
) as maxTable
where sc1.Cno=maxTable.Cno and sc1.Grade=maxTable.maxGrade
) as STable
group by STable.Sno
) Table2
where Table1.Sno=Table2.Sno and Table1.Snum=Table2.maxNum
--6查詢沒有選課的學生的學號和姓名
select Student.Sno,Sname
from Student
where Student.Sno not in
(
select distinct Sc.Sno
from SC
)

⑸ 求用sql語言在資料庫中查找沒有選修任何課程的學生的學號,姓名的命令

應為三張表:

學生表A 課程表B 選修表C(cid aid bid)


--沒有選修任何課程的學生的學號

select*fromAwhereaidnotin(
selectdistinctaidfromC)--為已選修的人


如有問題可以追問,我當及時回答.

希望能幫到你!

⑹ 如何用sql語言在資料庫中查找沒有選修任何課程的學生的學號,姓名的命令

假設學生表為A,學號欄位為id,姓名欄位為name;x0dx0a課程表為B,其中row_id為課程編號,stu_no為選修該門課的學生的學號x0dx0aSQL:x0dx0aSELECT A.id,A.namex0dx0aFROM Ax0dx0aWHERE A.id NOT IN (SELECT DISTINCT B.stu_no FROM B)

⑺ SQL,用SELECT查詢數據查詢全部男學生的學號和姓名

select SNO,SNAME from S where SSESX='男'
下面的你沒貼出詳細的表結構,沒人幫你了

歡迎採納我

⑻ 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.學號;

⑼ 簡答運用T-SQL語句,在資料庫student DB中查詢student表中的學生的學號、姓名

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。