SQL是一種說明性的編程語言;對于C之類的過程語言,你編寫程序時需要指明得出結(jié)果所需的每個步驟,使用SQL這種說明性語言,只需描述想要的內(nèi)容中,無需了解存取路徑,只需提出what to do,而無需指明how to do;是一種面向集合的操作方式,只用于9個動詞。因此,標(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ù)器同時擁有圖形和命令行工具,用一接受用戶輸入的SQL語句或包含SQL程序(腳本)的文本文件。 在開發(fā)數(shù)據(jù)庫應(yīng)用程序時,可以將SQL語句“嵌入”到編寫程序所用的宿主語言(host language)中。宿主語言通常是一種通用語言(如C++、Java)或腳本語言(如PHP或Python).如一個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語言的重要組成部分,但不是全部。
整個SQL,共9個命令動詞對表、對表中列、行的操作:
1 增(記錄)
2 查(記錄)
(查詢所有年齡在20歲以下的學(xué)生姓名及其年齡) Select的選擇項(xiàng)可以是表文件中的一個字段,也可以是一個常量,也可以是一個表達(dá)式,對于字段和表達(dá)式還可以使用下列函數(shù):avg、sum、count、min、max等。 索引是排序的列表,在這個列表中索引列(或列表)的每個不同值和包含該值的行的硬盤地址存儲在一起。DBMS無需檢索整個表來定位行,而僅需掃描索引中的地址,就可以直接訪問相應(yīng)列。索引搜索通常要比順序搜索快,但也是有代價的。其實(shí)質(zhì)也就是另建了一張反映被索引表的行的地址清單。 3 刪(記錄)
4 改(記錄)
5 補(bǔ)充SQL的三級模式:
視圖是存儲的select語句,它能返回基于一個或多個表(或稱作基礎(chǔ)表)檢索得到的數(shù)據(jù)表; 視圖的基礎(chǔ)表可以是基本表、臨時表或其他視圖,是指定的數(shù)據(jù)列或數(shù)據(jù)行的集合。 CREATE VIEW view-customes ...AS SELECT ... 創(chuàng)建視圖并不會有任何顯示,只是為了讓DBMS用一個命名的select語句存儲視圖,然后通過其檢索數(shù)據(jù)。 reference:http://www.w3school.com.cn/sql/sql_select.asp -End- |
|