出版時間:2009-12 出版社:人民郵電出版社 作者:(美)費希利(Fehily, C.) 頁數(shù):343 字數(shù):629000 譯者:馮宇暉,賈文峰
Tag標簽:無
前言
SQL,是一種標準的編程語言,用于創(chuàng)建、更新和檢索存儲在數(shù)據(jù)庫中的信息。使用SQL,你可以將通常的問題(“我們的客戶居住在何地?”)轉化為數(shù)據(jù)庫系統(tǒng)能夠理解的語句(SELECT DISlINCT city,state FROM customers;)。你可能已經知道如何通過圖形化的查詢或報表工具來檢索此類信息,但對于復雜的問題,或許你也意識到此類工具存在諸多限制和障礙——這時就需要SQL了。 可以使用SQL來增加、更新、刪除數(shù)據(jù)和數(shù)據(jù)庫對象。所有現(xiàn)代關系型DBMS(數(shù)據(jù)庫管理系統(tǒng))都支持SQL,但不同產品的支持情況會有所不同?! ”緯婕按蠖鄶?shù)流行:DBMS的最新版本,并專門新增一章來介紹sQL技巧,包括最新的編程技巧提示、細微變化和高級主題,以及其他零星知識。關于SQL SQL可以如下表述: 是一種編程語言; 容易學習: 是說明性語言; 是交互式或嵌入式語言; 是標準化語言; 用于改變數(shù)據(jù)和數(shù)據(jù)庫對象; 不是首字母縮寫詞?! ∷且环N編程語言。SQL,是一種可以用來編寫程序,實現(xiàn)創(chuàng)建、修改、查詢數(shù)據(jù)庫的形式語言。數(shù)據(jù)庫系統(tǒng)執(zhí)行SQL,程序,完成用戶指定的任務,并顯示結果或錯誤信息。編程語言有別于自然語言,它是為了特殊用途而設計的,其詞匯量小、語句書寫呆板且必須明確無誤。如果你沒有得到希望的結果,只能怪你自己的程序包含某些錯誤,而不是計算機錯誤地執(zhí)行了指令(程序測試是編程的一項重要工作)。
內容概要
本書是一本SQL的入門書,介紹如何使用最常用的SQL語言維護和查詢數(shù)據(jù)庫信息。書中介紹了各種DBMS,關系模型理論,SQL語法,從表中檢索數(shù)據(jù),操作符和函數(shù),匯總和分組數(shù)據(jù),聯(lián)結,子查詢,集合操作,創(chuàng)建、更改和刪除表,索引,視圖,事務和SQL技巧等。本書比較了各種DBMS中的SQL實現(xiàn),并給出大量實例代碼及經驗技巧。 本書適合SQL初學者,同時也可作為數(shù)據(jù)庫應用開發(fā)人員和最終用戶的參考書。
作者簡介
Chris Fehily,知名技術作家,顧問,具有十幾年的設計和開發(fā)經驗,主要興趣在編程語言和生物信息學等方面。
書籍目錄
第1章 DBMS介紹 1.1 運行SQL程序 1.2 Microsoft Access 1.3 Microsoft SQL Server 1.3.1 SQL Server 2000 1.3.2 SQL Server 2005/2008 1.4 Oracle 1.5 IBM DB2 1.6 MySQL 1.7 PostgreSQL第2章 關系模型 2.1 表、列和行 2.1.1 表 2.1.2 列 2.1.3 行 2.2 主鍵 2.3 外鍵 2.4 聯(lián)系 2.4.1 一對一 2.4.2 一對多 2.4.3 多對多 2.5 規(guī)范化 2.5.1 第一范式 2.5.2 第二范式 2.5.3 第三范式 2.5.4 其他范式 2.6 示例數(shù)據(jù)庫 2.6.1 表authors 2.6.2 表publishers 2.6.3 表titles 2.6.4 表titles_authors 2.6.5 表royalties 2.7 創(chuàng)建示例數(shù)據(jù)庫第3章 SQL基礎 3.1 SQL語法 3.2 SQL標準和一致性 3.3 標識符 3.4 數(shù)據(jù)類型 3.5 字符串類型 3.6 二進制大型對象類型 3.7 精確數(shù)字類型 3.8 近似數(shù)字類型 3.9 布爾類型 3.10 日期和時間類型 3.11 時間間隔類型 3.12 唯一標識符 3.13 其他數(shù)據(jù)類型 3.14 空值第4章 從表中檢索數(shù)據(jù) 4.1 使用SELECT和FROM檢索列 4.2 使用AS創(chuàng)建列的別名 4.3 使用DISTINCT消除重復的行 4.4 使用ORDER BY排序行 4.5 使用WHERE篩選行 4.6 使用AND、OR和NOT組合及求反條件 4.6.1 AND操作符 4.6.2 OR操作符 4.6.3 NOT操作符 4.6.4 AND、OR和NOT一起使用 4.7 使用LIKE匹配模式 4.8 使用BETWEEN進行范圍篩選 4.9 使用IN進行列表篩選 4.10 使用IS NULL測試空值第5章 操作符和函數(shù) 5.1 創(chuàng)建派生列 5.2 執(zhí)行算術運算 5.3 確定計算的順序 5.4 使用||連接串 5.5 使用SUBSTRING()提取子串 5.6 使用UPPER()和LOWER()更改串的大小寫 5.7 使用TRIM()修整字符 5.8 使用CHARACTER_LENGTH()得到串長度 5.9 使用POSITION()查找子串 5.10 執(zhí)行日期及時間間隔運算 5.11 獲得當前日期和時間 5.12 獲得用戶信息 5.13 使用CAST()轉換數(shù)據(jù)類型 5.14 使用CASE計算條件值 5.15 使用COALESCE()檢查空值 5.16 使用NULLIF()比較表達式第6章 匯總和分組數(shù)據(jù) 6.1 使用聚合函數(shù) 6.2 創(chuàng)建聚合表達式 6.3 使用MIN()查找最小值 6.4 使用MAX()查找最大值 6.5 使用SUM()計算總和 6.6 使用AVG()計算平均值 6.7 使用COUNT()統(tǒng)計行數(shù) 6.8 使用DISTINCT聚合不重復的值 6.9 使用GROUP BY分組行 6.10 使用HAVING篩選分組第7章 聯(lián)結 7.1 限定列名 7.2 使用AS創(chuàng)建表的別名 7.3 使用聯(lián)結 7.4 使用JOIN或WHERE創(chuàng)建聯(lián)結 7.5 使用CROSS JOIN創(chuàng)建交叉聯(lián)結 7.6 使用NATURAL JOIN創(chuàng)建自然聯(lián)結 7.7 使用INNER JOIN創(chuàng)建內聯(lián)結 7.8 使用OUTER JOIN創(chuàng)建外聯(lián)結 7.9 創(chuàng)建自聯(lián)結第8章 子查詢 8.1 理解子查詢 8.2 子查詢語法 8.3 子查詢和聯(lián)結 8.4 簡單子查詢和相關子查詢 8.4.1 簡單子查詢 8.4.2 相關子查詢 8.5 在子查詢中限定列名 8.6 子查詢中的空值 8.7 使用子查詢作為列表達式 8.8 使用比較操作符比較子查詢的值 8.9 使用IN測試集合成員資格 8.10 使用ALL比較所有子查詢的值 8.11 使用ANY比較某些子查詢的值 8.12 使用EXISTS檢測存在性 8.13 比較等價查詢第9章 集合操作 9.1 使用UNION合并行 9.2 使用INTERSECT查找相同行 9.3 使用EXCEPT查找不同行第10章 插入、更新和刪除行 10.1 顯示表結構 10.2 使用INSERT插入行 10.3 使用UPDATE更新行 10.4 使用DELETE刪除行第11章 創(chuàng)建、更改和刪除表 11.1 創(chuàng)建表 11.2 理解約束 11.3 使用CREATE TABLE創(chuàng)建新表 11.4 使用NOT NULL禁止空值 11.5 使用DEFAULT確定默認值 11.6 使用PRIMARY KEY指定主鍵 11.7 使用FOREIGN KEY指定外鍵 11.8 使用UNIQUE確保值唯一 11.9 使用CHECK創(chuàng)建檢查約束 11.10 使用CREATE TEMPORARY TABLE創(chuàng)建臨時表 11.11 使用CREATE TABLE AS利用已存在表創(chuàng)建新表 11.12 使用ALTER TABLE修改表 11.13 使用DROP TABLE刪除表第12章 索引 12.1 使用CREATE INDEX創(chuàng)建索引 12.2 使用DROP INDEX刪除索引第13章 視圖 13.1 使用CREATE VIEW創(chuàng)建視圖 13.2 通過視圖檢索數(shù)據(jù) 13.3 通過視圖修改數(shù)據(jù) 13.3.1 通過視圖插入行 13.3.2 通過視圖更新行 13.3.3 通過視圖刪除行 13.4 使用DROP VIEW刪除視圖第14章 事務第15章 SQL技巧 15.1 動態(tài)統(tǒng)計 15.2 產生序列 15.3 發(fā)現(xiàn)等差數(shù)列、遞增數(shù)列和等值數(shù)列 15.4 限定返回行的數(shù)量 15.4.1 Microsoft Access 15.4.2 Microsoft SQL Server 15.4.3 Oracle 15.4.4 IBM DB2 15.4.5 MySQL 15.4.6 PostgreSQL 15.5 分配排名 15.6 計算修整均值 15.7 隨機選取行 15.8 處理重復值 15.9 創(chuàng)建電話列表 15.10 檢索元數(shù)據(jù) 15.10.1 Microsoft Access 15.10.2 Microsoft SQL Server 15.10.3 Oracle 15.10.4 IBM DB2 15.10.5 MySQL 15.10.6 PostgreSQL 15.11 處理日期 15.11.1 Microsoft Access 15.11.2 Microsoft SQL Server 15.11.3 Oracle 15.11.4 IBM DB2 15.11.5 MySQL 15.11.6 PostgreSQL 15.12 計算中值 15.13 查詢極值 15.14 改變動態(tài)統(tǒng)計的中流 15.15 旋轉結果 15.16 處理層次結構索引
章節(jié)摘錄
事務日志。事務日志文件(transactionlogfile)或日志(log)是有關事務對數(shù)據(jù)庫進行修改的一系列記錄。事務日志記錄了每個事務開始、數(shù)據(jù)的變化以及撤銷或重新執(zhí)行事務(如果將來需要)的足夠信息。日志隨著數(shù)據(jù)庫事務的執(zhí)行不斷增長。 盡管保證每個事務本身的完整性是DBMS的職責,但依據(jù)組織或公司規(guī)章來開始和結束事務以保證數(shù)據(jù)邏輯的一致性則是數(shù)據(jù)庫開發(fā)人員的責任。事務應該僅包含能做出一致修改的必要的SQL語句——不多不少。所有引用表中的數(shù)據(jù)在事務開始前和事務結束后必須保持一致。在設計和執(zhí)行事務時,要重點考慮以下方面?! ∈聞障嚓P的SQL語句會修改數(shù)據(jù),所以執(zhí)行事務要得到數(shù)據(jù)庫管理員的授權?! ∈聞者^程應用于那些改變數(shù)據(jù)和數(shù)據(jù)庫對象的語句(INSERT、UPDATE、UPDETE、DELETE、CREATE、ALTER、 DROP——因不同DBMS而異)。對于工作中用到的數(shù)據(jù)庫,每一條這樣的語句都應該作為事務的一部分執(zhí)行。 提交了的事務被稱作持久化,意味著永久性改變,即便系統(tǒng)發(fā)生故障仍能保持。 DBMS的數(shù)據(jù)恢復機制依賴于事務。當DBMS在故障之后被在線復原,DBMS檢查事務日志確認是否所有事務都提交給了數(shù)據(jù)庫。如發(fā)現(xiàn)沒有提交(部分執(zhí)行)的事務,依據(jù)日志將它們回滾。必須重新提交回滾的事務(盡管一些DBMS能夠自動完成沒有結束的事務)?! BMS的備份/恢復設備依賴于事務。備份設備獲得例行的數(shù)據(jù)庫快照并將它們和隨后的事務日志存儲在備份盤上。假定使用的硬盤發(fā)生故障使得數(shù)據(jù)和事務日志不可讀??梢越柚诨謴驮O備,它將采用最近的數(shù)據(jù)庫備份并執(zhí)行,或前滾所有從快照到故障前最后執(zhí)行并在日志中提交的事務。這個恢復操作使數(shù)據(jù)庫恢復到故障發(fā)生前的正確狀態(tài)(注意,要再次提交沒有提交的事務)?! ★@然,應該將數(shù)據(jù)庫和它的事務日志存儲于不同的物理硬盤。
媒體關注與評論
“我是個計算機教師,通常對那些計算機書沒有太多好感。但這本書我忍不住要向大家推薦,我用它作SQL教材,效果很好……非常實用。例子很豐富,且知識點覆蓋全面,深度也合適?!薄 狝mazon.com讀者評論 “絕佳的SQL參考書。它一直在我手邊,一旦遇到SQL方面的問題。我會首先尋求它的幫助?!薄 Y深計算機取證專家Jerry Saperstein
編輯推薦
Amazon五星圖書,自學與參考兩相宜、任務驅動,數(shù)百實例教你掌握SQL精髓、觸類旁通,展現(xiàn)主流DBMS的SQL語句異同。 SQL語言結構簡潔,功能強大,簡單易學。在各種數(shù)據(jù)庫產品中得到了廣泛的應用?! 禨QL基礎教程(第3版)》是一本理論與實踐完美結合的SQL著作。知名技術作家ChrisFehily不僅深入淺出地講述了關系模型和SQL標準的來龍去脈,而且給出了幾乎所有主流數(shù)據(jù)庫的具體細節(jié),非常適合SQL初學者入門。此外,《SQL基礎教程(第3版)》還為讀者提供了豐富直觀的實例,并以這些實例為依托,不僅透徹地講解了SQL基礎知識,更展示了大量高級主題和實用技巧,因此,也適合有一定SQL經驗的人閱讀參考。鑒于《SQL基礎教程(第3版)》以任務驅動的方式組織設計了大量實例。相關專業(yè)的在校師生也可以從中受益。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載