Ⅰ 《sql入門經典第5版》pdf下載在線閱讀全文,求百度網盤雲資源
《SAP入門經典(第5版)》電子書網盤下載免費在線閱讀
鏈接:
書名:SAP入門經典(第5版)
Ⅱ SQL實戰新手入門:N路INNER JOIN
N路INNER JOIN
當兩個表之間不存在直接的關系時該怎麼聯接這兩個表呢?在這種情況下 聯接操作需要涉及更多的表!在上一小節INNER JOIN的練習中已經演示了一個實際的例子
例如 有時我們需要列出所有的圖書以及各圖書相應的作者 請注意 在資料庫中一本圖書並不知道它的作者信息在哪裡(即在BOOKS表的數據行中並沒有關於該圖書作者的信息) 而作者信息的記錄同樣也不知道該作者編寫的圖書的信息在什麼地方 但是 在資料庫中有一個BOOKS_AUTHORS表 它包含了這樣的知識 哪一本圖書是哪一個作者編寫的 以及哪一個作者編寫了哪些圖書 BOOKS_AUTHORS表中的每一行都包含了一個BOOKS表的外鍵和一個AUTHORS表的外鍵 如果一本圖書是由多個作者編寫的 那麼該BOOKS_AUTHORS表中就具有多行記錄 每一行包含了相同的圖書ID和不同的作者ID 反之亦然(對於任何一個編寫了多本圖書的作者)
由於BOOKS表中的數據行沒有對於AUTHORS表的外鍵 AUTHORS表的數據行也沒有對於BOOKS表的外鍵 因此沒有辦法直接將這兩個表聯接起來 但是可以將這兩個表聯接到BOOKS_AUTHORS表
SELECT
books bk_title AS Book
authors au_last_name AS Author
FROM books INNERJOIN books_authors
ON books bk_id = books_authors bk_id
INNER JOIN authors
ON authors au_id = books_authors au_id;
聯接的結果如表 所示 正如我們所期望的 如果一本書的作者超過一位 那麼有多少個作者 在列表中就會列出多少條記錄
表 列出圖書及其相應的作者
在結果集中可能會出現重復的圖書名稱 也可能會出現重復的作者名字 但是圖書名稱與作者名字的每一個組合在結果集中僅僅只會出現一次
接下來分析一下該查詢返回的數據集背後的邏輯 下面是該查詢的第一部分 SELECT欄位列表
SELECT
books bk_title AS Book
authors au_last_name AS Author
該欄位列表並沒有什麼神奇 它告訴查詢引擎我們感興趣的欄位 並為欄位列表中的列定義一個比默認名稱更加可愛的列名(別名) 注意 雖然查詢了多個表 但並非一定要從每一個表中都獲取數據 在本例中 只需要一些來自BOOKS表的欄位和一些來自AUTHORS表的欄位 而並不需要獲取BOOKS_AUTHORS表中的欄位
FROM books INNER JOIN books_authors
ON books bk_id = books_authors bk_id
上面的子句定義了第一個INNER JOIN 指定了要聯接哪兩個表 以及如何聯接這兩個表 在本例中 聯接條件是BOOKS表中的BK_ID列的值必須與BOOKS_AUTHORS表中BK_ID列的值相等(兩個表中的列名不一定要相同 但是相同的列名使用起來會比較方便)
INNER JOIN authors ON authors au_id = books_authors au_id
上面的子句定義了第二個INNER JOIN 請注意它與第一個INNER JOIN子句的不同 在第一個INNER JOIN子句中指定了兩個表 books INNER JOIN books_authors 但在第二個INNERJOIN中僅僅指定了一個表 INNER JOIN authors 這里並不需要指定其他的表 它已經被綁定到之前指定的兩個表中的一個 並且行匹配規則將指定它與哪一個表進行聯接(在本例中 行匹配規則是 AUTHORS表中AU_ID列的值與BOOKS_AUTHORS表中AU_ID列的值相等)
運行該查詢後 如果BOOKS表中包含在BOOKS_AUTHORS表中沒有記錄的圖書 則結果集中不會包含這樣的圖書 如果AUTHORS表中的任何作者在BOOKS_AUTHORS表中並不存在 則結果集中也不會包含這樣的作者
試一試使用四路聯接
如何查詢位於書櫃的頂層書架中名稱以SQL開頭的圖書以及圖書的作者呢?當然 這需要聯接LOCATION表 BOOKS表和AUTHORS表 由於在圖書與圖書的作者之間是一個多對多關系 因此必須包含BOOKS_AUTHORS表作為中間表 以解決多對多關系的復雜性問題 下面將使用Microsoft SQL Server來演示聯接的功能 在本書所討論的其他任何一種RDBMS中 下面的腳本無須修改都能正常運行 下面讓我們來實踐一下吧
( ) 打開Microsoft SQL Server Management Studio 使用Windows身份驗證連接到資料庫
( ) 單擊左上角的New Query按鈕 輸入下面的SQL查詢
SELECT
au_last_name AS author
bk_title AS title
FROM books bk INNER JOIN books_authors ba
ON bk bk_id = ba bk_id
INNER JOIN authors au
ON ba au_id = au au_id
INNER JOIN location loc
ON bk bk_id = loc fk_bk_loc
WHERE loc loc_shelf =
AND bk bk_title LIKE SQL%
( ) 單擊工具欄上的Execute按鈕 觀察返回的結果
author title
Kriegel SQL Bible
Trukhnov SQL Bible
Kriegel SQL Functions: Programmers Reference
Jones SQL Functions: Programmers Reference
Stephens SQL Functions: Programmers Reference
Plew SQL Functions: Programmers Reference
Garrett SQL Functions: Programmers Reference
( row(s) affected)
示例說明
在之前的例子中 聯接的價值在於盡量減少選取的記錄 直到數據集完全符合指定的篩選標准 在本例中 資料庫引擎將從按照JOIN語句聯接的所有表對中匹配記錄(即BOOKS/BOOKS_AUTHORS BOOKS_AUTHORS/AUTHORS和BOOKS/LOCATION表對) 最後再應用篩選條件 減小數據集 僅僅返回滿足條件LOC_SHELF = 和BK_TITLE以SQL開頭的記錄(請回憶一下帶有LIKE謂詞的匹配模式)
返回目錄 SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
lishixin/Article/program/SQL/201311/16472
Ⅲ SQL實戰新手入門:SQL標准
SQL標准
為了在各個資料庫廠商之間取得更大的統一性 美國國家標准學會(American NationalStandards Institute ANSI)段團祥於 年發布了第一個SQL標准 並於 年發布了第二個版本 該版本已經被廣泛地採用 ANSI在 年更新了SQL標準的版本 即SQL 和SQL 並於 年再次更新為SQL 和SQL 標准 在每一次更新中 ANSI都在SQL中或悔添加了新特性 並在語言中集成了新的命令和功能
對於各種資料庫產品 ANSI標准規范化了很多SQL行為和語法結構 隨著開源資料庫產品(例如MySQL mSQL和PostgreSQL)日漸流行並由虛擬團隊而不是大握搏型公司開發 這些標准變得更加重要
現在 SQL標准由ANSI和國際標准化組織(International Standards Organization ISO)作為ISO/IEC 標准維護 最新發布的SQL標準是SQL: 下一版本的發布工作已經在進行之中 它將包含RDBMS在收集或分發數據方式上的新發展
返回目錄 SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
lishixin/Article/program/SQL/201311/16490
Ⅳ SQL實戰新手入門:前言
前言
信息泛濫並沒有減弱的趨勢 人們被來自電視 Internet和塞滿郵箱的廣告等各種各樣的信息所淹沒 令人遺憾的是 隨著信息數量的增長 信息的質量卻在急劇下降 圖書被期刊和雜志取代 然後被報紙 Web頁面 博客取代 最終又被推特(eet)取代 信息量變得越來越龐大 也變得越來越不可信賴 更糟糕的是 在Internet時代數據永遠不會真正消失 它不停地累積 隱藏在各種文件 日誌和資料庫中 根據Google的前CEO Eric Schmidt的說法 現在人類在兩天之內創造的數據量就相當於自從出現書寫記錄到 年(或者任何一年)所創造的數據 即現在只需要兩天就會創造出大約 EB(即 億GB)的數據 這一步伐還在不停地加速
當以電子化方式存儲數據變成現實之後 它也帶來了自己的規則 要理解數據的含義 人們必須去學習相應的語言 關系資料庫理論為人們帶來了對電子化數據的掌控能力 它採用結構化查詢語言(Structured Query Language SQL)來處理數據 到目前為止 關系資料庫獲取了巨大的成功
自從 世紀 年代第一次提出關系資料庫以來 關系資料庫和SQL已經取得了長足的進步 關系資料庫和SQL中包含的那些概念對於初學者來說可能並不直觀 本書將為讀者抽絲剝繭 使讀者理解SQL背後的原理 既讓讀者了解SQL的強大功能 也了解它存在的局限
讀者對象
本書從入門知識開始介紹 讀者無須具備SQL或關系資料庫的預備知識 本書將帶領讀者走入SQL的發現之旅 讀者將親自創建示例資料庫 它不僅結合了本書中所介紹的SQL概念 還將通過幾次反復重構引入數據建模 查詢調整和優化的概念 本書還介紹了一些適用於每一種SQL的最佳實踐
本書適合於准備學習關系資料庫程序設計的計算機程序員 也適合那些希望從資料庫中釋放更強大威力的商業用戶 SQL是關系資料庫世界的通用語言 每一個對學習SQL這門強大語言感興趣的人都適合閱讀本書
先前已具有一定資料庫使用經驗的讀者可以略過前兩章 直接跳到更高級的內容 當然也可以復習一下這兩章中介紹的重要原則
內容提要
本書介紹了當前已發布的SQL標准SQL: 把最主要的精力放在了SQL語言實際的運用上 強調了不同SQL實現之間存在的差異 本書介紹了很多示例 在這些示例中使用了最新版本的現代資料庫系統對SQL的具體實現 這些資料庫要麼是可以免費下載的Express版本 要麼是免費的開源軟體 另外 本書還介紹了目前最流行的桌面型資料庫軟體Microsoft Access和OpenOffice 本書中介紹的資料庫包括
IBM UDB
Oracle g
Microsoft SQL Server / /
MySQL /
PostgreSQL
Microsoft Access /
帶有嵌入式 HSQLDB的OpenOffice BASE
本書結構
本書從整體著眼 向讀者介紹了關系資料庫的一般概念 特別是SQL中的概念 通過一個反復重構資料庫的過程 循序漸進地向讀者介紹了資料庫的各種知識 在這一過程中 對於開始時介紹的每一個概念 隨後都進行了更詳細的分析 從而啟發讀者理解這些概念背後的關聯性
第 章簡要地介紹了SQL及其背後的關系理論 這一章只是浮光掠影般地介紹了資料庫最基本的概念 後面的各章都在此基礎上展開 該章介紹了數據與信息的區別 一些基本的原理還需要在後面章節中進一步解釋 這一章還對本書中所使用的關系資料庫管理系統(RDBMS)進行了一個概述
第 章對這些概念進行了更深入的介紹 根據關系模型的分析 應該將無組織的數據結構化 使之符合關系模型的要求 即將 冰箱磁鐵 模式轉換為 斗櫃 模式 然後再將其轉換為關系資料庫中實際的表
第 章進一步介紹了關系模型 初步介紹了資料庫的基本設計和規范化的基本過程 這一章還介紹了一些對規范化數據執行查詢的SQL工具 此外 該章還介紹了動態SQL
SQL是一種基於集合的語言 這使得它既有強大的功能 也存在一定的局限 第 章討論了最流行的過程化擴展(例如Oracle的PL/SQL和Microsoft的Transact SQL) 這一章還介紹了SQL函數 SQL函數可以作為一種補充手段 以彌補在處理基於記錄的邏輯時SQL存在的固有不足
第 章介紹了聚合數據 總結了這種方式的威力和局限 該章將前面章節中介紹過的SQL聚合函數提高到了一個新的層次 演示了如何使用SQL來獲取數據的聚合值
第 章介紹了子查詢 當數據集是交錯的 查詢數據需要依靠多層次的數據篩選時 可以將一個查詢作為另一個查詢的篩選條件 可以調整SQL語句 用JOIN代替子查詢 這是貫穿本書的主題之一
SQL的強大功能在於處理存儲在多個關系表中的數據 第 章介紹了SQL如何在單個數據集中聯合這些關系表的數據
本書介紹的是基本的SQL概念 打開了進一步學習SQL的大門 第 章是SQL發現之旅的下一站 它介紹了進一步學習SQL時應該考慮的問題
第 章介紹了性能優化技術 描述了在優化查詢和資料庫環境時常用的方法和最佳實踐 第 章討論了多用戶環境中關系資料庫的工作原理 介紹了SQL中實現的處理並發數據訪問的機制
SQL所有的操作都與結構和順序有關 畢竟它是結構化查詢語言 真實的數據可以是各種規模和結構 第 章介紹了SQL如何處理半結構化數據(XML文檔) 非結構化數據(文本文件)和二進制數據(例如圖片和聲音)
第 章簡要地討論了資料庫領域的最新發展 例如列式資料庫 NoSQL資料庫 對象資料庫和面向服務的架構(SOA) 以及它們與SQL的關系
對於本書所討論的每一種資料庫 附錄A按部就班地描述了安裝示例資料庫Library的過程 以及如何使用特定的指令生成Library資料庫的初始數據 可以從本書支持網站上下載到這些SQL腳本
對於本書介紹的關系資料庫軟體包 附錄B提供了一個詳細的安裝步驟
附錄C描述了每一種資料庫所提供的工具 使用這些工具可以訪問 創建資料庫對象 操縱存儲在表中的數據
附錄D介紹了開源項目SQuirreL Universal SQL Client 可以通過Java Database Connectivity(JDBC)介面 使用SQuirreL Universal SQL Client來訪問各種資料庫 該附錄詳細地介紹了如何安裝和配置該軟體
學習本書的條件
為了充分利用本書 建議下載和安裝本書中使用的關系資料庫軟體 這些軟體絕大多數都是免費的 或者具有免費的試用版 可以按照附錄B中介紹的步驟來安裝這些軟體
支持網站和代碼
在學習每一章時 建議下載相應的SQL腳本 創建並生成資料庫 可以從 wrox 或者 agilitator 下載到本書的代碼 在支持網站中 可以使用搜索框來查找指定名稱的圖書 在找到指定的圖書之後 單擊Download Code鏈接就可以訪問允許下載的文件 可以通過HTTP或FTP下載這些代碼 所有的文件都是以ZIP格式保存
本書的ISBN是 通過ISBN號查找本書 要比通過圖書名稱來查找更加方便
此外 還可以從Wrox的下載頁面 wrox /dynamic/books/download aspx下載到本書的代碼 只要單擊Discovering SQL: A Hands On Guide for Beginners鏈接 就可以訪問允許下載的文件
勘誤表
盡管我們已經盡了最大的努力來保證文章或代碼中不出現錯誤 但是錯誤總是難免的 如果您在本書中找到了錯誤 例如拼寫錯誤或代碼錯誤 請告訴我們 我們將非常感激 通過勘誤表 可以讓其他讀者避免走入誤區 當然 這還有助於提供更高質量的信息
要在網站上找到本書英文版的勘誤表 可以登錄// wrox 通過Search工具或書名列表查找本書 然後在本書的細目頁面上 單擊Book Errata鏈接 在這個頁面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項 完整的圖書列表還包括每本書的勘誤表 網址是 wrox /misc pages/booklist s
如果你在勘誤表上沒有找到錯誤 那麼可以到 wrox /contact/techsupport s上完成上面的表格 並把找到的錯誤發送給我們 我們將會核查這些信息 如果無誤的話 會把它放置到本書的勘誤表中 並在本書的後續版本中更正這些問題
p p wrox
要與作者和同行討論 請加入p p wrox 上的P P論壇 這個論壇是一個基於Web的系統 便於您張貼與Wrox圖書相關的消息和相關技術 與其他讀者和技術用戶交流心得 該論壇提供了訂閱功能 當論壇上有新的消息時 它可以給您傳送感興趣的論題 Wrox作者 編輯和其他業界專家和讀者都會到這個論壇上來探討問題
在//p p wrox 上 有許多不同的論壇 它們不僅有助於閱讀本書 還有助於開發自己的應用程序 要加入論壇 可以遵循下面的步驟
( ) 進入p p wrox 單擊Register鏈接
( ) 閱讀使用協議 並單擊Agree按鈕
( ) 填寫加入該論壇所需要的信息和自己希望提供的其他信息 並單擊Submit按鈕
( ) 你會收到一封電子郵件 其中的信息描述了如何驗證賬戶和完成加入過程
不加入P P也可以閱讀論壇上的消息 但要張貼自己的消息 就必須加入該論壇
加入論壇後 就可以張貼新消息 回復其他用戶張貼的消息 可以隨時在Web上閱讀消息 如果要讓該網站給自己發送特定論壇中的消息 可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標
關於使用Wrox P P的更多信息 可閱讀P P FAQ 了解論壇軟體的工作情況以及P P和Wrox圖書的許多常見問題 要閱讀FAQ 可以在任意P P頁面上單擊FAQ鏈接
返回目錄 SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
lishixin/Article/program/SQL/201311/16496
Ⅳ sql資料庫入門
語音吧,我教你
Ⅵ 《SQL入門經典第5版》pdf下載在線閱讀,求百度網盤雲資源
《SQL入門經典》((美)斯蒂芬森)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:SQL入門經典
作者:(美)斯蒂芬森
譯者:井中月
豆瓣評分:7.6
出版社:人民郵電出版社
出版年份:2011-11
頁數:349
內容簡介:《SQL入門經典(第5版)》的作者都是資料庫教學與應用的專家,有著豐富的經驗。《SQL入門經典(第5版)》詳細介紹了SQL語言的基本語法、基本概念,說明了各種SQL實現與ANSI標准之間的差別。書中包含了大量的範例,直觀地說明了如何使用SQL對數據進行處理。每章後面還有針對性很強的測驗與練習,能夠幫助讀者更好地理解和掌握學習的內容。在最後的附錄里還有關於安裝MySQL的詳細介紹、書中用到的關鍵SQL語句、測驗和練習的答案。
《SQL入門經典(第5版)》的內容層次清晰,針對性強,非常適合初學者作為入門教材。
Ⅶ SQL 統計並按照統計排序
排序是我們在數據處理數據分析中經常要用到的方法,今天就簡單介紹一下排序的幾個方法
order by
窗口函數
dense_rank()over(partition by room_id order by live_time desc)
order by xx;代表對xx進行升序排列
order by xx desc 代表對xx進行降序排列,desc表示降序
order by通常跟limit一起搭配
order by xx limit 10代表取xx欄位前10;
order by xx limit 20,20代表取欄位xx排序在21-40之間的值
具體參考下面思維導圖
如果排序列的值相同給相同的序列標簽, 不留排序標簽不跳過,例子如下
Ⅷ sql入門新手教程
1、打開電腦瀏覽器,在網路搜索框中輸入:w3cschool,然後點擊網路按鈕,如圖所示。