出版時間:2008-9 出版社:電子工業(yè)出版社 作者:楊中科 頁數(shù):463
Tag標簽:無
前言
市面上講解數(shù)據(jù)庫的書都花了很多篇幅講解數(shù)據(jù)庫的備份、授權(quán)、調(diào)優(yōu)、修復、監(jiān)控等內(nèi)容,這些內(nèi)容是數(shù)據(jù)庫管理員(DBA)應該掌握的,而對于程序員來說更需要掌握的則是SQL語句的使用方法。但是市面上專門講解SQL語句的書非常少,初學者在學習數(shù)據(jù)庫開發(fā)過程中常常被那些寫給DBA的書弄得暈頭轉(zhuǎn)向,無法真正快速地掌握SQL技術(shù);而且這些書中講解的SQL語句也常常是針對特定數(shù)據(jù)庫系統(tǒng)的專有實現(xiàn),無法很容易地在其他數(shù)據(jù)庫系統(tǒng)中運行,讀者需要閱讀大量的書籍和查閱大量的資料才能掌握不同數(shù)據(jù)庫系統(tǒng)的使用方法?! ”緯菍iT寫
內(nèi)容概要
本書主要介紹SQL的語法規(guī)則及在實際開發(fā)中的應用,并且對SQL在MySQL、MS SQL Server、Oracle和DB2中的差異進行了分析。本書分為3部分:第1部分為基礎篇,主要講解數(shù)據(jù)庫對增、刪、改、查等SQL的支持,給出了這些SQL的應用案例;第2部分為進階篇,講解了函數(shù)、子查詢、表連接、不同DBMS中的SQL語法差異、SQL調(diào)優(yōu)、NULL值處理、事務、開窗函數(shù)等高級技術(shù);第3部分為案例篇,對前兩部分的知識進行了綜合運用。 本書適合程序開發(fā)人員及數(shù)據(jù)庫工程師參考學習,也可作為高等院校相關(guān)專業(yè)師生的參考書。
書籍目錄
第1章 數(shù)據(jù)庫入門 11.1 數(shù)據(jù)庫概述 11.1.1 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) 11.1.2 數(shù)據(jù)庫能做什么 21.1.3 主流數(shù)據(jù)庫管理系統(tǒng)介紹 21.2 數(shù)據(jù)庫基礎概念 51.2.1 Catalog 51.2.2 表(Table) 61.2.3 列(Column) 71.2.4 數(shù)據(jù)類型(DataType) 81.2.5 記錄(Record) 91.2.6 主鍵(PrimaryKey) 91.2.7 索引(Index) 101.2.8 表關(guān)聯(lián) 121.2.9 數(shù)據(jù)庫的語言——SQL 131.2.10 DBA與程序員 14第2章 數(shù)據(jù)表的創(chuàng)建和管理 172.1 數(shù)據(jù)類型 172.1.1 整數(shù)類型 172.1.2 數(shù)值類型 192.1.3 字符相關(guān)類型 212.1.4 日期時間類型 232.1.5 二進制類型 242.2 通過SQL語句管理數(shù)據(jù)表 252.2.1 創(chuàng)建數(shù)據(jù)表 252.2.2 定義非空約束 262.2.3 定義默認值 272.2.4 定義主鍵 272.2.5 定義外鍵 292.2.6 修改已有數(shù)據(jù)表 302.2.7 刪除數(shù)據(jù)表 312.2.8 受限操作的變通解決方案 31第3章 數(shù)據(jù)的增、刪、改 333.1 數(shù)據(jù)的插入 343.1.1 簡單的INSERT語句 343.1.2 簡化的INSERT語句 363.1.3 非空約束對數(shù)據(jù)插入的影響 363.1.4 主鍵對數(shù)據(jù)插入的影響 373.1.5 外鍵對數(shù)據(jù)插入的影響 383.2 數(shù)據(jù)的更新 383.2.1 簡單的數(shù)據(jù)更新 393.2.2 帶WHERE子句的UPDATE語句 403.2.3 非空約束對數(shù)據(jù)更新的影響 413.2.4 主鍵對數(shù)據(jù)更新的影響 423.2.5 外鍵對數(shù)據(jù)更新的影響 423.3 數(shù)據(jù)的刪除 433.3.1 簡單的數(shù)據(jù)刪除 433.3.2 帶WHERE子句的DELETE語句 44第4章 數(shù)據(jù)的檢索 474.1 SELECT基本用法 484.1.1 簡單的數(shù)據(jù)檢索 484.1.2 檢索出需要的列 494.1.3 列別名 514.1.4 按條件過濾 524.1.5 數(shù)據(jù)匯總 534.1.6 排序 564.2 高級數(shù)據(jù)過濾 594.2.1 通配符過濾 594.2.2 空值檢測 634.2.3 反義運算符 644.2.4 多值檢測 654.2.5 范圍值檢測 664.2.6 低效的“WHERE 1=1” 684.3 數(shù)據(jù)分組 724.3.1 數(shù)據(jù)分組入門 744.3.2 數(shù)據(jù)分組與聚合函數(shù) 764.3.3 HAVING語句 794.4 限制結(jié)果集行數(shù) 814.4.1 MySQL 814.4.2 MS SQL Server 2000 824.4.3 MS SQL Server 2005 834.4.4 Oracle 844.4.5 DB2 864.4.6 數(shù)據(jù)庫分頁 884.5 抑制數(shù)據(jù)重復 904.6 計算字段 914.6.1 常量字段 924.6.2 字段間的計算 934.6.3 數(shù)據(jù)處理函數(shù) 954.6.4 字符串的拼接 974.6.5 計算字段的其他用途 1034.7 不從實體表中取的數(shù)據(jù) 1054.8 聯(lián)合結(jié)果集 1074.8.1 簡單的結(jié)果集聯(lián)合 1084.8.2 聯(lián)合結(jié)果集的原則 1104.8.3 UNION ALL 1124.8.4 聯(lián)合結(jié)果集應用舉例 114第5章 函數(shù) 1195.1 數(shù)學函數(shù) 1225.1.1 求絕對值 1225.1.2 求指數(shù) 1225.1.3 求平方根 1235.1.4 求隨機數(shù) 1235.1.5 舍入到最大整數(shù) 1255.1.6 舍入到最小整數(shù) 1265.1.7 四舍五入 1275.1.8 求正弦值 1285.1.9 求余弦值 1295.1.10 求反正弦值 1295.1.11 求反余弦值 1305.1.12 求正切值 1305.1.13 求反正切值 1315.1.14 求兩個變量的反正切 1315.1.15 求余切 1325.1.16 求圓周率π值 1325.1.17 弧度制轉(zhuǎn)換為角度制 1335.1.18 角度制轉(zhuǎn)換為弧度制 1345.1.19 求符號 1345.1.20 求整除余數(shù) 1355.1.21 求自然對數(shù) 1365.1.22 求以10為底的對數(shù) 1365.1.23 求冪 1375.2 字符串函數(shù) 1375.2.1 計算字符串長度 1385.2.2 字符串轉(zhuǎn)換為小寫 1385.2.3 字符串轉(zhuǎn)換為大寫 1395.2.4 截去字符串左側(cè)空格 1395.2.5 截去字符串右側(cè)空格 1405.2.6 截去字符串兩側(cè)的空格 1415.2.7 取子字符串 1435.2.8 計算子字符串的位置 1445.2.9 從左側(cè)開始取子字符串 1455.2.10 從右側(cè)開始取子字符串 1465.2.11 字符串替換 1475.2.12 得到字符的ASCII碼 1485.2.13 得到一個ASCII碼數(shù)字對應的字符 1495.2.14 發(fā)音匹配度 1515.3 日期時間函數(shù) 1535.3.1 日期、時間、日期時間與時間戳 1535.3.2 主流數(shù)據(jù)庫系統(tǒng)中日期時間類型的表示方式 1545.3.3 取得當前日期時間 1545.3.4 日期增減 1575.3.5 計算日期差額 1665.3.6 計算一個日期是星期幾 1725.3.7 取得日期的指定部分 1775.4 其他函數(shù) 1835.4.1 類型轉(zhuǎn)換 1835.4.2 空值處理 1885.4.3 CASE函數(shù) 1915.5 各數(shù)據(jù)庫系統(tǒng)獨有函數(shù) 1945.5.1 MySQL中的獨有函數(shù) 1955.5.2 MS SQL Server中的獨有函數(shù) 2025.5.3 Oracle中的獨有函數(shù) 206第6章 索引與約束 2096.1 索引 2096.2 約束 2116.2.1 非空約束 2116.2.2 唯一約束 2126.2.3 CHECK約束 2176.2.4 主鍵約束 2216.2.5 外鍵約束 224第7章 表連接 2337.1 表連接簡介 2367.2 內(nèi)連接(INNER JOIN) 2367.3 不等值連接 2407.4 交叉連接 2417.5 自連接 2457.6 外部連接 2487.6.1 左外部連接 2507.6.2 右外部連接 2517.6.3 全外部連接 252第8章 子查詢 2558.1 子查詢?nèi)腴T 2618.1.1 單值子查詢 2618.1.2 列值子查詢 2638.2 SELECT列表中的標量子查詢 2658.3 WHERE子句中的標量子查詢 2678.4 集合運算符與子查詢 2708.4.1 IN運算符 2708.4.2 ANY和SOME運算符 2728.4.3 ALL運算符 2748.4.4 EXISTS運算符 2758.5 在其他類型SQL語句中的子查詢應用 2778.5.1 子查詢在INSERT語句中的應用 2778.5.2 子查詢在UPDATE語句中的應用 2838.5.3 子查詢在DELETE語句中的應用 285第9章 主流數(shù)據(jù)庫的SQL語法差異解決方案 2879.1 SQL語法差異分析 2879.1.1 數(shù)據(jù)類型的差異 2879.1.2 運算符的差異 2889.1.3 函數(shù)的差異 2899.1.4 常用SQL的差異 2899.1.5 取元數(shù)據(jù)信息的差異 2909.2 消除差異性的方案 2939.2.1 為每種數(shù)據(jù)庫編寫不同的SQL語句 2939.2.2 使用語法交集 2949.2.3 使用SQL實體對象 2949.2.4 使用ORM工具 2959.2.5 使用SQL翻譯器 2969.3 CowNewSQL翻譯器 2999.3.1 CowNewSQL支持的數(shù)據(jù)類型 2999.3.2 CowNewSQL支持的SQL語法 3009.3.3 CowNewSQL支持的函數(shù) 3059.3.4 CowNewSQL的使用方法 309第10章 高級話題 31310.1 SQL注入漏洞攻防 31310.1.1 SQL注入漏洞原理 31310.1.2 過濾敏感字符 31410.1.3 使用參數(shù)化SQL 31510.2 SQL調(diào)優(yōu) 31610.2.1 SQL調(diào)優(yōu)的基本原則 31710.2.2 索引 31710.2.3 全表掃描和索引查找 31810.2.4 優(yōu)化手法 31810.3 事務 32410.3.1 事務簡介 32410.3.2 事務的隔離 32510.3.3 事務的隔離級別 32610.3.4 事務的使用 32710.4 自動增長字段 32710.4.1 MySQL中的自動增長字段 32710.4.2 MS SQL Server中的自動增長字段 32810.4.3 Oracle中的自動增長字段 32910.4.4 DB2中的自動增長字段 33210.5 業(yè)務主鍵與邏輯主鍵 33310.6 NULL的學問 33410.6.1 NULL與比較運算符 33610.6.2 NULL和計算字段 33710.6.3 NULL和字符串 33810.6.4 NULL和函數(shù) 33910.6.5 NULL和聚合函數(shù) 33910.7 開窗函數(shù) 34010.7.1 開窗函數(shù)簡介 34210.7.2 PARTITION BY子句 34410.7.3 ORDER BY子句 34610.7.4 高級開窗函數(shù) 35310.8 WITH子句與子查詢 360第11章 案例講解 36311.1 報表制作 37111.1.1 顯示制單人詳細信息 37111.1.2 顯示銷售單的詳細信息 37311.1.3 計算收益 37411.1.4 產(chǎn)品銷售額統(tǒng)計 37811.1.5 統(tǒng)計銷售記錄的份額 37911.1.6 為采購單分級 38011.1.7 檢索所有重疊日期銷售單 38311.1.8 為查詢編號 38511.1.9 標記所有單內(nèi)最大銷售量 38611.2 排序 38911.2.1 非字段排序規(guī)則 38911.2.2 隨機排序 39011.3 表間比較 39111.3.1 檢索制作過采購單的人制作的銷售單 39111.3.2 檢索沒有制作過采購單的人制作的銷售單 39211.4 表復制 39411.4.1 復制源表的結(jié)構(gòu)并復制表中的數(shù)據(jù) 39411.4.2 只復制源表的結(jié)構(gòu) 39511.5 計算字符在字符串中出現(xiàn)的次數(shù) 39611.6 去除最高分、最低分 39611.6.1 去除所有最低、最高值 39711.6.2 只去除一個最低、最高值 39711.7 與日期相關(guān)的應用 39811.7.1 計算銷售確認日和制單日之間相差的天數(shù) 39811.7.2 計算兩張銷售單之間的時間間隔 39911.7.3 計算銷售單制單日期所在年份的天數(shù) 40111.7.4 計算銷售單制單日期所在月份的第一天和最后一天 40211.8 結(jié)果集轉(zhuǎn)置 40311.8.1 將結(jié)果集轉(zhuǎn)置為一行 40411.8.2 把結(jié)果集轉(zhuǎn)置為多行 40611.9 遞歸查詢 41011.9.1 Oracle中的CONNECT BY子句 41011.9.2 Oracle中的SYS_CONNECT_BY_PATH()函數(shù) 41411.9.3 My SQL Server和DB2中遞歸查詢 415附錄A 常用數(shù)據(jù)庫系統(tǒng)的安裝和使用 417A.1 DB2的安裝和使用 417A.2 MySQL的安裝和使用 429A.3 Oracle的安裝和使用 441A.4 Microsoft SQL Server的安裝和使用 452
章節(jié)摘錄
第1章 數(shù)據(jù)庫入門 本章介紹數(shù)據(jù)庫的入門知識,首先介紹什么是數(shù)據(jù)庫,然后介紹數(shù)據(jù)庫中的一些基本概念,接著介紹操縱數(shù)據(jù)庫的不同方式,最后介紹操縱數(shù)據(jù)庫時使用的語言SQL。在章節(jié)中我們還將穿插一些非常有趣的話題。
編輯推薦
《程序員的SQL金典》適合程序開發(fā)人員及數(shù)據(jù)庫工程師參考學習,也可作為高等院校相關(guān)專業(yè)師生的參考書。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載