偶然間從朋友那看到了這本書(《SQL基礎教程》MICK著),感覺還不錯,於是花了4個小時認真地過了一遍,在這裡簡單地總結一下要點(個人觀點)。
SQL不區分關鍵字的大小寫
SQL語句中表示字符串用單引號'將字符括起來
修改表名
SQL注釋
--:單行注釋,即-- 加上半角空格
/* */:可進行多行注釋
NOT運算符
AND運算符的優先級高於OR
SQL中的邏輯運算是三值邏輯,即真、假和不確定(NULL)
聚合函數會默認將NULL值排除
count(*):查找的是包含NULL在內的全部數據行數
count(1)或者count(column_name):不包含NULL在內的數據行數
sum(column_name):column_name為NULL或為零,其計算效果是一樣的
avg(column_name):NULL值和零值,其計算效果是不一樣的(分母不一樣)
聚合函數可以在SELECT子句、HAVING子句和ORDER BY子句中使用
COUNT等函數對表中的數據進行聚合操作時,DBMS內部會先進行排序處理
GROUP BY子句的聚合結果是無序的
ORDER BY字句中可以使用SELECT字句中已定義的列的別名
兩個詞:INSERT INTO, DELETE FROM, UPDATE SET, DROP TABLE
UPDATE tblname SET (name1, name2, name3) = (Name1, Name2, Name3) WHERE .
UPDATE tblname SET name1 = Name11, name2 = Name12 WHERE .
事務是需要在同一個處理單元中執行的一系列更新處理的集合
ACID
Atomicity
Consistency:滿足約束
Isolation: 不同事務間不相干擾
Durability
視圖的定義中不能包含ORDER BY子句
標量子查詢就是返回單一值的子查詢
字符串拼接函數||在SQL和MySQL中無法使用,等價的函數是CONCAT(str1, str2, str3)
EXTRACT(日期元素 FROM 日期)
類型轉換函數:CAST(xx AS yy)
NULL值轉換函數:COALESCE(str1, str2, str3) 會返回可變參數中左側開始第一個不是NULL的值
謂詞
LIKE: %, _
EXIST, NOT EXIST
CASE表達式
集合運算
JOIN
內連接:INNER JOIN
外連接:OUTER JOIN 選擇主表
交叉連接:CROSS JOIN -- 笛卡爾積
窗口函數窗口函數:OLAP(OnLine Analytical Processing)函數,對資料庫數據進行實時分析處理,如市場分析、財務報表、創建計劃等; 可以進行排序、生成序列等一般的聚合函數無法實現的高級操作
語法 <窗口函數> OVER ([PARTITION BY <列清單>] ORDER BY <排序清單>)
專用窗口函數
聚合函數作為窗口函數使用
SUM, AVG, COUNT, MIN, MAX等 都是進行累計統計的,和GROUP BY 不同
指定框架(統計範圍)
AVG(col1) OVER (ORDER BY col2 ROWS 2 PRECEDING)
使用了ROWS和PRECEDING關鍵字制定了框架,即統計對象先定位「截止到之前2行」
AVG(col1) OVER (ORDER BY col2 ROWS 2 FOLLOWING) 「截止到之後~行」
OVER 字句中的 ORDER BY 只是用來決定窗口函數按照什麼順序進行計算的,對最後結果的排序沒有影響!
GROUPING運算符可以同時計算出小計值、合計值
ROLL UP同時計算出合計值和小計值
GROUP BY ROLL UP(col1, col2), 在MySQL中要改寫為GROUP BY col1 with ROLLUP
上述語句即相當於GROUP BY ()(超級分組記錄)和GROUP BY (col1)和GROUP BY (col1, col2)的結果
GROUPING函數 可判斷超級分組記錄中的NULL值
CUBE即將GROUP BY子句中聚合鍵的所有「可能組織」的聚合結果集中到一個結果中
GROUPING SETS 可以從 ROLLUP或者CUBE的記過中取出部分記錄
相關圖書推薦
作者:MICK
譯者:孫淼 羅勇
定價:79.00元
【和第1版有何不同?】
★ 更新!
將示例程序更新為對應新版本的RDBMS,即Oracle Database 12cR1、SQL Server 2014、DB2 10.5、PostgreSQL 9.5.3、MySQL 5.7。
★ 更全!
新增一章介紹從應用程式執行SQL語句的方法。
★ 更本土化!
針對讀者反映的第1版中示例程序中使用「日式拼音」的問題,第2版中已全部更新為英文。
作者:MICK
譯者:吳炎昌
定價:79.00元
資料庫工程師進階中級實用指南
挖掘SQL常見技術的新用法
適合具有一定SQL編程經驗的工程師閱讀
全書可分為兩部分,第一部分介紹了SQL語言不同尋常的使用技巧,帶領讀者從SQL常見技術,比如CASE表達式、自連接、HAVING 子句、外連接、關聯子查詢、EXISTS……去探索新發現。 這部分不僅穿插講解了這些技巧背後的邏輯和相關知識,而且輔以豐富的示例程序,旨在幫助讀者提升編程水平;第二部分著重介紹關係資料庫的發展史,把實踐與理論結合起來,旨在幫助讀者加深對關係資料庫和SQL語言的理解。此外,每節末尾均設置有練習題,並在書末提供了解答,方便讀者檢驗自己對書中知識點的掌握程度。
☟ 點擊【閱讀原文】京東購買《SQL基礎教程(第2版)》