簡介
在SQL,多段查詢一般是為了一個綜合查詢而創建的,這裡多段是指多個欄位,這裡多個欄位有可能來自同一個表或者不同的表,因此在SQL中實現的方法是不同的。另外在
作業系統的基本分段存儲管理方式中也有用到分段查詢,在計算機中記憶體大小是有限的,為了提高系統效率,當一個程式執行時。記憶體中只調入一部分要運行程式和數據。當CPU需要執行的指令和數據不再記憶體時,再到外存查找,這一過程需要多段查詢。
SQL多段查詢常用語句
Join語句
有時為了得到完整的結果,我們需要從兩個或更多的表中獲取結果。我們就需要執行 join。
資料庫中的表可通過鍵將彼此聯繫起來。主鍵(Primary Key)是一個列,在這個列中的每一行的值都是唯一的。在表中,每個主鍵的值都是唯一的。這樣做的目的是在不重複每個表中的所有數據的情況下,把表間的數據交叉捆綁在一起。以下是示例代碼:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
除了我們在上面的例子中使用的 INNER JOIN(內連線),我們還可以使用其他幾種連線。
下面列出了您可以使用的 JOIN 類型,以及它們之間的差異。
JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行
UNION語句
UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。
請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
默認地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。
SELECT 語句
SELECT 語句用於從表中選取數據。
結果被存儲在一個結果表中(稱為結果集)。
SELECT 列名稱 FROM 表名稱
WHERE 子句
如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
在SQL中,多段查詢一般是基於一些基本操作和SQL中一些常見函式或自定義函式實現的。
分段存儲管理中的多段查詢
作業系統中,引入分段存儲管理方式,主要是為了滿足用戶和程式設計師的下述一系列需要:方便編程、信息共享、信息保護、動態增長、動態連結。在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。例如,有主程式段 MAIN、子程式段 X、數據段 D 及棧段 S 等。在請求分段系統中,每當發現運行進程所要訪問的段尚未調入記憶體時,便由缺段中斷機構產生一缺段中斷信號,進入 OS 後由缺段中斷處理程式將所需的段調入記憶體。缺段中斷機構與缺頁中斷機構類似,它同樣需要在一條指令的執行期間,產生和處理中斷,以及在一條指令執行期間,可能產生多次缺段中斷。但由於分段是信息的邏輯單位,因而不可能出現一條指令被分割在兩個分段中和一組信息被分割在兩個分段中的情況。多段查詢主要發生在缺段中斷處理中。為了提高查詢效率,一般在段表中設計一些和有利於查詢的欄位,如段長和段狀態,一般需要一定軟體和硬體支持。因此在進行多段查詢時只需比較其中一些欄位就可以很快查找到需要調用的段。