出版時間:2012-9 出版社:電子工業(yè)出版社 作者:王偉東
內(nèi)容概要
本書內(nèi)容全面、結(jié)構(gòu)清晰、查詢方便,不僅全面地介紹了SQL語句,而且兼顧了其在SQL
Server和Oracle數(shù)據(jù)庫產(chǎn)品中的實現(xiàn)。
本書共15章,分別介紹了SQL數(shù)據(jù)類型、數(shù)據(jù)表、視圖、約束、SQL函數(shù)、SQL查詢、數(shù)據(jù)處理、數(shù)據(jù)安全、存儲過程、觸發(fā)器、游標和嵌入式SQL等知識點,同時每個知識點都配合了詳細、豐富的示例進行講解,使讀者可以很輕松地學(xué)習(xí)本書內(nèi)容。
書籍目錄
第1章 數(shù)據(jù)庫系統(tǒng)與SQL 基礎(chǔ)知識1
1.1 數(shù)據(jù)庫系統(tǒng)基本概念1
1.1.1 什么是SQL1
1.1.2 什么是數(shù)據(jù)庫2
1.1.3 什么是數(shù)據(jù)庫管理系統(tǒng)2
1.2 SQL基礎(chǔ)知識3
1.2.1 SQL類型3
1.2.2 在SQL Server中執(zhí)行SQL語句4
1.2.3 在Oracle中執(zhí)行SQL語句5
1.2.4 在PL/SQL Developer工具中執(zhí)行SQL語句6
1.2.5 在MySQL中執(zhí)行SQL語句8
第2章 SQL中的數(shù)據(jù)類型和運算符10
2.1 數(shù)值類型10
2.2 字符串類型11
2.2.1 可變長度的字符串類型——Varchar、Text12
2.2.2 固定長度的字符串類型——Char12
2.3 日期類型12
2.4 大對象數(shù)據(jù)類型——BLOB14
2.5 布爾值——Boolean15
2.6 自定義數(shù)據(jù)類型15
2.7 運算符17
2.7.1 算術(shù)運算符17
2.7.2 邏輯運算符20
2.7.3 NOT運算符26
2.7.4 IN的使用29
2.7.5 NOT IN運算符30
第3章 表和視圖的創(chuàng)建修改32
3.1 創(chuàng)建數(shù)據(jù)表——CREATE TABLE32
3.1.1 設(shè)計實例表32
3.1.2 創(chuàng)建數(shù)據(jù)表34
3.2 修改數(shù)據(jù)表——ALTER TABLE36
3.2.1 為數(shù)據(jù)表添加列38
3.2.2 修改列的數(shù)據(jù)類型39
3.2.3 修改列的長度40
3.2.4 設(shè)置或取消非空約束41
3.2.5 刪除列42
3.3 刪除數(shù)據(jù)表—DROP TABLE43
3.4 創(chuàng)建視圖——CREATE VIEW44
3.4.1 視圖概述45
3.4.2 創(chuàng)建視圖的語句結(jié)構(gòu)47
3.4.3 從一個表創(chuàng)建視圖48
3.4.4 從多個表創(chuàng)建視圖50
3.4.5 從視圖創(chuàng)建視圖51
3.4.6 創(chuàng)建視圖列的別名52
3.5 修改視圖——ALTER VIEW54
3.6 通過視圖維護數(shù)據(jù)56
3.6.1 向視圖中插入記錄56
3.6.2 通過視圖更新數(shù)據(jù)58
3.6.3 通過視圖刪除數(shù)據(jù)59
3.7 刪除視圖——DROP VIEW60
第4章 約束與規(guī)則61
4.1 主鍵約束——PRIMARY KEY61
4.1.1 在創(chuàng)建表時設(shè)置單一列的主鍵約束61
4.1.2 在創(chuàng)建表時設(shè)置聯(lián)合主鍵64
4.1.3 在修改表時添加單一列的主鍵約束65
4.1.4 在修改表時添加聯(lián)合主鍵67
4.1.5 刪除主鍵約束67
4.2 唯一約束——UNIQUE68
4.2.1 在創(chuàng)建表時設(shè)置一列的唯一約束68
4.2.2 在創(chuàng)建表時為多個列設(shè)置唯一約束70
4.2.3 在創(chuàng)建表時為多個列設(shè)置共同的唯一約束71
4.2.4 在修改表時添加一個列的唯一約束72
4.2.5 在修改表時添加多個列的共同唯一約束72
4.3 外鍵約束——FOREIGN KEY73
4.4 非空約束75
4.5 檢查約束——CHECK77
4.6 刪除和禁用約束79
4.7 規(guī)則81
第5章 數(shù)據(jù)操作84
5.1 查詢語句84
5.1.1 查詢語句的基本結(jié)構(gòu)84
5.1.2 SELECT...FROM的使用87
5.1.3 WHERE子句的使用88
5.1.4 使用DISTINCT語句刪除重復(fù)結(jié)果信息90
5.1.5 GROUP BY子句的使用92
5.1.6 HAVING子句的使用95
5.1.7 BETWEEN的使用96
5.1.8 模糊查詢的實現(xiàn)97
5.2 數(shù)據(jù)的增加——INSERT103
5.2.1 把數(shù)據(jù)直接插入表中103
5.2.2 向數(shù)據(jù)表中添加多行數(shù)據(jù)107
5.2.3 從其他表中添加數(shù)據(jù)108
5.2.4 插入NULL值111
5.3 數(shù)據(jù)的修改——UPDATE113
5.3.1 更新某一列的數(shù)據(jù)113
5.3.2 按條件更新數(shù)據(jù)114
5.3.3 更改數(shù)據(jù)字段中的NULL值116
5.3.4 通過視圖更新數(shù)據(jù)117
5.4 數(shù)據(jù)的刪除——DELETE119
5.4.1 按條件刪除數(shù)據(jù)119
5.4.2 通過視圖刪除表數(shù)據(jù)121
5.4.3 刪除全部數(shù)據(jù)122
5.4.4 使用TRUNCATE TABLE語句123
第6章 函數(shù)125
6.1 字符串函數(shù)125
6.1.1 返回字符串中最左側(cè)字符的ASCII 函數(shù)——ASCII125
6.1.2 變換字符串函數(shù)——TRANSLATE127
6.1.3 用指定值替代NULL值函數(shù)——
COALESCE129
6.1.4 左填充函數(shù)——LPAD130
6.1.5 右填充函數(shù)——RPAD132
6.1.6 查找字符串所在的位置函數(shù)——INSTR134
6.1.7 獲取字符串長度的函數(shù)——LENGTH135
6.1.8 轉(zhuǎn)換小寫字母函數(shù)——LOWER136
6.1.9 轉(zhuǎn)換大寫字母函數(shù)——UPPER138
6.1.10 替換字符串函數(shù)——REPLACE139
6.1.11 獲取字符串子串函數(shù)——SUBSTR141
6.1.12 從左去除字符串中的字符函數(shù)——
LTRIM143
6.1.13 從右去除字符串中的字符函數(shù)——
RTRIM144
6.1.14 組合字符串函數(shù)——CONCAT145
6.1.15 判斷是否為空函數(shù)——NULLIF147
6.2 日期函數(shù)149
6.2.1 獲取當前日期的函數(shù)——
CURRENT_DATE149
6.2.2 獲取當前的日期和時間函數(shù)——
CURRENT_ TIMESTAMP、
LOCALTIMESTAMP149
6.3 數(shù)學(xué)函數(shù)151
6.3.1 取絕對值函數(shù)——ABS151
6.3.2 余弦函數(shù)——COS152
6.3.3 求冪函數(shù)——POWER154
6.3.4 四舍五入函數(shù)——ROUND155
6.3.5 正弦函數(shù)——SIN158
6.3.6 取平方根函數(shù)——SQRT函數(shù)159
6.3.7 正切函數(shù)——TAN160
6.4 類型轉(zhuǎn)換函數(shù)——CAST162
6.5 聚合函數(shù)163
6.5.1 求平均值函數(shù)——AVG163
6.5.2 求個數(shù)函數(shù)——COUNT165
6.5.3 求最大值函數(shù)——MAX166
6.5.4 求最小值函數(shù)——MIN168
6.5.5 求和函數(shù)——SUM169
6.5.6 聚合函數(shù)的組合使用170
6.6 使用CASE值表達式171
第7章 子查詢173
7.1 子查詢簡單應(yīng)用173
7.1.1 子查詢概述173
7.1.2 在多表中使用子查詢174
7.1.3 在子查詢中使用聚合函數(shù)177
7.1.4 使用ANY或ALL運算符179
7.2 使用子查詢維護數(shù)據(jù)181
7.2.1 子查詢在INSERT語句中的使用181
7.2.2 子查詢在UPDATE語句中的使用182
7.2.3 子查詢在DELETE語句中的使用184
7.3 使用IN語句的子查詢184
7.3.1 簡單的IN語句子查詢185
7.3.2 使用IN語句子查詢實現(xiàn)集合交運算185
7.3.3 使用IN語句子查詢實現(xiàn)集合差運算186
7.4 使用EXISTS語句的子查詢187
7.4.1 簡單的EXISTS語句子查詢187
7.4.2 使用EXISTS語句子查詢實現(xiàn)兩表交集189
7.4.3 使用EXISTS語句子查詢實現(xiàn)兩表并集190
7.4.4 使用NOT EXISTS的子查詢190
7.5 相關(guān)子查詢191
7.5.1 使用IN語句子查詢引入相關(guān)子查詢191
7.5.2 在HAVING子句中使用相關(guān)子查詢192
7.6 UNIQUE子查詢194
7.7 嵌套子查詢195
第8章 高級查詢197
8.1 連接查詢197
8.1.1 連接的概念197
8.1.2 內(nèi)連接199
8.1.3 使用表的別名203
8.1.4 自連接204
8.1.5 自然連接205
8.1.6 左外連接——LEFT OUTER JOIN207
8.1.7 右外連接——RIGHT OUTER JOIN210
8.1.8 全外連接——FULL JOIN211
8.1.9 在外連接中使用聚合函數(shù)213
8.2 組合查詢215
8.2.1 集合運算基礎(chǔ)215
8.2.2 使用UNION組合查詢結(jié)果216
8.2.3 使用UNION組合多個數(shù)據(jù)表219
8.2.4 UNION與UNION ALL組合應(yīng)用220
8.2.5 集合差/集合交運算——
EXCEPT/INTERSECT223
第9章 事務(wù)處理228
9.1 事務(wù)概述228
9.1.1 事務(wù)介紹228
9.1.2 事務(wù)控制的必要性229
9.1.3 事務(wù)的特性230
9.1.4 事務(wù)的狀態(tài)231
章節(jié)摘錄
版權(quán)頁: 插圖: 9.1.3 事務(wù)的特性 事務(wù)是用戶對數(shù)據(jù)庫進行的一系列操作的集合。事務(wù)具有ATOMIC(原子性)、CONSESTENT(一致性)、ISOLATED(隔離性)和DURABLE(永久性)4個特性,其具體含義如下。 原子性:指事務(wù)全有或全無的性質(zhì)。也就是說,事務(wù)是不可分割的操作序列或工作單元,事務(wù)由事務(wù)管理子系統(tǒng)完成。事務(wù)中的所有元素必須作為一個整體提交或回滾。例如,在銀行系統(tǒng)中,通過一個事務(wù)來更新兩個賬戶余額,如果該事務(wù)提交了,則這兩個賬戶的數(shù)據(jù)就會更新,如果事務(wù)在成功更新這兩個賬戶之前終止,則不會更新這兩個賬戶余額,并且會撤銷對任何賬戶余額的修改,如圖9.2所示。 一致性:事務(wù)中任何數(shù)據(jù)的變化都必須符合數(shù)據(jù)定義的規(guī)則。當事務(wù)完成時,數(shù)據(jù)必須處于一致狀態(tài)。事務(wù)不能使數(shù)據(jù)存儲處于不穩(wěn)定的狀態(tài),即通過事務(wù)對數(shù)據(jù)所做的修改不能損壞數(shù)據(jù)。在關(guān)系型數(shù)據(jù)庫中,所有的規(guī)則必須應(yīng)用到事務(wù)的修改上,以便維護所有數(shù)據(jù)的完整性。例如,在銀行系統(tǒng)中,事務(wù)開始前,兩個賬產(chǎn)余額的總額處于一致的狀態(tài),事務(wù)進行過程中,一個賬產(chǎn)余額改變,另一個賬戶余額未改變,則這兩個賬戶余額的總額處于不一致狀態(tài),當事務(wù)完成后,賬戶余額的總額就恢復(fù)為一致的狀態(tài)。 隔離性:多個事務(wù)同時進行,它們之間應(yīng)該互不干擾。當事務(wù)執(zhí)行修改數(shù)據(jù)操作時,如果任何其他進程正在同時使用相同的數(shù)據(jù),則直到該事務(wù)成功提交后,對數(shù)據(jù)的修改才能生效。 永久性:一旦由事務(wù)引發(fā)了變化,事務(wù)提交以后,所做的工作就被永久保存下來,即使硬件和應(yīng)用程序發(fā)生錯誤,也必須保證對數(shù)據(jù)所做的修改不受影響。 9.1.4 事務(wù)的狀態(tài) 一般將事務(wù)的執(zhí)行劃分為以下幾種狀態(tài)。 活動狀態(tài):事務(wù)執(zhí)行時所處的狀態(tài)。 部分提交狀態(tài):最后一條語句被執(zhí)行后。 失敗狀態(tài):發(fā)現(xiàn)正常的執(zhí)行不能繼續(xù)后。 中止狀態(tài):事務(wù)回滾并且數(shù)據(jù)庫已被恢復(fù)到事務(wù)開始執(zhí)行前的狀態(tài)后。 提交狀態(tài):事務(wù)成功完成后。 提交的或中止的事務(wù)被稱為已經(jīng)結(jié)束的事務(wù)。事務(wù)執(zhí)行時,各種狀態(tài)的關(guān)系可表示為圖9.3所示。
編輯推薦
《腦動力:SQL語言實務(wù)速查效率手冊》語言簡潔,示例豐富,簡單易學(xué),適合各種數(shù)據(jù)庫編程人員,尤其適合SQL的初學(xué)者使用,同時也是用于查詢SQL知識點的字典書。
圖書封面
評論、評分、閱讀與下載