關係數據庫標準語言SQL(結構化查詢語言)

一、SQL概述

結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。

結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶瞭解具體的數據存放方式,所以具有完全不同底層結構的不同數據庫系統, 可以使用相同的結構化查詢語言作爲數據輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

SQL語言的精巧:僅有9個命令動詞,後擴充至10個。

二、SQL語言的特點

1.綜合統一

集數據定義語言(DDL),數據操縱語言(DML),數據控制語言(DCL)功能於一體。
可以獨立完成數據庫生命週期中的全部活動:

  • 定義關係模式,插入數據,建立數據庫;
  • 對數據庫中的數據進行查詢和更新;
  • 數據庫重構和維護
  • 數據庫安全性、完整性控制等

用戶數據庫投入運行後,可根據需要隨時逐步修改模式,不影響數據的運行。
數據操作符統一

2.高度非過程化
  1. 非關係數據模型的數據操縱語言“面向過程”,必須指定存取路徑
  2. SQL只要提出“做什麼”,無須瞭解存取路徑。
  3. 存取路徑的選擇以及SQL的操作過程由系統自動完成。
3.面向集合的操作方式
  1. 非關係數據模型採用面向記錄的操作方式,操作對象是一條記錄
  2. SQL採用集合操作方式:
    ① 操作對象、查找結果可以是元組的集合
    ②一次插入、刪除、更新操作的對象可以是元組的集合
4.以同一種語法結構提供多種使用方式
  1. SQL是獨立的語言
    能夠獨立地用於聯機交互的使用方式
  2. SQL又是嵌入式語言
    SQL能夠嵌入到高級語言(例如C,C++,Java)程序中,供程序員設計程序時使用
5.語言簡單,易學易用

語言簡潔,易學易用。儘管SQL的功能很強,但語言十分簡潔,核心功能只用了9個動詞。SQL的語法接近英語口語,所以,用戶很容易學習和使用。

SQL語言的動詞

SQL 功 能 動 詞
數 據 查 詢 SELECT
數 據 定 義 CREATE,DROP,ALTER
數 據 操 縱 INSERT,UPDATE,DELETE

數 據 控 制 | GRANT,REVOKE

三、SQL語言基本概念

1.SQL支持關係數據庫三級模式結構

在這裏插入圖片描述

2.結構化查詢語言包含6個部分:
  1. 數據查詢語言(DQL:Data Query Language):
    其語句,也稱爲“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其它類型的SQL語句一起使用。
  2. 數據操作語言(DML:Data Manipulation Language):
    其語句包括動詞INSERT、UPDATE和DELETE。它們分別用於添加、修改和刪除。
  3. 事務控制語言(TCL):
    它的語句能確保被DML語句影響的表的所有行及時得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存點)命令、ROLLBACK(回滾)命令。
  4. 數據控制語言(DCL):
    它的語句通過GRANT或REVOKE實現權限控制,確定單個用戶和用戶組對數據庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對錶單個列的訪問
  5. 數據定義語言(DDL):
    其語句包括動詞CREATE,ALTER和DROP。在數據庫中創建新表或修改、刪除表(CREAT TABLE 或 DROP TABLE);爲表加入索引等。
  6. 指針控制語言(CCL):
    它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。

查詢和更新指令構成了 SQL 的 DML 部分:

SELECT - 從數據庫表中獲取數據
UPDATE - 更新數據庫表中的數據
DELETE - 從數據庫表中刪除數據
INSERT INTO - 向數據庫表中插入數據
SQL 的數據定義語言 (DDL) 部分使我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。

SQL 中最重要的 DDL 語句:

CREATE DATABASE - 創建新數據庫
ALTER DATABASE - 修改數據庫
CREATE TABLE - 創建新表
ALTER TABLE - 變更(改變)數據庫表
DROP TABLE - 刪除表
CREATE INDEX - 創建索引(搜索鍵)
DROP INDEX - 刪除索引

3.數據庫中常用的概念
  1. 模式:
    基本表的集合定義爲SQL模式。一個SQL模式(即"數據庫模式")由模式名和模式擁有者的用戶名或賬號來確定,幷包含模式中每一個元素(基本表、視圖、索引等)的定義。
  2. 索引
  3. 視圖

視圖與表的異同:

  1. 表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時對它進行修改,但視圖只能有創建的語句來修改。
  2. 視圖是查看數據表的一種方法,可以查詢數據表中某些字段構成的數據,只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
  3. 表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。 聯繫:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關係。

視圖可以在以下幾個方面使程序與數據獨立:

  1. 如果應用建立在數據庫表上,當數據庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
  2. 如果應用建立在數據庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使數據庫表不動。
  3. 如果應用建立在視圖上,當數據庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
  4. 如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而數據庫可以不動。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章