天天看點

SQL科普1章3講:SQL初體驗—SQL語言概述

作者:李論乾坤
SQL科普1章3講:SQL初體驗—SQL語言概述

一、前言

大家好,上一講我們對資料庫的基本概念有了一個詳細的了解。在我們進入SQL資料庫的使用和開發之前,必須要對SQL語言有一個基礎性的了解。那麼這節課我們就重點學習下SQL語言的相關知識。

SQL科普1章3講:SQL初體驗—SQL語言概述

二、SQL概述

1、SQL 的定義及簡要描述

那麼,SQL語言到底是怎樣的一種語言呢?所謂的SQL語言其實就是“結構化查詢語言”,而就是結構化查詢語言的首字母的縮寫。

SQL語言的核心功能包括資料查詢、資料操縱、資料定義和資料控制四個部分。

SQL語言具有簡潔、友善、實用的優點,為完成其核心功能。

SQL語言隻用了6個動詞,即查詢(SELECT)、建立(CREATE)、插入(INSERT)、修改(UPDATE)、删除(DELETE)和授權(GRANT (REVOKE) )。

SQL科普1章3講:SQL初體驗—SQL語言概述

2、 SQL到底能幹些什麼?

那麼,我們會有所疑惑,SQL語言到底能幹什麼?

假如有一天,公司上司要求你根據公司已有的銷售資料生成一些統計資訊,考慮到傳統辦公軟體已不能勝任這樣的業務需求,那麼使用資料庫來完成資料的統計分析似乎成了唯一的選項。

SQL科普1章3講:SQL初體驗—SQL語言概述

對于這樣的一組銷售資料,如果我們用SQL查詢資料庫來實作,那麼隻需要寫出這樣的一組語句,就能統計出指定月份的銷售金額,那麼這就是我們的可以使用SQL語言去實作的功能。

SQL科普1章3講:SQL初體驗—SQL語言概述

二、SQL語言組成

SQL語言是具有強大查詢功能的資料庫語言。除此以外,SQL語言還可以控制資料庫管理系統為使用者提供其它的相關功能,它們分别是 資料定義語言、資料檢索語言、資料操縱語言、資料控制語言、資料共享、資料完整性。

SQL科普1章3講:SQL初體驗—SQL語言概述

1、 資料定義語言

SQL語言使用者定義,以及存儲資料項之間的關系,。資料定義語言包括了表操作、視圖操作、索引操作在内的諸多操作語句,比如常用的表建立語句就是典型的資料定義語言。

SQL科普1章3講:SQL初體驗—SQL語言概述

2、 資料檢索語言

SQL使用者或應用程式從資料庫中那麼這就要用到資料檢索語言。資料檢索語言包括了查詢語句和過濾語句在内的多種操作語言,像我們常用的條件語句、最小值函數、最大值函數、均值函數、求和函數都是屬于資料檢索語言。

SQL科普1章3講:SQL初體驗—SQL語言概述

3、資料操縱語言

SQL允許使用者或應用程式通過添加新資料、删除舊資料和修改以前存儲的資料對資料庫進行更新,那麼這就需要用到我們SQL中資料操縱語言。

像我們使用最多的查詢語句、插入語句、删除語句、修改語句就是屬于資料操縱語言。

SQL科普1章3講:SQL初體驗—SQL語言概述

4、 資料控制語言

我們可以使用SQL語言來限制使用者檢索、添加和修改資料的能力,保護存儲的資料不被未授權的使用者所通路,那麼這時我們就會用到資料控制語言。資料控制語言包括了資料控制和事務控制兩類語言,像我們用到的授權控制語句、事務控制語句都是屬于資料控制語言。

SQL科普1章3講:SQL初體驗—SQL語言概述

5、 程式化SQL語句

那麼最後我們來說一下程式化SQL語句,程式化SQL語句包括了像變量的定義、動态執行SQL語句在内的一些文法,相比較前面我們說到的語言種類,這些文法我們用到的不是很多,在這我們不做重點講解。

SQL科普1章3講:SQL初體驗—SQL語言概述

三、SQL語句的結構

1、 注意文法順序

那麼下面我們了解下SQL語句的結構,首先我們了解下SQL語句的文法順序,我們就以查詢語句為例來給大家作詳細的講解。

好,如果我們想要得到右邊的資料結果,那麼查詢語句的文法順序應該是查詢,字段清單,從,表名,條件是,年齡大于10,按年齡分組,取分組後計數大于1的,最後再輸出前4條。

由此我們可以總結出查詢語句的文法順序是:

第1步,先選擇from後面跟的表,産生虛拟表1;

第2步,當如果有Join和ON,那麼我們會再連接配接其它表,合并生成虛拟表2;

第3步,對虛拟表2進行條件過濾,符合條件的記錄會被插入到虛拟表3中;

第4步,對虛拟表3中的記錄進行分組操作,産生虛拟表4;

第5步,再對虛拟表4進行HAVING條件過濾,符合條件的記錄會被重新插入到虛拟表5中;

第6步,再用Select關鍵字選擇指定的列并插入到虛拟表6中;

第7步,如果遇到UNION,那麼會再連接配接兩個SELECT查詢語句,重複步驟1~6,并将2個虛拟表合并到虛拟表7中;

第8步,再将虛拟表7中的記錄進行排序,重新生成虛拟表8。

第9步,那麼最後再次取出指定行的記錄,傳回結果集。

那麼這就是整個查詢語句的執行順序。

SQL科普1章3講:SQL初體驗—SQL語言概述

從上面的文法順序解析中我們也可以總結出以下幾2點,

1、 SELECT 語句總是寫在最前面,但在大部分語句之後才執行。是以在SQL語句中,我們不能在WHERE、GROUP BY、 HAVING語句中使用在 SELECT 中設定的别名。

2、 無論是書寫順序,還是執行順序,UNION 都是排在 ORDER BY 前面的。SQL語句會将所有UNION 的查詢記錄合并在一起,再進行排序。

SQL科普1章3講:SQL初體驗—SQL語言概述

2、 不區分大小寫

SQL語句的關鍵字是不區分大小寫。在SQL語句的關鍵字中,無論是小寫還是大寫我們在執行的時候都是可以的。

SQL科普1章3講:SQL初體驗—SQL語言概述

3、 不同資料庫系統之間SQL文法的異同

我們說下不同資料庫系統之間SQL文法的差别問題。我們說不同的資料庫系統,比如MySql、SQL Server或者說Oracle,他們在SQL的文法上是存在着差别的。

大家不用擔心,這種差别是不大的,因為它們同屬結構化查詢語言,它們都遵循着結構化查詢語言的文法标準,是以如果你學會了MySql版本的SQL語言再來學習SQL Server版本的,那麼也是水到渠成的。

那麼考慮到使用的覆寫率問題,後續我們絕大多數時間内都會以MySql資料庫,再結合資料庫管理工具Navicat來跟大家一起學習SQL語言。

SQL科普1章3講:SQL初體驗—SQL語言概述

四、本講總結

通過本節課的學習,我們對SQL語言的基本概念有了一個較為基礎的了解。那麼下一課我們将一起學習下資料庫、表、行列鍵等概念。

好,本節課就先到這裡,謝謝大家!

SQL科普1章3講:SQL初體驗—SQL語言概述

繼續閱讀