SQL 語言是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制4 個方面,是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。
4.1.1 SQL 概述 SQL 語言是1974 年由Boyce 和Chamberlin 提出的。1975 年至1979 年,IBM 公司San Jose Research Laboratory 研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng)原形系統(tǒng)System R 實現(xiàn)了這種語言。由于它功能豐富,語言簡潔,使用方法靈活,倍受用戶和計算機業(yè)界的青睞,被眾多的計算機公司和軟件公司采用。經(jīng)過多年的發(fā)展,SQL 語言已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。
4.1.2 SQL 語言的組成 SQL 語言主要由以下幾部分組成: ·數(shù)據(jù)定義語言(DDL,Data Definition Language); ·數(shù)據(jù)操縱語言(DML,Data Manipulation Language); ·數(shù)據(jù)控制語言(DCL,Data Control Language); ·其它語言要素(Additional Language Elements)。 SQL 語句數(shù)目、種類較多、其主體大約由40 條語句組成,如表4-1 所示。
 
4.1.3 SQL 語句的結(jié)構(gòu) 所有的SQL 語句均有自己的格式,如圖4-1 所示每條SQL 語句均由一個謂詞(Verb)開始,該謂詞描述這條語句要產(chǎn)生的動作,如圖4-1 中的SELECT 關(guān)鍵字。謂詞后緊接著一個或多個子句(Clause)子句中給出了被謂詞作用的數(shù)據(jù)或提供謂詞動作的詳細信息。每一條子句由一個關(guān)鍵字開始,如圖4-1 中的WHERE。

4.1.4 常用的SQL 語句 在使用數(shù)據(jù)庫時用得最多的是數(shù)據(jù)操縱語言(Data Manipulation Language)。 DML包含了最常用的核心SQL 語句,即SELECT 、INSERT 、UPDATE 、DELETE。 下面對以后章節(jié)中經(jīng)常用到的SELECT 語句作簡單介紹(有關(guān)這些語句的具體語法請參見“數(shù)據(jù)查詢:和“數(shù)據(jù)庫更新”章節(jié)) 簡單的SELECT 語句的語法如下: SELECT [ALL|DISTINCT] <目標(biāo)表達式>[,<目標(biāo)表達式>]... FROM <表或視圖名>[, <表或視圖名>]... [WHERE <條件表達式>] [GROUP BY <列名1> [HAVING <條件表達式>]] [ORDER BY <列名2> [ASC | DESC] ] 整個SELECT 語句的含義是:根據(jù)WHERE 子句的條件表達式,從FROM 子句指定的基本表或視圖中找出滿足條件的元素組,再按SELECT 子句中的目標(biāo)列表達式選出元素組中的屬性值形成結(jié)果表。如果有GROUP 子句,則將結(jié)果按<列名1>的值進行分組,該屬性列值相等的元素組為一個組,每個組產(chǎn)生結(jié)果表中的一條記錄。如果GROUP 子句帶有HAVING 短語,則只有滿足指定條件的組才予以輸出。如果有ORDER 子句,則結(jié)果表還要按<列2>的值升序或降序排序。下面對SELECT 語句的常用形式舉例說明。
例4-1:查詢所有員工的員工號和工資 use pangu select emp_id,e_wage from employee
運行結(jié)果如下: emp_id e_wage -------- --------------------- 10010001 8000.0000 ......(因數(shù)據(jù)太多故省略之)
例4-2:查詢表的全部數(shù)據(jù) use pangu select * from employee
運行結(jié)果如下 emp_id e_name birthday job_level dept_id hire_date e_wage -------- -------------------- --------------------------- --------- ------- --------------------------- 10010001 張三 1968-02-14 00:00:00.000 1 1001 1996-08-02 00:00:00.000 8000.0000 ......
例4-3:查詢工作級別為"2"的員工姓名,查詢結(jié)果按部門分組 use pangu select e_name, dept_id from employee where job_level = '2' group by dept_id e_name
運行結(jié)果如下: e_name dept_id -------------------- ------- 李四 1001 ......
以上是對SQL 語言的簡單介紹,對沒有接觸過SQL 語言的讀者,看了這一節(jié)就算入門了.我們在后面的章節(jié)中會用到更多類型的SQL 語句,Step By Step,您會成為SQL 高手。
|