乙個錯誤例子帶你深入理解資料庫「自聯接」查詢

2021-10-24 21:40:29 字數 889 閱讀 9419

員工表emp,表內包含①員工編號empno②員工姓名ename③員工的上級領導編號mgr

sql語句如下:

select a.empno,a.ename,b.ename as 領導

到這裡,有自聯接基礎的小夥伴應該不難理解我是在做:查詢員工的上級領導。

查詢範圍在一張表中,對一張表設定兩個不同的表別名a,b。能實現查詢一列中重名的學生,查詢多列中員工與領導的所屬關係。

栗子:查詢重名學生

已知:學生表student,表內資訊①學生姓名sname②學生編號sid

select a.,b.

from student a join student b

on a.sname=b.sname

到這裡,查詢結果集是原表的資料+重名學生的資料,切勿忘記用where進行條件篩選,完整最終查詢重名學生sql語句如下:

select a.,b.

from student a join student b

on a.sname=b.sname

where a.sid<>b.sid

詳見開

深入理解資料庫鎖

oracle中分為兩種模式的鎖,一種是排他鎖 x鎖 另一種是共享所 s鎖 鎖是實現併發的主要手段,在資料庫中應用頻繁,但很多都由資料庫自動管理,當事務提交後會自動釋放鎖.oracle為了使資料庫實現高度併發訪問,它使用了不同型別的鎖來管理併發會話對資料物件的操作.oracle的鎖按作用物件不同分為如...

深入理解資料庫併發控制原理

併發控制原理 事務之間的相互影響可能導致資料庫狀態的不一致,即使各個事務能保持狀態的正確性,而且也沒有任何故障發生。因此,不同事務中各個步驟的執行順序必須以某種方式進行規範。控制這些步驟的功能由dbms的排程器部件完成,而保證併發執行的事務能保持一致性的整個過程稱為併發控制。排程器的作用如圖1所示。...

mysql深入理解資料庫索引結構

1 資料庫檔案儲存的方式 資料庫檔案儲存都是以磁碟檔案儲存在系統中的,這也是資料庫能持久化儲存資料的原因。2 從資料庫讀取資料的原理 從資料庫讀取資料,先暫且不考慮從快取中讀取資料的情況,那就是從磁碟檔案中讀取資料的,我們知道從磁碟檔案中讀取資料是比較耗時的,資料庫的select操作的時間,取決於執...