內連線

內連線也叫連線,是最早的一種連線。還可以被稱為普通連線或者自然連線,內連線是從結果表中刪除與其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失信息。

基本介紹

  • 中文名:內連線
  • 別名:連線、自然連線
  • 對稱:外連結
  • 用處:程式語言
連線查詢分類,其他,內連線,

連線查詢分類

a.內連線
內連線的語法如下:
select fieldlist from table1 [inner] join table2 on table1.column=table2.column
b1.左連線
select courses.cno,max(coursename),count(sno)
from courses LEFT JOIN grades ON courses.cno=grades.cno
group by courses.cno
左連線特點:顯示全部左邊表中的所有項目,即使其中有些項中的數據未填寫完全。
左外連線返回那些存在於左表而右表中卻沒有的行,再加上內連線的行。
b2.右連線
與左連線類似
b3.全連線
select sno,name,major
from students FULL JOIN majors ON students.mno=majors.mno
兩邊表中的內容全部顯示
c.自身連線
select c1.cno,c1.coursename,c1.pno,c2.coursename
from courses c1,courses c2 where c1.pno=c2.cno
採用別名解決問題。
d.交叉連線
select lastname+firstname from lastname CROSS JOIN firstanme
相當於做笛卡兒積
a.用關鍵字IN,如查詢李山的同鄉:
select * from students
where native in (select native from students where name=’ 李山’)
b.使用關鍵字EXIST,比如,下面兩句是等價的:
select * from students
where sno in (select sno from grades where cno=’B2’)
select * from students where exists
(select * from grades where
grades.sno=students.sno AND cno=’B2’)
9.關於排序order
a.對於排序order,有兩種方法:asc升序和desc降序
b.對於排序order,可以按照查詢條件中的某項排列,而且這項可用數字表示,如:
select sno,count(*) ,avg(mark) from grades
group by sno
having avg(mark)>85
order by 3

其他

a.對於有空格的識別名稱,應該用"[]"括住。
b.對於某列中沒有數據的特定查詢可以用null判斷,如select sno,courseno from grades where mark IS NULL
c.注意區分在嵌套查詢中使用的any與all的區別,any相當於邏輯運算“||”而all則相當於邏輯運算“&&”
d.注意在做否定意義的查詢是小心進入陷阱:
如,沒有選修‘B2’課程的學生 :
select students.*
from students, grades
where students.sno=grades.sno
AND grades.cno <> ’B2’
上面的查詢方式是錯誤的,正確方式見下方:
select * from students
where not exists (select * from grades
where grades.sno=students.sno AND cno='B2')
關於有難度多重嵌套查詢的解決思想:
如,選修了全部課程的學生:
select *
from students
where not exists ( select *
from courses
where NOT EXISTS
(select *
from grades
where sno=students.sno
AND cno=courses.cno))
最外一重:從學生表中選,排除那些有課沒選的。用not exist。由於討論對象是課程,所以第二重查詢從course表中找,排除那些選了課的即可。

內連線

在“設定表間關聯關係”的界面中選擇“=”,即為內連線。
兩個表(或連線)中某一數據項相等的連線稱為內連線。連線的結果是形成一個新的數據表。
內連線中參與連線的表(或連線)的地位是相等的。內連線的運算順序是:
1.參與的數據表(或連線)中的每列與其它數據表(或連線)的列相匹配,形成臨時數據表;
2.將滿足數據項相等的記錄從臨時數據表中選擇出來。
軟道語錄
內連線
內連線就是兩張表都只顯示符合連線條件的行。
例如:
假設有兩個Excel報表:出貨表和產品表
出貨表:
日期 客戶 產品編碼 數量
2003-10-20 永華公司 1001 10
2003-10-21 風貌公司 1002 20
產品表:
產品編碼 產品名稱 生產廠家
1001 PC機 創成公司
1002 印表機 風華公司
內連線條件為:出貨表.產品編碼=產品表.產品編碼
內連線的結果集為:
日期 客戶 產品編號 數量 產品名稱 生產廠家
2003-10-20 永華公司 1001 10 PC機 創成公司
2003-10-21 風貌公司 1002 20 印表機 風華公司

相關詞條

熱門詞條

聯絡我們