內容簡介
如果你參與軟體開發,就很可能會用到一定程度的SQL語言。使用SQL時,需要一份不錯的語法參考資料。雖然SQL是標準化語言,但SQL的實現並不是標準化的。廠商軟體差異甚多,本書也就因此而誕生。
《SQL技術手冊》第二版是最新版SQL語言的實踐指令參考手冊。本書列出各種SQL語句,說明其使用方式及語法,不僅對它在標準版中的概念進行探討,也說明它在5大主要資料庫平台(DB2、Oracle、MySQL、PostgreSQL及SQLServer)上的實現方法。每項語句的內容包含廠商程式的命令語法、說明以及解說重要概念與用法的豐富範例。SQL不僅和語句相關,數據類型及實際運作所需的大量內置SQL函式庫也很重要。本書收錄了標準版及多種廠商實現版的數據類型與函式。本書第二版也收錄了DB2與Oracle所支持的較新版視窗函式語法的詳細信息。
目錄
刖吾
第一章 SQL歷史與實現
關係模型及ANSI SQL
SQL標準的歷史
SQL方言
第二章 基本概念
本書收錄的資料庫平台
語法種類
SQL2003與平台獨有的數據類型
約束
第三章 SOL語句命令參考指南
使用說明
SQL平台支持
SQL命令參考
第三章 SQL語句命令參考指南
第四章 SQL函式
函式類型
ANSI SQL聚合函式
ANSI SQL視窗函式
ANSI SQL標量函式
平台獨有的擴展功能
第五章 資料庫程式設計
資料庫程式設計概要
開啟資料庫連線
關閉資料庫連線
管理事務
執行語句
擷取數據
錯誤處理
範例
附錄一 Sybase Adaptive Server
附錄二 平台共有與獨有的關鍵字
序言
結構化查詢語言(SQL)自20世紀70年代首次出現以來,一直和信息科技齊頭並進,因此是商業與產業界最廣泛使用的資料庫操縱語言。許多軟體公司與程式開發者,包括開放源碼推動者,均各自開發自己的SQL方言(dialect)以適應特定的專業需求。與此同時,標準版也開發了越來越多的通用功能。《SQL技術手冊》第二版說明了各項SQL命令的最新ANSI標準:SQL2003,並收錄這些命令在各平台上的實現方式。本書包括關係資料庫管理系統(Relational DatabaseManagement System,RDBMS)模型的簡潔說明、基礎RDBMS概念的明確解釋以及詳盡的SQL語法與命令。更重要的是,《SQL技術手冊》第二版提供了市場上最受歡迎的商用資料庫軟體包(Microsoft SQL Server、IBM的DB2 Universal Database、Sybase Adaptive Server與Oracle)及兩種最廣為人知的開放源碼資料庫產品(MySQL PostgreSQL)的精要指南。《SQL技術手冊》對開放源碼sQL平台的重視也呼應了開放源碼運動在計算機界日趨重要的形勢。
書摘插圖
第一章 SQL歷史與實現
20世紀70年代初期,IBM研究員E.F.Codd的開創性的研究開啟了關係數據模型產品SEQUEL或所謂的結構化英語查詢語言(Structured English Query Language)的發展。SEQUEL最後變成SQL,也有人稱之為結構化查詢語言(Structured Query Language)。
IBM和其他關係資料庫的開發廠商都希望能有一套訪問及操縱關係資料庫的標準化方法。雖然IBM首創關係資料庫理論,但Oracle是第一家在市場上推出這套技術的公司。隨著時間的逝去,SQL在市場上得到不錯的反響,因而引起美國國家標準局(ANSI)的關注,分別在1986年、1989年、1992年、1999年及2003年發布SQL標準。自1896年起,已經有多種可讓程式設計師及開發者操縱關係數據的語言,但很少有語言像SQL那么好學或這么廣泛地獲得認同。它讓程式設計師及管理者只需學習單一語言,稍作一點調整,就可以將其廣泛套用至多種資料庫平台、應用程式及產品中。
《SQL技術手冊》第二版說明了五種SQL2003的常見實現:
·IBM針對Linux、Unix及Windows所設計的DB2 Universal Database第8版
·My SQL第4版
·Oracle Databaselog
·Postgre SQL第7版
·Microsoft的SQLServer2000
本書也在附錄二中收錄了Sybase Adaptive Server Enterprise(ASE)的信息,但是比例較少。
關係模型及ANSISQL
關係資料庫管理系統(RDBMS),如本書所收錄的幾種,是全世界的信息系統的主要驅動引擎,尤其常見於網路套用及分散式客戶機/伺服器(client/server)處理系統。RDBMS在不阻礙或影響其他人的情況下,讓許多用戶可以迅速且同時訪問、創建、編輯與操縱數據,也讓系統開發者可以編寫好用的應用程式以訪問資源,並讓系統管理者可以對組織好的數據源進行維護、保護及最最佳化。
RDBMS是一套系統,其用戶視數據為彼此互有關聯的表格集合,關聯則因共同數據值而產生。數據是存儲在由數據列(column)與數據行(row)所組成的數據表(table)中。如果獨立的數據表間各有獨特的標識欄(即鍵)可代表共有的數據值,這些數據表便能彼此相聯(或說產生關聯)。1970年6月,E.F.Codd發表於《美國計算機協會通訊》(Communications of the ACM)的關鍵性論文((A Relational Model of Data for Large Shared Data Banks))中首度提出關係資料庫理論。在Codd的新關係數據模型中,數據呈結構式(形成由列與行組成的數據表),可用選取、投影及聯接等操作方式管理,且由於鍵值完整性與引用完整性等原則而有一致性。Codd也提出支配關係資料庫應該如何設計的原則,而運用這些原則的過程亦即如今所謂的規範化(normalization)。
……