鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQL 概覽
SQL AND 和 OR 連接運(yùn)算符
SQL 刪除數(shù)據(jù)庫(kù)
SQL 使用序列
SQL CONCAT 函數(shù)
SQL 使用視圖
SQL SELECT 語(yǔ)句
SQL 別名
SQL MAX 函數(shù)
SQL 創(chuàng)建表
SQL NULL 值
SQL 數(shù)據(jù)類(lèi)型
SQL RAND 函數(shù)
SQL 臨時(shí)表
SQL INSERT 語(yǔ)句
SQL ALTER TABLE 命令
SQL 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)
SQL SUM 函數(shù)
SQL 子查詢(xún)
SQL UPDATE 語(yǔ)句
SQL 表達(dá)式
SQL 操作符
SQL ORDER BY 子句
SQL WHERE 子句
SQL 對(duì)結(jié)果進(jìn)行排序
SQL 注入
SQL AVG 函數(shù)
SQL 選擇數(shù)據(jù)庫(kù),USE 語(yǔ)句
SQL 克隆數(shù)據(jù)表
SQL COUNT 函數(shù)
SQL 語(yǔ)法
SQL DELETE 語(yǔ)句
SQL 約束
SQL 刪除表
SQL TOP、LIMIT 和 ROWNUM 子句
SQL 日期函數(shù)
SQL TRUNCATE TABLE 命令
SQL DISTINCT 關(guān)鍵字
SQL 處理重復(fù)數(shù)據(jù)
SQL 使用連接
SQL 索引
SQL 事務(wù)
SQL GROUP BY 子句
SQL HAVING 子句
SQL MIN 函數(shù)
SQL 概覽
SQL SQRT 函數(shù)
SQL LIKE 子句
SQL 通配符
SQL UNION 子句
SQL 數(shù)據(jù)庫(kù)
SQL 創(chuàng)建數(shù)據(jù)庫(kù)

SQL 概覽

SQL 指南給你學(xué)習(xí)結(jié)構(gòu)化查詢(xún)語(yǔ)言的歷程帶來(lái)獨(dú)特的體驗(yàn),它能夠幫助你交互地學(xué)習(xí) SQL 命令。SQL 是一種數(shù)據(jù)庫(kù)語(yǔ)言,能夠完成數(shù)據(jù)庫(kù)的創(chuàng)建、刪除,取回或者修改其中的數(shù)據(jù)等工作。

SQL 是一個(gè) ANSI(American National Standard Institute,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))標(biāo)準(zhǔn)。不過(guò),SQL 語(yǔ)言有很多不同的版本存在。

什么是 SQL?

SQL 是結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language),一種用于存儲(chǔ)、操作或者檢索存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)的計(jì)算機(jī)語(yǔ)言。

SQL 是關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)(Relation Database System)的標(biāo)準(zhǔn)語(yǔ)言。所有的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),例如 MySQL、MS Access、Oracle、Sybase、Informix、Postgres SQL 和 SQL Server,都使用 SQL 作為其標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言。

當(dāng)然,它們用的都是不同的 SQL 方言。例如:

  • 微軟的 SQL Server 使用的是 T-SQL
  • Oracle 使用的是 PL/SQL
  • 微軟的 Access 中的 SQL 叫做 JET SQL (本地格式)等等

為什么要用 SQL?

  • 允許用戶(hù)訪(fǎng)問(wèn)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)
  • 允許用戶(hù)對(duì)數(shù)據(jù)做出描述
  • 允許用于定義數(shù)據(jù)庫(kù)中的數(shù)據(jù),并對(duì)其進(jìn)行操作
  • 允許通過(guò) SQL 模塊、庫(kù)或者預(yù)編譯器的等方式,嵌入到其他語(yǔ)言中
  • 允許用戶(hù)創(chuàng)建或刪除數(shù)據(jù)庫(kù)和表
  • 允許用戶(hù)在數(shù)據(jù)庫(kù)中創(chuàng)建視圖、存儲(chǔ)過(guò)程和函數(shù)
  • 允許用戶(hù)對(duì)表、過(guò)程和視圖設(shè)進(jìn)行權(quán)限設(shè)置

史?;仨?/h2>
  • 1970 年,IBM 的埃德加·科德博士提出了一種數(shù)據(jù)庫(kù)關(guān)系模型,他因此被稱(chēng)作關(guān)系型數(shù)據(jù)庫(kù)之父。
  • 1974 年,結(jié)構(gòu)化查詢(xún)語(yǔ)言面世。
  • 1978 年,IBM 對(duì) Codd 提出的概念進(jìn)行了深入研究,并發(fā)布了一款名為 System/R 的產(chǎn)品。
  • 1986 年,IBM 開(kāi)發(fā)出了第一個(gè)關(guān)系型數(shù)據(jù)庫(kù)原型,該原型隨后被 ANSI 接納并進(jìn)行了標(biāo)準(zhǔn)化工作。Relational Software——Oracle 的前身——發(fā)布了第一款商業(yè)關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。

SQL 流程

在任何一種 RDBMS 上執(zhí)行 SQL 命令,數(shù)據(jù)庫(kù)管理系統(tǒng)都會(huì)判斷出執(zhí)行請(qǐng)求的最佳方式,并由 SQL 引擎推算出具體如何完成任務(wù)。

這一流程涉及到了各種各樣的組件,包括查詢(xún)調(diào)度器(Query Dispatcher)、優(yōu)化引擎(Optimization Engines)、經(jīng)典查詢(xún)引擎(Classic Query Engine)和 SQL 查詢(xún)引擎(SQL Query Engine)等等。經(jīng)典查詢(xún)引擎用于處理所有的非 SQL 查詢(xún),而 SQL 查詢(xún)引擎則不處理邏輯文件。

下面這張圖片簡(jiǎn)要說(shuō)明了 SQL 的架構(gòu):

http://wiki.jikexueyuan.com/project/sql/images/sql-architecture.jpg" alt="SQL Architecture" />

SQL 命令

用于與關(guān)系型數(shù)據(jù)庫(kù)交互的標(biāo)準(zhǔn) SQL 命令有 CREATE、SELECT、INSERT、UPDATE、DELETE 和 DROP,這些命令按用途分成如下幾組:

數(shù)據(jù)定義語(yǔ)言

命令 描述
CREATE 創(chuàng)建新的表、視圖或者其他數(shù)據(jù)庫(kù)中的對(duì)象
ALTER 修改現(xiàn)存數(shù)據(jù)庫(kù)對(duì)象,比如一張表
DROP 刪除表、視圖或者數(shù)據(jù)庫(kù)中的其他對(duì)象

數(shù)據(jù)操縱語(yǔ)言

命令 描述
SELECT 從一張或者多張表中檢索特定的數(shù)據(jù)
INSERT 創(chuàng)建一條新記錄
UPDATE 修改記錄
DELETE 刪除記錄

數(shù)據(jù)控制語(yǔ)言

命令 描述
GRANT 賦予用戶(hù)特權(quán)
REVOKE 收回賦予用戶(hù)的特權(quán)
上一篇:SQL UNION 子句下一篇:SQL MIN 函數(shù)