初級SQL開發指南

2022-12-06 18:42:02 字數 2899 閱讀 3078

select語句概要

資料庫中資料的提取(查詢)使用select 語法,主要有以下幾點作用

● 提取的資料(搜尋)

● 提取的資料進行排序(排序)

● 執行計算或彙總

select文表達方法

sql文處理select 語句順序步驟

我們將說明資料庫在處理查詢的時候,不同階段都會產生中間結果表.這些產生出來的中間結果表都是在資料庫後台執行的我們無法觀察到.我們最終看到的資料就是最後的中間結果表.

從句from從資料庫中檢索出來第乙個中間結果表開始,到select從句結束.分為以下幾步

1通過from關鍵字將要查詢的表中的所有資料讀

取到中間結果表。(包括表中所有資料行與列,行

數不變,列數不變)

2在where關鍵字後面加上要讀取資料的條件,生

成乙個新的中間結果表。

3 如果業務需要分組,可以通過group by 將檢視進

行分組,在次生成乙個新的中間結果表。

4 使用h**ing關鍵字為分組後的邏輯檢視進行條件

篩選,來生成乙個中間結果表。

5 通過select語句在最終的中間結果表中選擇列。

查詢資料時,資料庫後台中間結果表變化過程

我們將從資料庫在執行sql查詢計畫的時候,資料庫內部的變化與執行的原理來理解sql語句執行過程.(資料庫中分為2種檢視,1為物理檢視通過create view 語句建立,2為邏輯檢視,就是我們提到的中間結果表)

(人員資訊表)

例:給出所有職務為職員的使用者名稱,部門,**.

步驟一執行from 表名稱(人員資訊表),資料庫會在(人員資訊表)表中進行乙個全表掃瞄,將所有表資訊放入乙個邏輯檢視中, 邏輯檢視包括表中的全部的行於列的資料.

步驟一產生的中間結果表

步驟二通過where職務=職員的判斷條件將步驟一中產生的邏輯檢視的資料進行過濾,將滿足條件的行產成乙個新的邏輯檢視.

步驟二產生的中間結果表

步驟三通過select 名稱,部門,**語句把步驟二的邏輯檢視中,名稱,部門,**列的資料取出生成乙個新檢視.select 語句指定那些列必須出現在最終邏輯檢視中.

步驟三產生的中間結果表

步驟四將產生的邏輯檢視傳送到客戶端.完成本次sql查詢計畫.

sql編寫順序與邏輯檢視生成過程.

多表資訊查詢表達方法

當多個表進行聯合查詢的時候,會發生一張表(a)中的資料行乘以別一張表(b)中的資料行,也就是a*b=所有查詢資料.該結果產生的合併表資料被我們稱為笛卡兒積.通常笛卡兒積會產生很多重複行的資料,我們要使用連線條件也就是a表和b表中指定的連線列來過濾掉重複和多餘的笛卡兒積.

1 通過from關鍵字後的表名稱,到資料庫中將

表a和表b兩個表中所有表資料取出到兩個對應

的中間結果表中.

2 資料庫會將兩個中間結果表合成乙個中間結果表,

而生成的這個中間結果表就是我們說的笛卡兒積.它

的資料內容就是a表的中間結果*b表的中間結果.為

a*b的數學關係

3 在笛卡兒積中間結果表中通過where關鍵字選擇符

合列連線條件或者滿足條件的行,將符合條件的行再

生成乙個中間結果表.

4 在中間結果表中通過select關鍵字選擇列,生成最終

中間結果表,把它傳給客戶端.

多表合併查詢時資料庫後台中間結果表變化過程

(人員資訊表)

( 部門資訊表)

例:查詢部門簡稱為財務的人員資訊,資訊包括人員名稱,部門簡稱, 部門名稱,性別,**

步驟一執行from 人員資訊表,部門資訊表.資料庫對(人員資訊表), ( 部門資訊表)2張表進行乙個全表掃瞄.然後將2個表的資料生成乙個笛卡兒積的邏輯檢視.

執行這個(select * from人員資訊表,部門資訊表 )sql不加連線列條件我們就可以看到乙個笛卡兒積資料.

步驟一產生的中間結果表的笛卡兒積

步驟二通過連線列條件取出步驟一邏輯檢視中符合條件的行,生成乙個新的邏輯檢視. 連線列條件為 where人員資訊表.部門id=部門資訊表. 部門id

步驟二產生的中間結果表

步驟三通過判斷條件 and 部門資訊表.部門簡稱=財務取出上乙個邏輯檢視中符合條件的行.生成乙個新的邏輯檢視

步驟三產生的中間結果表

步驟四通過select 人員資訊表.人員名稱,部門資訊表.部門簡稱,人員資訊表.

部門資訊表.部門名稱, 人員資訊表.性別, 人員資訊表.

**選擇要列,生成乙個最終邏輯檢視.

步驟四最終中間結果表

步驟五將產生的邏輯檢視傳送到客戶端.完成本次sql查詢計畫.

sql編寫順序與邏輯檢視生成過程.

總結通過上面的介紹,我們知道了資料庫在執行查詢sql計畫時邏輯檢視變化過程.我們在編寫查詢計畫的時候,需要按照邏輯檢視變化過程來編寫,先寫from 再寫where最後select這個順序.在多表的時候,需要where 來指定表的接合條件來過濾笛卡兒積.

多表合併查詢時候的內連線與外連線

在上面我們使用多表查詢的時候,對笛卡兒積的處理是使用where 加列連線條件.這種方法也被稱為隱性連線.在sql標準語句中有一種from 從句的擴充套件方法可以直接完成上面的功能.

這種從句的擴充套件方法也被成為顯性內連線.關鍵字為 inner join on後邊指定連線條件。

inner join 表達方法

資料庫中有以下2張表

(人員資訊表)

( 部門資訊表)

執行以下sql文

-獲得結果-

from 可以通過內連線直接獲得到要得到的資料結果,而不產生笛卡兒積現象.

我們也可以通過上面where 列連線條件的方法得到乙個與內連線(inner join on) 相同的資料結構.可以說where 列連線條件和(inner join on)都是內連線.where是隱性連線, (inner join on)為顯性連線,大家可以根據個人習慣來選擇那種方式來進行多表連線.

WDK開發指南V1

文件編號 ecs bz wdk ma00x 上海華東電腦儲存網路 wdk開發指南 version 1.0 上海華東電腦儲存網路系統 2007年8月 文件型別 標準文件 作者禹敬軒 上海華東電腦儲存網路系統 上海淮海中路1325號愛美高大廈701 704室 200031 86 21 54658666 ...

日本出發指南

氣候1 氣候比較溫和,但是由於國土南北延伸達3000多公里,北端位於亞寒帶 最南端屬於 帶,因此一年中的每時每刻,氣候都有一些變化。2 大部分地區的雨季大約在6月中旬 7月中旬。3 準備衣物要根據季節的變化而定。日本東京冬季平均氣溫為5度 大阪為5.7度 東京夏季平均氣溫為23.3度 大阪為24.5...

01 ios開發指南 開始 介紹 設定

馬上著手開發 ios 應用程式 開發 ios 應用程式既有趣又回報豐厚,如果您是一位新手,自然想知道從 入手。本路線圖提供了 ios 應用程式開發的絕佳起點。在 mac 電腦上,您可以建立在 ipad iphone 和 ipod touch 上執行的 ios 應用程式。遵循本路線圖以了解如何取得開發...