SQL(structured query language)關係數據庫標準語言
-SQL數據庫是表的彙集,它用一個或多個SQL模型定義
-基本表是實際存儲在數據庫中的表,視圖是由若干個基本表或其他視圖導出的表(虛表)
-SQL用戶可以是應用程序,也可以是終端用戶
1. 數據庫語言
數據庫語言概述
數據庫語言的分類
2. SQL概述
SQL的3個標準:ANSI(美國國家標準機構)SQL、SQL2(SQL-92)、SQL3(SQL-99)
SQL特點
關係數據庫的三級模式
SQL的基本組成
3. 數據庫定義
(1)創建表(create table語句格式)

列級完整性約束條件有null(空)和unique(取值唯一)。如not null unique表示取值唯一,不能取空值。
(2)修改表語句格式

新增加的列一律為空
(3)刪除表(drop table)

(4)索引
-索引的作用

在數據庫中,索引是數據庫程序無需對整個表進行掃描,就可以從其中找到所需數據。
數據庫的索引是某個表中一列或者若干列值的集合和響應的指向表中物理標識這些值的數據頁的邏輯指針清單。
-聚集索引與非聚集索引
聚集索引對錶的物理數據頁中的數據按列進行排序,然後再重新存儲到磁盤上,即聚集索引與數據是混為一體的,它的葉節點中存儲的是實際的數據。
非聚集索引具有完全獨立於數據行的結構,使用非聚集索引不用將物理數據頁中的數據按列排序,非聚集索引的葉節點存儲的是組成非聚集索引的關鍵字值和行定位器。
-建立和刪除索引
建立索引語句格式

刪除索引語句格式

(5)定義、刪除、更新視圖
視圖是從一個或多個表或視圖中導出來的表,其結構和數據是建立在對錶的查詢基礎上的。視圖和正式的表一樣,但本質上是個虛擬表。
-使用視圖的優點和作用如下
•使用視圖可以集中數據、簡化和定製不同用戶對數據庫的不同數據要求
•使用視圖可以屏蔽數據的複雜性,用戶不必了解數據庫的結構,就可以方便地使用和管理數據,簡化數據權限管理和重新組織數據以便輸出到其他應用程序中。
•視圖可以使用戶只關心其感興趣的某些特定數據及其所負責的特定任務,而那些不需要的或者無用的數據則不在視圖中顯示。
•視圖大大地簡化了用戶對數據的操作。
•視圖可以讓不同的用戶以不同的方式看到不同或者相同的數據集。
•在某些情況下,由於表中數據量太大,因此在設計表時常將表進行水平或者垂直分割,但表結構的變化對應用程序會產生不良的影響。
•視圖提供了一個簡單而有效的安全機制。
-視圖的創建

創建視圖的規定:

-視圖的刪除

4. 數據操作
SQL的數據操作功能包括SELECT(查詢)、INSERT(插入)、DELETE(刪除)、UPDATE(修改)。
(1)SELECT基本結構
-語句格式

-要點

WHERE子句對應的是關係代數中的選擇謂詞。
-where子句的條件表達式中可以使用的運算符

-一個典型SQL查詢具有如下形式:

(2)簡單查詢
Select from where即可
(3)連接查詢
查詢涉及兩個以上的表,則稱為連接查詢。
(4)子查詢與聚集函數
-子查詢也稱嵌套查詢。嵌套查詢是指一個SELECCT-FROM-WHERE查詢塊可以嵌入另一個查詢塊之中。SQL中允許多重嵌套。
-聚集函數
聚集函數是以一個值的集合為輸入,返回單個值的函數。SQL提供了5個預定義的集函數。
集函數的功能

ANY和ALL謂詞的含義及等價的轉換關係

(5)分組查詢
-GROUP BY子句
Where子句後加上GROUP BY子句可以對元祖進行分組。保留字GROUP BY後面跟着一個分組屬性列表。
-HAVING子句

(6)更名運算
old-name AS new-name
(7)字符串操作
使用操作符like的模式匹配。使用兩個特殊的字符來描述模式:”%”匹配任意字符串;”_”匹配任意一個字符。模式是大小寫敏感的。
(8)集合操作
保留字UNION/INTERSECT和EXCEPT分別對應∪、∩和-
(9)視圖的查詢和刪除
-像查詢基本表那樣對視圖進行查詢
-視圖刪除
DROP VIEW 視圖名
-視圖更新
視圖更新的規則

-WITH子句
WITH子句提供了定義一個臨時視圖的方法,該定義只對隨WITH子句出現的查詢有效
(10)插入、刪除和修改語句
-插入語句基本格式

-刪除語句基本格式
DELETE FROM 基本表名
【where條件表達式】
-修改語句表達式
UPDATE 基本表名
SET 列名=值表達式(,列名=子表達式…)
【WHERE 條件表達式】
5. SQL中的授權

(1)主鍵約束PRIMARY KEY
-完整性約束條件

-完整性控制
定義功能、檢測功能、處理功能
-實體完整性(使用’PRIMARY KEY’子句)
關係中只能有一個主鍵。聲明主鍵有兩種方法:
1)將PRIMARY KEY保留字加在屬性類型之後
2)在屬性列表中引入一個新元素,在元素包含保留字PRIMARY KEY和用圓括號擴起的構成鍵的屬性或屬性組列表
(2)外鍵約束FOREIGN KEY


(3)屬性值上的約束
-NULL
-CHECK檢查子句
(4)全局約束

(5)授權與銷權

-授權語句格式

PUBLIC:接受權限的用戶可以是單個或多個具體的用戶,PUBLIC參數可將權限賦給全體用戶
WITH GRANT OPTION:若指定了此子句,那麼,獲得權限的用戶還可以將權限賦給其他用戶
-常見的操作權限

-收回權限

6. 觸發器
(1)概述

-觸發器的主要特點

-觸發器注意要點

(2)創建觸發器
CREATE TRIGGER
(3)刪除觸發器


7. 嵌入式SQL
(1)SQL與宿主語言接口
-預編譯
-區分主語言語句與SQL語句

-主語言工作單元與數據庫工作單元通信
1)SQL通信區
2)主變量
3)游標
–定義游標

–打開游標

–推進游標

–關閉游標

(2)動態SQL
SQL的動態組件允許程序構造和提交SQL查詢。與此相反,嵌入式SQL語句必須在編譯是完全確定,由預處理程序預編譯和宿主語言編譯程序編譯。
-動態SQL預備語句格式

-動態SQL執行語句格式

8. SQL-99所支持的對象關係模型
(1)嵌套關係
(2)複雜類型
-集合類型
-結構類型
-複雜類型值的創建
(3)繼承
-類型繼承
-表繼承
(4)引用類型
(5)與複雜類型有關的查詢
-路徑表達式
-以集合體為值的屬性
-嵌套與解除嵌套
(6)函數與過程
-SQL函數與過程
-外部語言程序
-過程的構造
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/250321.html