官术网_书友最值得收藏!

4.1 SQL概述

SQL語言是高級(jí)的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作,可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入域管理的接口。SQL語言的影響已經(jīng)超出數(shù)據(jù)庫領(lǐng)域,得到其他領(lǐng)域的重視和采用,如人工智能領(lǐng)域的數(shù)據(jù)檢索、第四代軟件開發(fā)工具中嵌入SQL語言等。

4.1.1 SQL簡(jiǎn)介

SQL是最重要的關(guān)系數(shù)據(jù)庫操作語言,由于該語言語句可以嵌套,因此該語言具有極大的靈活性和強(qiáng)大的功能。

1986年10月,美國國家標(biāo)準(zhǔn)協(xié)會(huì)對(duì)SQL進(jìn)行規(guī)范后,以此作為關(guān)系式數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言(ANSI X3. 135-1986),1987年得到國際標(biāo)準(zhǔn)組織的支持,成為國際標(biāo)準(zhǔn)。不過各種通行的數(shù)據(jù)庫系統(tǒng)在其實(shí)踐過程中都對(duì)SQL規(guī)范做了某些編改和擴(kuò)充。所以,實(shí)際上不同數(shù)據(jù)庫系統(tǒng)之間的SQL不能完全相互通用。

1. SQL語句結(jié)構(gòu)

SQL語言基本上獨(dú)立于數(shù)據(jù)庫本身,是一種交互式查詢語言,允許用戶直接查詢、存儲(chǔ)數(shù)據(jù)。雖然SQL不是完整的程序語言,但它可以嵌入另一種語言,也可以借用VB、C、JAVA等語言,通過調(diào)用級(jí)接口(CALL LEVEL INTERFACE)直接發(fā)送到數(shù)據(jù)庫管理系統(tǒng)。因此,SQL基本上是域關(guān)系演算,但它可以實(shí)現(xiàn)關(guān)系代數(shù)操作。

SQL的語句結(jié)構(gòu)包括下列6部分。

※ 數(shù)據(jù)查詢語言:該語句又稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序中給出。

※ 數(shù)據(jù)操作語言:該語句又稱為動(dòng)作查詢語言,包括用于添加、修改和刪除表中行的動(dòng)詞INSERT、UPDATE和DELETE。

※ 事務(wù)處理語言:該語句能確保被DML語句影響的表的所有行及時(shí)得以更新,包括BEGIN TRANSACTION、COMMIT和ROLLBACK。

※ 數(shù)據(jù)控制語言:該語句通過GRANT或REVOKE獲得許可,確定單個(gè)用戶和用戶組對(duì)數(shù)據(jù)庫對(duì)象的訪問。

※ 數(shù)據(jù)定義語言:該語句屬于動(dòng)作查詢的一部分,包括動(dòng)詞CREATE和DROP,主要用于在數(shù)據(jù)庫中創(chuàng)建新表或刪除表,以及為表加入索引等。

※ 指針控制語言:該語句包括DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT,用于對(duì)一個(gè)或多個(gè)表單獨(dú)行的操作。

2. SQL語言特點(diǎn)

SQL語言基本上獨(dú)立于數(shù)據(jù)庫本身、使用的計(jì)算機(jī)、網(wǎng)絡(luò)、操作系統(tǒng),基于SQL的DBMS產(chǎn)品可以運(yùn)行在從個(gè)人機(jī)、工作站到基于局域網(wǎng)、小型機(jī)和大型機(jī)的各種計(jì)算機(jī)系統(tǒng)上,具有良好的可移植性。除此之外,SQL語言還具有下列語言特點(diǎn)。

※ 一體化:SQL集數(shù)據(jù)定義DDL、數(shù)據(jù)操縱DML和數(shù)據(jù)控制DCL于一體,可以完成數(shù)據(jù)庫中的全部工作。

※ 使用方式靈活:SQL語言既可以直接以命令方式交互使用,也可以嵌入C、C++、FORTRAN、COBOL、JAVA等主語言中使用。

※ 非過程化:SQL語言只提操作要求,不必描述操作步驟,也不需要導(dǎo)航。

※ 簡(jiǎn)單易學(xué)好用:在ANSI標(biāo)準(zhǔn)中,只包含了94個(gè)英文單詞,核心功能只用6個(gè)動(dòng)詞,語法接近英語口語。

4.1.2 編寫規(guī)則

SQL也屬于一種語言,在編寫過程中擁有自己獨(dú)特的規(guī)則。

1. 大小寫規(guī)則

一般情況下,SQL語言不區(qū)分大小寫,既可以使用大寫格式和小寫格式,也可以使用大小寫混合格式。例如,下面的語句:

     SELECT empno,ename,sex,job,deptno FROM employee

又例如,下面的語句:

     select empno,ename,sex,job,deptno from employee

上面的兩個(gè)語句的區(qū)別在于大小寫方面,但上面兩個(gè)語句在功能上完全相同,沒有任何區(qū)別。

同樣的道理,語句中的對(duì)象名也可以使用大寫或小寫,以及大小寫混合書寫。

但是SQL在檢查文本數(shù)值時(shí)會(huì)區(qū)分大小寫,也就是在檢查文本數(shù)值是否相等的情況下區(qū)分大小寫。例如,tony和TONY便表示完全不同的值,其返回的結(jié)果也不盡相同。

一般在書寫SQL代碼時(shí),為了增強(qiáng)其可讀性,可以遵循約定的大小寫規(guī)則。例如,SQL命令和字句使用大寫格式,而SQL代碼列表使用小寫格式等。

2. 語句標(biāo)識(shí)

SQL語言通常放在一行內(nèi)顯示,如果一行內(nèi)顯示不完,可以放置在多行內(nèi)。此時(shí),為了便于閱讀還需要對(duì)多行語句進(jìn)行縮進(jìn)或跳格。

另外,在SQL*Plus中,SQL語言使用分號(hào)標(biāo)識(shí)結(jié)束。用戶還可以通過下列方法,提高SQL語言的可讀性和邏輯性。

※ 使用空格:在編寫賦值語句時(shí),在等號(hào)兩邊使用空格分隔,可提供更好的語言標(biāo)記區(qū)分。

※ 使用縮進(jìn):對(duì)于比較長(zhǎng)的語句,可通過使用縮進(jìn)的方法,提高語句的邏輯層次的表達(dá)力。

※ 使用垂直空白:可以使用垂直空白來提高關(guān)鍵字與參數(shù)的區(qū)分能力。

※ 使用分組:可以使用分組對(duì)語句進(jìn)行段落劃分。

主站蜘蛛池模板: 卓资县| 涟水县| 麻栗坡县| 苗栗市| 全椒县| 桦川县| 金寨县| 江都市| 招远市| 龙南县| 乌拉特中旗| 秭归县| 南陵县| 乌鲁木齐市| 东丽区| 久治县| 四川省| 香格里拉县| 华安县| 绵阳市| 阜康市| 平阴县| 宝坻区| 通州市| 长寿区| 遵化市| 嘉定区| 夏邑县| 科尔| 左云县| 高雄县| 乡宁县| 读书| 响水县| 桦甸市| 沈丘县| 修水县| 连平县| 彩票| 韩城市| 石家庄市|