1樓:網友
---查詢出彎拿選擇這些課程的學生春棚學號。
select from scelect scinner join
-e查詢出劉老師所授課程的課程號扒鬧則。
select from course c inner jointeacher t on
where '劉老師') eon
2樓:
select distinct sno from cselectwhere cno in
select from course c,techer t where = and = 劉老師')
inner join(內連線)蘆銷 和from a,b where 是一樣的。
請教一下 select from course c,techer t where = and = 劉老師氏譁模' -這是選出所有劉老師的殲緩課程吧?
3樓:匿名使用者
select distinct cno from course,teacher,cselect where and and tname="劉察棚宴老和鉛師"敗銀。
用sql查詢同時選修了1號課和2號課的學生學號
4樓:於曉楠買甘
查詢bai
同時選修了1號和2號課的學du生學號。
涉及到兩zhi個表。學生表和dao課程表。
語句:select
fromstudent
innerjoin
sconandcno
in('1','2')
為什麼不用內where
cno=』1『
andcno=』2『
這個關係到資料容庫的優化問題,哪個執行快,就寫哪個那個語句也可以這樣寫啊where
snoinselect
snofrom
scwhere
sno=』1『
andsnoin(select
snofrom
scwhere
sno=』2『)
5樓:吳
你好抄像寫錯了吧,襲,我感覺應該是bai
select sno
from sc
where cno='1' and son in (select sno from sc where cno='2');
或者where cno='1' intersert select sno from sc where cno='2');
intersect對兩個du查詢zhi做交集。相當於daoand
6樓:envy誒
因為這樣的意思是 在一行內課號既得等於1又得等於2 並沒有這樣的。
7樓:網友
sno 指的是什麼?
baicno指什麼? 上面的sql語句du是不可能zhi實現同樣的功能的。
sno如果是指dao學生學號;版。
cno是指課程號的權。
話。where cno=』1『 and cno=』2『是指課程號是1和2 的學生資訊。
where sno=』1『 and sno in(select sno
from sc
where sno=』2『)
是指學生學號是1和2 的學生,事實上,作為主鍵的sno沒有可能同時是1和2的。
sql查詢選修了全部課程的學生姓名
8樓:狠有毅毅
第一問:兩個not exists表示雙重否定:沒有乙個選了課的學生沒有選course表裡的課程。
select sname
from student
where not exists /*沒有乙個學生滿足以下條件*/
select * from course
where not exists /*什麼條件呢?沒有選過course表裡的課*/
select * from sc
where sno = /*這裡兩個=分別指對應的關係,表示選過課並且是course裡and cno= 的課,只不過用not exists否定掉了*/
第二問:其實和not in 是乙個意思 exists只返回true 或false 這裡not exists裡的內容 其實就是指學生選過的課程,再用not exists否定了,就變成了沒有選的。
9樓:網友
分析原因如下:
第一問:兩個not exists表示雙重否定:沒有。
乙個選了課的學生沒有選course表裡的課程。
select sname from student where not exists /*沒有乙個學生滿足以下條件*/
select * from course where not exists /*什麼條件呢?沒有選過course表裡的課*/
select * from sc where sno = /*這裡兩個=分別指對應的關係,表示選。
過課並且是course裡and cno= 的課,只不過用not exists否定掉了*/
第二問:其實和not in 是乙個意思 exists只返回true 或false 這裡not exists裡的內容 其實就 是指學生選過的課程,再用not exists否定了,就變成了沒有選。
10樓:網友
exists 是類似於in 效率比in 好的多。
not exists 類似於 not in 效率一樣比not in 一樣好的多。
再來看這個sql語句,應該明白了吧。
試用sql語言完成如下查詢:檢索和李勇同系的學生姓名、選修課程名和課程成績
11樓:
摘要。select 課程號,成績from 學生 inner join 選課on 學生。學號=選課。學號where 姓名='李勇'
試用sql語言完成如下查詢:檢索和李勇同系的學生姓名、選修課程名和課程成績。
select 課程號信大渣滑悄,成績仿此from 學生 inner join 選課on 學生。學號=選課。學號where 姓名='李勇'
ok29和30可以嗎。
謝謝。30、grant update(grade), select on table c to 劉晨;
update courseset grade = c2where count=『200215121』
謝謝。好了。嗯嗯。
資料庫sql語句中 查詢選修了全部課程的學生的學號和姓名 理解
12樓:革寄藍傅辰
樓主彆著急!
為好理解我們先從這條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
fromscwhere
sno=andcno=
始終存在,當然,課程編號是任意的)。那麼就輸出該學生的資訊。你不要為理解這條sql而忘記了它本身是要做什麼。
帶著sql的目的(要實現的功能)去理解就好了。
SQL檢索,但檢索結果中有某欄位內容重複的資料只保留1條顯示
判斷一個欄位重複就只顯示一條,用distinct是不行的,可以用row number 根據這個欄位分組顯示優先順序,然後只取每個組的第一條 select from select row number over partition by 判斷重複的欄位名 as f id from 表名 t where...
查詢選修了2號課程的學生的學號,用SQL查詢同時選修了1號課和2號課的學生學號
select distinct sno from sc where cno c02 請根據具體的資料庫對sql語句作出適當的修改!用sql查詢同時選修了1號課和2號課的學生學號 查詢bai 同時選修了1號和2號課的學du生學號 涉及到兩zhi個表.學生表和dao課程表 語句 select from ...
求高手 SQL 檢索倉庫中至少有乙個職工的倉庫資訊
對於倉庫表中每個記錄,檢視如下條件,如果這個記錄能夠與 職工表中的記錄通過條件倉庫號 倉庫表 倉庫號連線,產生連線結果的話,該記錄就是符合查詢條衝世件的記錄。前面那個中的左外連線與這個查詢不是等價的如果要等價的話是這樣 select distinct a.from 倉庫表 a left join 職...