網際網路與資料庫的對話錄
[ 目錄 ] / [ 本節目錄 ] [ 上一篇 ]


第十章、資料庫的共通程式語言(SQL)

陳尚寬

2002/06/18


第一節、SQL的演進

小君:「資料庫本身需不需要寫些程式啊?」

小博:「基本上,一般的操作是不需要寫甚麼程式的,因為幾乎大部份的程式都被資料庫的軟體包裝起來了。而這些程式就是資料庫的共通語言SQL。」

小君:「那不就不需要學寫資料庫的程式了,你也知道我寫程式的能力很差的。」

小博:「雖然大部份的使用應該不用寫程式,不過了解SQL的語法,會對資料庫的運作模式,更加的了解。」

小君:「哈哈,開玩笑的,我還是別這麼懶惰比較好,是不是啊?」

小博:「嗯嗯,現在要講的SQL,它是由IBM公司首先研發出來的。早期的SQL語言,就叫做SEQUEL,原文為(StructureEnglishQueryLanguage),也就是結構化查詢語言。」

小君:「難怪你會這麼唸,原來SQL的發音是從這裡來的啊。」

小博:「對啊,而且到了1986年,美國國家標準協會就採用SQL做為關聯式資料庫管理系統的標準語言了。」

小君:「這樣好,定了標準之後,就不用東學西學了。」

小博:「沒錯,這樣做也帶給廠商更多的便利性。」

小君:「那現在的標準,有再更改嗎?」

小博:「有的,不過只是版本的更新,目前的版本是ANSISQL-92。」

小君:「喔,原來如此啊。」

第二章、SQL的基本語言

小博:「既然妳對寫程式沒有太大的興趣,我就簡單來告訴妳這個語言的架構,讓妳大略知道這個語言的精神所在。」

小君:「太好了,我就等你這句話。」

小博:「第一是資料的定義語言,它主要是用來定義資料庫的資料結構,就像關聯式資料表名稱、所有的欄位名稱、所有的屬性、以及很重要的,定義整合性的限制條件等等。」

小君:「喔,看起來都好像是資料庫蠻基本需要的定義。」

小博:「沒錯,而且這些資料定義語言,也就是使用者在使用資料庫軟體,如Access,所最常使用到的。」

小君:「好像真的是這樣耶,我在使用Access的時候,常要輸入一些欄位名稱,以及一些屬性,原來這些就是資料定義語言啊。」

小博:「是的,除了資料定義語言外,我再介紹資料操作語言,它提供使用者可以在資料庫中新增、刪除、更新、與查詢資料的操作指令。」

小君:「資料操作語言,我懂了,還有呢?」

小博:「再來就是資料控制語言,它是用來控制資料庫內部的交易處理以及維護系統效能的指令。」

小君:「對了,像剛剛有提到的權限與角色是屬於那一種語言啊?」

小博:「這也是屬於資料定義語言的範疇,它可以賦予、刪除、撤回權限與角色。」

小君:「所以,之前學到的觀念,也會一一在語言中被實行囉。」

小博:「那是當然的囉。最後,我再告訴妳一種很特殊的資料表格view。」

小君:「是怎樣的特別法呢?」

小博:「它是從基本的表格中選取某幾個欄位所組成的,或者在幾個表格中滿足某些條件的資料所組成。但重點是雖然view本身也是一個表格,但這個表格卻不實際存放任何資料,因此view本身,只是一個虛擬表格而已。」

小君:「你的意思是不是說view只是對應基本表格的部份資料囉。」

小博:「妳說的很對,除此之外,使用者也可以當它是基本表格一樣來查詢資料,甚至可以對view插入資料與修改呢。」

小君:「那view的建立與表格的建立,在SQL的語法中也是有區別的囉。」

小博:「那當然囉,一個是createtable,一個是createview,當然不同囉。」

小君:「view讓我想到Access的查詢物件,那些查詢表格老是隨著基本表格而變,讓我不禁懷疑它也是view。」

小博:「沒錯它也是view,也就是有這樣的設計,才會節省空間的儲存啊。」

小君:「那我了解了。謝啦。」

小博:「不要客氣,如果對資料庫還有問題,或者其他的領域,我能回答的都儘可能的回答妳。」

小君:「果真人如其名啊。」

小博:「過獎了,妳也不賴啊。」


[ 目錄 ] / [ 本節目錄 ] [ 上一篇 ]


lake@mail.bamboo.hc.edu.tw