SQL是一種說明性的編程語言;對于C之類的過程語言,你編寫程序時(shí)需要指明得出結(jié)果所需的每個(gè)步驟,使用SQL這種說明性語言,只需描述想要的內(nèi)容中,無需了解存取路徑,只需提出what to do,而無需指明how to do;是一種面向集合的操作方式,只用于9個(gè)動詞。因此,標(biāo)準(zhǔn)的SQL沒有傳統(tǒng)的流程控制結(jié)構(gòu),如if-then-else、for等語句。
SQL是交互式式或嵌入式語言。在交互式SQL環(huán)境中,用戶輸入的SQL命令直接發(fā)送到數(shù)據(jù)庫管理系統(tǒng),得到結(jié)果后立即顯示。DBMS的服務(wù)器同時(shí)擁有圖形和命令行工具,用一接受用戶輸入的SQL語句或包含SQL程序(腳本)的文本文件。
在開發(fā)數(shù)據(jù)庫應(yīng)用程序時(shí),可以將SQL語句“嵌入”到編寫程序所用的宿主語言(host language)中。宿主語言通常是一種通用語言(如C++、Java)或腳本語言(如PHP或Python).如一個(gè)PHP CGI腳本可以用SQL語句來查詢MySQL數(shù)據(jù)庫,MySQL交查詢的結(jié)果返回給PHP變量,以便進(jìn)一步分析或顯示在網(wǎng)頁上。
但在DBMS、宿主語言或操作環(huán)境中,語法上略有差異。
SQL表示“結(jié)構(gòu)化查詢語言”是一種變通的誤解。它不是結(jié)構(gòu)化的,不只用于查詢,不是一種過程語言。
目前所有的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)如oracle、SQL Server、DB2、VFP都支持SQL。
查詢只是SOL語言的重要組成部分,但不是全部。
數(shù)據(jù)定義:對表、表結(jié)構(gòu)的操作,用create、drop、alter三個(gè)命令動詞;
數(shù)據(jù)操作:對表記錄的操作,用insert、delete、update三個(gè)命令動詞;
數(shù)據(jù)控制:用grant、revoke二個(gè)命令動詞;
數(shù)據(jù)查詢:只有selec一個(gè)命令動詞。
整個(gè)SQL,共9個(gè)命令動詞對表、對表中列、行的操作:
創(chuàng)建、更改和刪除表;
插入、更新和刪除行;
查詢(從n表中)選擇列,篩選行;
數(shù)據(jù)定義語句:對表或表結(jié)構(gòu)的操作 | Create | |
Alter | ||
Drop | ||
數(shù)據(jù)操作語句:對表記錄的操作 | Insert | |
Update | ||
Delete | ||
數(shù)據(jù)查詢語句 | Select | |
數(shù)據(jù)控制語句 | Grant | |
revoke |
student(學(xué)生表):
son char(5) 學(xué)號
sname char(20) 姓名
ssex tinyint(1) 性別
sage char(3) 年齡
sdept char(20) 所在系
INSERT INTO student (son,sname) VALUES('17050600156','Henrry')
SELECT sname,sage FROM student WHERE sage<>
(查詢所有年齡在20歲以下的學(xué)生姓名及其年齡)
Select的選擇項(xiàng)可以是表文件中的一個(gè)字段,也可以是一個(gè)常量,也可以是一個(gè)表達(dá)式,對于字段和表達(dá)式還可以使用下列函數(shù):avg、sum、count、min、max等。
索引是排序的列表,在這個(gè)列表中索引列(或列表)的每個(gè)不同值和包含該值的行的硬盤地址存儲在一起。DBMS無需檢索整個(gè)表來定位行,而僅需掃描索引中的地址,就可以直接訪問相應(yīng)列。索引搜索通常要比順序搜索快,但也是有代價(jià)的。其實(shí)質(zhì)也就是另建了一張反映被索引表的行的地址清單。
DELETE FROM student WHERE sname = 'Henrry'
UPDATE student SET sname = 'Penny' WHERE sname = 'Henrry'
SQL的三級模式:
外模式:視圖
模式:基本表
內(nèi)模式:存儲文件
視圖是存儲的select語句,它能返回基于一個(gè)或多個(gè)表(或稱作基礎(chǔ)表)檢索得到的數(shù)據(jù)表;
視圖的基礎(chǔ)表可以是基本表、臨時(shí)表或其他視圖,是指定的數(shù)據(jù)列或數(shù)據(jù)行的集合。
CREATE VIEW view-customes ...AS SELECT ...
創(chuàng)建視圖并不會有任何顯示,只是為了讓DBMS用一個(gè)命名的select語句存儲視圖,然后通過其檢索數(shù)據(jù)。
reference:http://www.w3school.com.cn/sql/sql_select.asp
-End-
聯(lián)系客服