SQL SERVER(19)連線查詢

2021-10-06 16:36:30 字數 1732 閱讀 6692

1  使用無連線規則連線兩表

所謂無連線規則連線,就是指連線兩表的select語句中不設定任何連線條件,這樣得到的連線結果是第乙個表中的每一行都會和第二個表中的所有行進行連線,即得到乙個笛卡爾積.

select * 或字段列表

from 表名1,表名2

2  使用有連線規則連線兩表

有連線規則連線,其實就是在無連線規則的基礎上,加上where子句指定連線規則的連線方法。

select *(或字段列表] 

from 表名1,表名2

where 連線規則

查詢名叫「張三」的學生的所有課程的平時成績和考試成績,並按考試成績降序排序。

select stu_info。sno, su_lnfo。snarne, score.cno,score.usually, scora.exam

from stuinfo, score

hlhere stu_info.sname='張三'

and stu_info.sno=score. sno

order by score.exam desc

3  使用多表連線查詢資料

查詢名叫「張三」的學生的所有課程的平時成績和考試成績,並按考試成績降序排序,當考試成績相同時,用平時成績降序排序。

select stu_info.sno,stu_info.snanua,course.cname,score.usually, score.exam

from stu_info,score,course

where stu_nfo.sname='張三'

and stu_info.sno=score.sno

and score.cno=course.cno

order by score.exam desc, score.usually desc

4  使用表別名簡化語句

select a.sno,a.name,c.cname. b.usually,b.exam

from stu_info as a,

score as b,

course as c

where a.sname='張三'

and a.sno=b.sno

and b.cno=c.cno

order by b.exam desc,b.usually desc

5  使用inner join連線查詢

在where子句中設定連線規則,有時會使整個條件表示式變得非常臃腫,而且不容易讓人理解。因此在ansi sql規範中建議使用inner join進行多表連線。這樣一來,where子句中就不用再放置連線規則,而只放置查詢條件就可以了。

查詢所有考過「心理學」課程的學生的學號、姓名、系別及「心理學」的平時成績和考試成績『.

selecf st.sno,st.sname,st.depart, s.usually,s.exam

from

score as s

inner jqin course as c

on s.cno=c.cno

inner join stu_info as st

on st.sno=s.sno

where c.cname='心理學'

order by s.exam desc

13 連線查詢

假設 a 表中有3條記錄,b表中有 4 條記錄 那麼,語句select from a,b 會將a,b兩張表的資料交叉拼接起來,形成 3 4 12 條記錄的結果集,此結果集叫做笛卡爾積。ora 00918 未明確定義列 改進辦法 明確列的所屬 select empno,ename,emp.deptno...

004 連線查詢

再大多數的情況下,我們都需要進行連線查詢.笛卡爾積的產生 這個就是多表查詢的的最初結果集,那麼以後我們需要作的就是從結果集中篩選出需要的結果集.篩選的方式不同,導致sql的效率不同.篩選的方式就是加入連線標準.等值連線 select 字段 from 表1 表2 where 連線條件.eg 查詢員工名...

實驗3 3 連線查詢

一 實驗目的 掌握使用連線的方法從多個表中查詢資料。理解內連線 外連線 包括左外連線 右外連線和全外連線 自身連線的概念和使用。要求學生熟練掌握在from子句和在where子句中指定連線條件的這兩種方法。二 實驗原理 在查詢語句的from子句中用以下形式實現各種連線操作 l from 表1 inne...