- Oracle從新手到高手
- 楊繼萍
- 1553字
- 2019-12-09 14:49:03
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)行段落劃分。
- Advanced Splunk
- DevOps Automation Cookbook
- Flash CS6中文版應(yīng)用教程(第三版)
- 深入淺出Serverless:技術(shù)原理與應(yīng)用實(shí)踐
- Learning Probabilistic Graphical Models in R
- 批調(diào)度與網(wǎng)絡(luò)問題的組合算法
- 0 bug:C/C++商用工程之道
- R語言數(shù)據(jù)可視化:科技圖表繪制
- C++ Application Development with Code:Blocks
- 數(shù)字媒體技術(shù)概論
- JavaScript Unit Testing
- C語言編程魔法書:基于C11標(biāo)準(zhǔn)
- Java Script從入門到精通(第5版)
- Kudu:構(gòu)建高性能實(shí)時(shí)數(shù)據(jù)分析存儲(chǔ)系統(tǒng)
- Python3網(wǎng)絡(luò)爬蟲寶典