日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库的语言——SQL

發(fā)布時間:2024/4/15 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库的语言——SQL 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

DBMS 是一種系統(tǒng)軟件,我們要與它交互的時候就必須使用某種語言,在數(shù)據(jù)庫發(fā)展初期每一種DBMS 都有自己的特有的語言,不過逐漸的SQL 成為了所有DBMS 都支持的主流語言。SQL 是專為數(shù)據(jù)庫而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫語言。在使用它時,只需要發(fā)出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL功能強大、簡單易學(xué)、使用方便,已經(jīng)成為了數(shù)據(jù)庫操作的基礎(chǔ),并且現(xiàn)在幾乎所有的數(shù)據(jù)庫均支持SQL。

SQL的英文全稱是Structured Query Language,它是1974 年由Boyce和Chamberlin提出的,并且首先在IBM的關(guān)系數(shù)據(jù)庫原型產(chǎn)品R系統(tǒng)(SYSTEM R)上實現(xiàn)。它的前身是1972 提出的SQUARE(Specifying Queries As Relational Expressesion)語言,在1974 年做了修改,并且改名為SEQUEL(Structured English Query Language)語言,后來SEQUEL簡化為SQL。

SQL 是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。使用它,用戶無需指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng)可以使用相同的SQL 語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操縱對象,所有SQL 語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL 語句的輸出作為另一條SQL 語句的輸入,所以SQL 語言可以嵌套,這使它具有極大的靈活性和強大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的一個單

獨事件只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。

SQL 具有下面4個主要的功能:創(chuàng)建數(shù)據(jù)庫并定義表的結(jié)構(gòu);查詢需要的數(shù)據(jù);更新或者刪除指定的數(shù)據(jù);控制數(shù)據(jù)庫的安全。使用SQL我們可以完成和DBMS的幾乎所有交互任務(wù)。

比如我們要查找年齡小于18 歲的員工信息,那么我們只要執(zhí)行下面的SQL就可以:

SELECT * from Employees where age<18

比如我們要將所有職位為“名譽總裁”的員工刪除,那么就可以執(zhí)行下面的SQL:

DELETE from Employees where position=’ 名譽總裁’

可以看到我們只是描述了我們要做什么,至于怎么去做則由DBMS 來決定。可以想想如果要是自己編程去實現(xiàn)類似的功能,則需要編寫非常復(fù)雜的算法才能完成,而且性能也不一定會非常好。

我們可以通過三種方式執(zhí)行SQL:

1,在工具中執(zhí)行。各個DBMS幾乎都提供了工具用于執(zhí)行SQL語句,比如Microsoft SQL,Server 的Management Studio、DB2 的命令中心、Oracle的SqlPlus 或者MySQL的Query Browser。在這些工具中我們只要輸入要執(zhí)行的SQL然后點擊【執(zhí)行】按鈕就可以得到執(zhí)行結(jié)果。

2,以編譯的方式嵌入到語言中。在這種方式中我們可以把SQL 直接寫到代碼中,在編譯的時候由編譯器來決定和數(shù)據(jù)庫的交互方式。比如PowerBuild、C等就采用這種方式。

3,以字符串的形式嵌入到語言中。在這種方式中SQL 語句只是以字符串的形式寫到代碼中,然后由代碼將其提交到DBMS,并且分析返回的結(jié)果。目前這是大部分支持?jǐn)?shù)據(jù)

庫操作的語言采用的方式,比如C#、Java、Python、Delphi 和VB等。

由于嵌入到語言中的執(zhí)行方式是嚴(yán)重依賴宿主語言的,而本書不假定用戶使用任何編程語言,為了能夠使得使用任何語言的讀者都能學(xué)習(xí)本書中的知識點,本書將主要以在工具中執(zhí)行的方式來執(zhí)行SQL語句,讀者可以根據(jù)自己使用的編程語言來靈活運用這些知識點。

IBM 是SQL 語言的發(fā)明者,但是其他的數(shù)據(jù)庫廠商都在IBM 的SQL 基礎(chǔ)上提出了自己的擴展語法,因此形成了不同的SQL 語法,對于開發(fā)人員來說,使用這些有差異的語法是非常頭疼的時候。因此在1986年美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)為SQL 制定了標(biāo)準(zhǔn),并且在1987年國際標(biāo)準(zhǔn)化組織(ISO)也為SQL 指定了標(biāo)準(zhǔn),迄今為止已經(jīng)推出SQL-86、SQL-89、SQL-92、SQL-99、SQL-2003等版本的標(biāo)準(zhǔn)。

雖然已經(jīng)有了國際標(biāo)準(zhǔn),但是由于種種原因,各個數(shù)據(jù)庫產(chǎn)品的SQL 語法仍然有著很大差異,在數(shù)據(jù)庫A上能成功執(zhí)行的SQL放到數(shù)據(jù)庫B上就會執(zhí)行失敗。為了方便使用不同數(shù)據(jù)庫產(chǎn)品的讀者都能成功運行本書中的例子,我們會介紹各種數(shù)據(jù)庫SQL 的差異性,并且給出解決方案,而且本書將會安排專門章節(jié)講解跨數(shù)據(jù)庫程序開發(fā)的技術(shù)。

轉(zhuǎn)載于:https://www.cnblogs.com/yuyu666/p/9819963.html

總結(jié)

以上是生活随笔為你收集整理的数据库的语言——SQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。