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