SQL概述
人與人交互必須使用某種人類的自然語(yǔ)言,如英語(yǔ)、漢語(yǔ)和蒙語(yǔ)等。人與數(shù)據(jù)庫(kù)交互就不能使用人類的自然語(yǔ)言了,而需要使用SQL語(yǔ)言。人們使用SQL語(yǔ)言可以告訴具體的數(shù)據(jù)庫(kù)系統(tǒng)要干什么工作,讓其返回什么數(shù)據(jù)等。
3.1.1 SQL的歷史
SQL語(yǔ)言是20世紀(jì)70年代由Boyce和Chamberlin提出的。1979年,IBM公司第一個(gè)開發(fā)出SQL語(yǔ)言,并將其作為IBM關(guān)系數(shù)據(jù)庫(kù)原型System R的關(guān)系語(yǔ)言,實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫(kù)中的信息檢索。20世紀(jì)80年代初,美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)開始著手制定SQL標(biāo)準(zhǔn),并在1986年10月公布了最早的SQL標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的出臺(tái)使SQL作為標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的地位得到加強(qiáng)。擴(kuò)展的標(biāo)準(zhǔn)版本是1989年發(fā)表的SQL-89,之后還有1992年制定的版本SQL-92和1999年ISO發(fā)布的版本SQL-99。
SQL標(biāo)準(zhǔn)幾經(jīng)修改和完善,其功能更加強(qiáng)大,但目前很多數(shù)據(jù)庫(kù)系統(tǒng)只支持SQL-99的部分特征,而大部分?jǐn)?shù)據(jù)庫(kù)系統(tǒng)都能支持1992年制定的SQL-92。
3.1.2 SQL的特點(diǎn)
目前,SQL語(yǔ)言已經(jīng)成為幾乎所有主流數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言,所以其魅力是可想而知的。SQL語(yǔ)言不僅功能強(qiáng)大,而且容易掌握。下面是其最主要的5個(gè)特點(diǎn)。
1.具有綜合統(tǒng)一性
SQL語(yǔ)言格式統(tǒng)一,能夠獨(dú)立完成數(shù)據(jù)庫(kù)系統(tǒng)使用過(guò)程中的數(shù)據(jù)錄入、關(guān)系模式的定義、數(shù)據(jù)庫(kù)的建立,以及數(shù)據(jù)查詢、插入、刪除、更新、數(shù)據(jù)庫(kù)重構(gòu)與數(shù)據(jù)庫(kù)安全性控制等一系列操作的要求,為用戶提供了開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的良好環(huán)境。用戶在數(shù)據(jù)庫(kù)投入運(yùn)行后,還可根據(jù)需要隨時(shí)修改數(shù)據(jù)模式,而不影響數(shù)據(jù)庫(kù)的運(yùn)行,使系統(tǒng)具有良好的可擴(kuò)充性。
2.非過(guò)程化語(yǔ)言
SQL語(yǔ)言與C、COBOL、Basic等語(yǔ)言不同,它不是一種完全的語(yǔ)言。SQL語(yǔ)言并不能編寫通用的程序,因?yàn)樗鼪]有普通過(guò)程化語(yǔ)言中的IF和FOR等語(yǔ)句,只是一種操作數(shù)據(jù)庫(kù)的語(yǔ)言,屬于非過(guò)程化語(yǔ)言。
3.語(yǔ)言簡(jiǎn)潔,用戶容易接受
SQL語(yǔ)言十分簡(jiǎn)潔,完成主要功能只需使用9個(gè)動(dòng)詞,如表3.1所示。雖然SQL只使用9個(gè)動(dòng)詞,但其功能強(qiáng)大、設(shè)計(jì)精巧、語(yǔ)言語(yǔ)句簡(jiǎn)潔,使用戶非常容易接受。
4.以一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式
SQL語(yǔ)言既是自含式語(yǔ)言,又是嵌入式語(yǔ)言,且在兩種不同的使用方式下,SQL語(yǔ)言的語(yǔ)法結(jié)構(gòu)基本上是一致的。作為自含式語(yǔ)言,能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,用戶可以在終端鍵盤上直
第3章 SQL語(yǔ)言基礎(chǔ)
·25·
接輸入SQL命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。作為嵌入式語(yǔ)言,SQL語(yǔ)句能夠嵌入到高級(jí)語(yǔ)言中,為程序員的程序設(shè)計(jì)提供了方便。