SQL基礎

SQL基礎

簡單介紹

SQL語言,是結構化查詢語言(Structured Query Language)的簡稱。

SQL的功能包括:數據定義語言(DDL)、數據操縱語言(DML)、數據查詢語言(DQL)、數據控制語言(DCL)。

SQL語言是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統;同時也是數據庫腳本文件的擴展名。

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

結構化查詢語言SQLSTRUCTURED QUERY LANGUAGE)是最重要的關係數據庫操作語言,並且它的影響已經超出數據庫領域,得到其他領域的重視和採用,如人工智能領域的數據檢索,第四代軟件開發工具中嵌入SQL的語言等。

 

支持標準

SQL 198610 月由美國國家標準局(ANSI)通過的數據庫語言美國標準,接着,國際標準化組織(ISO)頒佈了SQL正式國際標準。19894月,ISO提出了具有完整性特徵的SQL89標準,199211月又公佈了SQL92標準,在此標準中,把數據庫分爲三個級別:基本集標準集完全集

 

其他版本

各種不同的數據庫對SQL語言的支持與標準存在着細微的不同,這是因爲,有的產品的開發先於標準的公佈,另外,各產品開發商爲了達到特殊的性能或新的特性,需要對標準進行擴展。已有100多種遍佈在從微機到大型機上的數據庫產品SQL,其中包括DB2SQL/DSORACLEINGRESSYBASESQLSERVERDBASEⅣ、PARADOXMICROSOFTACCESS等。

SQL語言基本上獨立於數據庫本身、使用的機器、網絡、操作系統,基於SQLDBMS產品可以運行在從個人機、工作站到基於局域網、小型機和大型機的各種計算機系統上,具有良好的可移植性。可以看出標準化的工作是很有意義的。早在1987年就有些有識之士預測SQL的標準化是“一場革命”,是“關係數據庫管理系統的轉折點”。數據庫和各種產品都使用SQL作爲共同的數據存取語言和標準的接口,使不同數據庫系統之間的互操作有了共同的基礎,進而實現異構機、各種操作環境的共享與移植。

1974年,在IBM公司聖約瑟研究實驗室研製的大型關係數據庫管理系統SYSTEM R 中,使用SEQUEL語言(由BOYCE CHAMBERLIN 提出),後來在SEQUEL 的基礎上發展了SQL 語言。 SQL語言是一種交互式查詢語言,允許用戶直接查詢存儲數據,但它不是完整的程序語言,如它沒有DOFOR 類似的循環語句,但它可以嵌入到另一種語言中,也可以借用VBCJAVA等語言,通過調用級接口(CALL LEVEL INTERFACE)直接發送到數據庫管理系統。SQL基本上是域關係演算,但可以實現關係代數操作。

 

語言特點

  1. 一體化:SQL集數據定義DDL、數據操縱DML和數據控制DCL於一體,可以完成數據庫中的全部工作。
  2. 使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到CC++FORTRANCOBOLJAVA等主語言中使用。
  3. 非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機“做什麼”,而不需要告訴它“怎麼做”。
  4. 語言簡潔,語法簡單,好學好用:在ANSI標準中,只包含了94個英文單詞,核心功能只用6個動詞,語法接近英語口語。

 

數據定義語言(DDL)

數據定義語言 (Data Definition Language, DDL) SQL語言集中負責數據結構定義與數據庫對象定義的語言,由CREATEALTERDROP三個語法所組成,最早是由 Codasyl (Conference on Data Systems Languages) 數據模型開始,現在被納入 SQL 指令中作爲其中一個子集。目前大多數的DBMS都支持對數據庫對象的DDL操作,部份數據庫 ( PostgreSQL) 可把DDL放在交易指令中,也就是它可以被撤回 (Rollback)。較新版本的DBMS會加入DDL專用的觸發程序,讓數據庫管理員可以追蹤來自DDL的修改。

CREATE

CREATE是負責數據庫對象的建立,舉凡數據庫、數據表、數據庫索引、預存程序、用戶函數、觸發程序或是用戶自定型別等對象,都可以使用 CREATE 指令來建立,而爲了各式數據庫對象的不同,CREATE也有很多的參數。下述是常用建立不同數據庫對象的指令:

  1. CREATE DATABASE:建立數據庫;
  2. CREATE INDEX:建立數據表索引;
  3. CREATE PROCEDURE:建立預存程序;
  4. CREATE FUNCTION:建立用戶函數;
  5. CREATE VIEW:建立查看錶;
  6. CREATE TRIGGER:建立觸發程序。

 

ALTER

ALTER 是負責數據庫對象修改的指令,相較於 CREATE 需要定義完整的數據對象參數,ALTER 則是可依照要修改的幅度來決定使用的參數,因此使用上並不會太困難。

 

DROP

DROP則是刪除數據庫對象的指令,並且只需要指定要刪除的數據庫對象名稱即可,在 DDL 語法中算是最簡單的。

 

數據操縱語言(DML)

數據操縱語言(Data Manipulation Language, DML):用戶通過它可以實現對數據庫的基本操作。

插操作

把數據插入到數據庫中指定的位置上去,如Append是在數據庫文件的末尾添加記錄,而INSERT是在指定記錄前添加記錄。

刪操作

刪除數據庫中不必再繼續保留的一組記錄,如DELETE對數據庫中記錄作刪除標誌。PACK是將標有刪除標誌的記錄徹底清除掉。ZAP是去掉數據庫文件的所有記錄。

改操作

修改記錄或數據庫模式,或在原有數據的基礎上,產生新的關係模式和記錄,如連接Join操作和投影操作Projection

排序操作

改變物理存儲的排列方式。如SORT命令按指定關鍵字串把DBF文件中記錄排序。從物理存儲的觀點看,數據庫發生了變化,但從邏輯的觀點(或集合論觀點看),新的關係與排序前是等價的。

檢索操作

從數據庫中檢索出滿足條件的數據,它可以是一個數據項, 一個記錄或一組記錄。如BROWSE單元實現對數據的瀏覽操作。SELECT選出滿足一定條件和範圍的記錄。

 

數據控制語言(DCL)

數據控制語言(DCL)是用來設置或者更改數據庫用戶或角色權限的語句,這些語句包括GRANTDENYREVOKE等語句,在默認狀態下,只有sysadmindbcreatordb_ownerdb_securityadmin等角色的成員纔有權利執行數據控制語言。

GRANT

GRANT語句是授權語句,它可以把語句權限或者對象權限授予給其他用戶和角色。

DENY

DENY語句用於拒絕給當前數據庫內的用戶或者角色授予權限,並防止用戶或角色通過其組或角色成員繼承權限。

REVOKE

REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前數據庫內的用戶或者角色上授予或拒絕的權限刪除,但是該語句並不影響用戶或者角色從其他角色中作爲成員繼承過來的權限。

發佈了858 篇原創文章 · 獲贊 667 · 訪問量 161萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章