MySQL數據庫重點概要總結

  • 目錄
  • 前言:
    • 1、結構化查詢語言(Structured Query Language)簡稱SQL。
    • 2、基本SELECT語句語法
    • 3、多表鏈接
    • 4、笛卡爾積
    • 5、ANSI SQL ANSI SQL:1999標準的連接語法
    • 6、單行函數和分組函數的區別:
    • 7、分組函數
    • 8、SQL語句的執行順序:
    • 9、子查詢:
    • 10、Data Manipulation Language ,簡稱DML,主要用來實現對 數據庫表中的數據進行操作
    • 11、多行子查詢
    • 總結:

目錄

前言:

最近由于工作需要,把數據庫的知識復習了一遍。以下是自己總結的一些個人認為比較重要的知識點(有些是個人不太熟的知識點就記下來當筆記吧),如有不足或錯誤,請大家及時指出。

1、結構化查詢語言(Structured Query Language)簡稱SQL。

2、基本SELECT語句語法

SELECT [DISTINCT]{ |column|expression [alias],...} FROM table; 

3、多表鏈接

連接是在多個表之間通過 定的連接條件 連接是在多個表之間通過一定的連接條件,使表之間發生關聯,進而能從多個表之間獲取數據

  • N個表相連時,至少需要N-1個連接條件

4、笛卡爾積

第一個表中的所有行和第二個表中的所有行都發生連接。

笛卡爾積的寫法

SQL> SELECT emp.empno, emp.ename, emp.deptno,
2 dept.deptno, dept.loc
3 FROM emp, d t ep ;

5、ANSI SQL ANSI SQL:1999標準的連接語法

SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING ( USING (column name column_name)] |
[JOIN table2
ON(table1.column_name = table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN [LEFT|RIGHT|FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name)];

6、單行函數和分組函數的區別:

這里寫圖片描述

7、分組函數

– 分組函數是對表中一組記錄進行操作,每組只返回一個結果,即首先要對表記錄進行分組,然后再進行操作匯總, 每組返回一個結果,分組時可能是整個表分為一組,也可能根據條件分成多組。

  • 分組函數常用到以下五個函數:

? MIN
? MAX
? SUM
? AVG
? COUNT

  • 常用的語法格式:
SELECT [column,] group_function(column)
FROM tab el
[WHERE condition]
[GROUP BY column]
[HAVING group_function(column)expression
[ORDER BY column| group_function(column)expression];
  • 一些錯誤案例:

這里寫圖片描述

8、SQL語句的執行順序:

這里寫圖片描述

  • SELECT語句執行過程:

– 1.通過FROM子句中找到需要查詢的表 子句中找到需要查詢的表;
– 2.通過WHERE子句進行非分組函數篩選判斷;
– 3.通過GROUP BY子句完成分組操作;
– 4.通過HAVING子句完成組函數篩選判斷;
– 5.通過SELECT子句選擇顯示的列或表達式及組函數;
– 6.通過ORDER BY子句進行排序操作。

  • 案例

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

9、子查詢:

這里寫圖片描述

子查詢語法:

SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);

? 括號內的查詢叫做子查詢,也叫內部查詢,先于主查詢執行
? 子查詢的結果被主查詢(外部查詢)使用
? expr operator包括比較運算符。
單行運算符:>、=、>=、<、<>、<=
多行運算符: IN、ANY、ALL
? 子查詢可以嵌于以下SQL子句中:
–WHERE子句
–HAVING子句
–FROM子句

這里寫圖片描述
? 子查詢使用指導
–子查詢要用括號括起來
–將子查詢放在比較運算符的右邊
–對于單行子查詢要使用單行運算符 (單行子查詢是針對子查詢的返回值只有一個)
–對于多行查詢要使用多行運算符

錯誤案例(子查詢中使用分組函數返回多個結果):
這里寫圖片描述

10、Data Manipulation Language ,簡稱DML,主要用來實現對 數據庫表中的數據進行操作

  • 索引( INDEX ):

– 是對數據庫表中一個或多個列的值進行排序的一種數據庫對象
– 在數據庫中,通過索引可以加速對表的查詢速度;

索引缺點
? 占用空間;
? 降低DML的操作速度;

適合創建索引情況
? 表數據量很大
? 要查詢的結果集在2%-4%左右
? 經常用來做WHERE條件中的列或者多表連接的列
? 查詢列的數據范圍分布很廣
? 查詢列中包含大量的NULL值,因為空值不包含在索引中

不適合創建索引情況
? 數據量很小的表
? 在查詢中不常用來作為查詢條件的列
? 頻繁更新的表
? 索引列作為表達式的一部分被使用時,比如常查詢的條件是SALARY*12 SALARY*12,此時在SALARY列上創建索引是沒有效果的
? 查詢條件中有單行函數時,用不上索引。

11、多行子查詢

–子查詢返回記錄的條數 可以是一條或多條。
–和多行子查詢進行比較時,需要使用多行操作符,多行操作符包括:
? IN
? ANY
? ALL
–IN操作符和以前介紹的功能一致,判斷是否與子查詢 的任意一個返回值相同。(單行子查詢操作符不能接子查詢中含有分組函數執行語句的情況)
這里寫圖片描述
ANY的使用
– ANY:表示和子查詢的任意一行結果進行比較,有一個滿足 條件即可。
? < ANY:表示小于子查詢結果集中的任意 表示小于子查詢結果集中的任意一個 ,即小于最 大值就可以。
? > ANY:表示大于子查詢結果集 個 中的任意一 ,即大于最小值就可以。
? = ANY:表示等于子查詢結果中的任意一個,即等于誰都 可以,相當于IN。
這里寫圖片描述
? ALL的使用
– ALL:表示和子查詢的所有行結果進行比較,每一行必須都 滿足條件。
? < ALL:表示小于子查詢結果集中的所有行 表示小于子查詢結果集中的所有行,即小于最小 值。
? > ALL:表示大于子查詢結果集 行 中的所有 ,即大于最大 值。
? = ALL :表示等于子查詢結果集中的所有行,即等于所有值,通常無意義。
這里寫圖片描述

總結:

SQL這塊需要掌握以下這些知識點:

  • 掌握單表查詢、多表查詢、分組、子查詢等查詢方法,能寫出相對復雜的查詢語句,重點中的重點
  • 掌握Oracle數據庫常用的單行函數及分組函數。
  • 掌握插入數據、修改數據、刪除數據語句。
    總結成一句話就是能夠利用SQL進行數據分析就OK了。
    除此之外還需要了解一些相關的數據庫概念。這里就不一一列舉了。如果各位網友看完之后想練下手,(含有各種版本數據庫的建表數據和對應的案例練習題以及答案)
    請參考:https://blog.csdn.net/qq_16633405/article/details/78483269

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《MySQL排錯指南》——1.9 許可問題

本節書摘來自異步社區出版社《MySQL排錯指南》一書中的第1章&#xff0c;第1.9節&#xff0c;作者&#xff1a;【美】Sveta Smirnova&#xff08;斯維特 斯米爾諾娃&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.9 許可問題 MySQL有復雜的…

畢業半年,碼過5個城市

時間飛逝&#xff0c;半年前我還在想我的畢業設計要怎么做&#xff0c;還在擔心自己的答辯能夠拿多少分&#xff0c;而此刻我正在成都寫我喜歡的代碼&#xff0c;過著我想過的生活。畢業半年&#xff0c;碼過5個城市&#xff0c;從廈門->太原-》合肥-》北京-》成都。2016是我…

python ---單例(Singleton)

單例&#xff08;Singleton&#xff09; 單例是一種 設計模式 &#xff0c;應用該模式的類只會生成一個實例。 單例模式保證了在程序的不同位置都 可以且僅可以取到同一個對象實例 &#xff1a;如果實例不存在&#xff0c;會創建一個實例&#xff1b;如果已存在就會返回這個實例…

Oracle-11g-R2 RAC 環境下 GPnP Profile 文件

GPnP Profile 文件的作用&#xff1a; GPnP Profile 文件是一個保存于$GRID_HOME/gpnp/<hostname>/profiles/peer目錄下的小型 XML 文件&#xff0c;名稱為 profile.xml。其用于正確描述 RAC 每個節點的全局特性。每個節點上都會保存一個本地的 GPnP Profile&#xff0c;…

《Pro/ENGINEER野火版5.0從入門到精通》——2.5 設置零件單位

本節書摘來自異步社區《Pro/ENGINEER野火版5.0從入門到精通》一書中的第2章&#xff0c;第2.5節&#xff0c;作者 暴風創新科技&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.5 設置零件單位 由于不同國家單位制的不相同&#xff0c;在企業間合作或溝通…

元類被稱為 Python 中的“深奧的巫術“

元類被稱為 Python 中的“深奧的巫術”。盡管你需要用到它的地方極少&#xff08;除非你基于 zope 編程&#xff09;&#xff0c;可事實上它的基礎理論其實令人驚訝地易懂。 一切皆對象 一切都有類型 “class”和“type”之間本質上并無不同 類也是對象 它們的類型是 type 以…

機器學習之必知開源數據集

之前看到的不錯的文章&#xff0c;玩機器學習數據是關鍵&#xff0c;有了這些東西&#xff0c;你就不必再為沒有數據而苦惱。 轉自&#xff1a;https://www.toutiao.com/i6432197108580745730/ 目錄UCIGoogleTrendsKaggleAWS公用數據集ImagenetMINIST/r/數據集其他數據集 目錄…

PHP中header函數的用法及其注意重點是什么呢

1、使用header函數進行跳轉頁面&#xff1b; header(Location:.$url);  其中$url就是將要跳轉的url了。 這種用法的注意事項有以下幾點&#xff1a; ?Location和":"之間不能有空格&#xff0c;否則會出現錯誤&#xff08;注釋&#xff1a;我剛測試了&#xff0c;在…

《計算機科學概論》—第3章3.3節文本表示法

本節書摘來自華章出版社《計算機科學概論》一書中的第3章&#xff0c;第3.3節文本表示法&#xff0c;作者&#xff3b;美]內爾黛爾&#xff08;Nell Dale&#xff09;約翰路易斯&#xff08;John Lewis&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“華章計算機”公眾…

習題

# -*- coding: utf-8 -*- # Time : 2019/08/08 17:38 # Author : Liu # File : zuoye.py# 一、 # 將此功能定義成一個函數&#xff0c; # 電腦隨機生成1~100隨機數&#xff0c;用戶輸入一個數字&#xff0c;電腦提示用戶大或者小&#xff0c;猜錯&#xff0c;繼續提示&a…

經典技術面試指南

目錄計算機基礎知識數據結構算法操作系統計算機網絡數據庫海量數據處理C語言基礎Java基礎Java高級Java Web設計模式知識的綜合能力工具使用項目相關技術熱情表達能力思考方式其他推薦閱讀 目錄 最近看到一份不錯的面試總結&#xff0c;也是每位程序猿都應該掌握的基礎&#x…

Linux 共享內存詳解一

共享內存段被多個進程附加的時候&#xff0c;如果不是所有進程都已經調用shmdt&#xff0c;那么刪除該共享內存段時&#xff0c;會出現一個臨時的不完整的共享內存段&#xff08;key值是0&#xff09;&#xff0c;無法徹底刪除。只有當所有進程都調用shmdt&#xff0c;這個臨時…

python 魔術方法

python 魔術方法 常用魔術方法 魔術方法就是一個類的特殊方法&#xff0c;和普通方法唯一的不同時&#xff0c;普通方法需要調用&#xff01;而魔術方法由系統自動調用。 1.__init__ 初始化魔術方法 觸發時機&#xff1a;初始化對象時觸發&#xff08;不是實例化觸發&#xf…

Storm ack和fail機制再論

之前對這個的理解有些問題&#xff0c;今天用到有仔細梳理了一遍&#xff0c;記錄一下 首先開啟storm tracker機制的前提是&#xff0c; 1. 在spout emit tuple的時候&#xff0c;要加上第3個參數messageid 2. 在配置中acker數目至少為1 3. 在bolt emit的時候&#xff0c;要加…

Storm編程模型總結

目錄前言&#xff1a;1、Storm編程模型2、對應的的WordCount案例總結&#xff1a; 目錄 前言&#xff1a; 對于Storm的編程模型有必要做一個詳細的介紹&#xff08;配合WC案例來介紹&#xff09; 1、Storm編程模型 上圖中組件的解釋&#xff1a; DataSource&#xff1a;外…

13_觀察者模式

【觀察者模式】 也叫作發布/訂閱模式&#xff0c;使用較為頻繁。 定義了對象間一種一對多的依賴關系&#xff0c;當一個對象改變狀態時&#xff0c;則所有依賴于它的對象都會得到通知并被自動更新。 觀察者模式由以下幾個角色組成&#xff1a; * Subject 被觀察者 定義被觀察者…

【python】內建異常類的層次

內建異常類的層次 BaseException-- SystemExit-- KeyboardInterrupt-- GeneratorExit-- Exception-- StopIteration-- StopAsyncIteration-- ArithmeticError| -- FloatingPointError| -- OverflowError| -- ZeroDivisionError-- AssertionError-- AttributeError-- …

《黑客秘笈——滲透測試實用指南》—第2章2.3節 外部或內部的主動式信息收集...

本節書摘來自異步社區《黑客秘笈——滲透測試實用指南》一書中的第2章2.3節 外部或內部的主動式信息收集&#xff0c;作者【美】Peter Kim&#xff08;彼得 基姆&#xff09;,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.3 外部或內部的主動式信息收集黑客秘笈——…

Storm集群的安裝及簡單使用

目錄前言&#xff1a;1、集群部署的基本流程2、Storm常用操作命令&#xff08;了解&#xff09;3、Storm集群的進程及日志熟悉&#xff08;知道對應的日志的位置出了問題知道去哪找原因&#xff09;4、Storm源碼目錄分析&#xff08;重要&#xff09;總結&#xff1a; 目錄 前…

【python】錯誤、異常和文件---復習筆記

錯誤、異常和文件 1. 異常處理 錯誤指的是代碼有語法問題&#xff0c;無法解釋運行&#xff0c;必須改正后才能運行 如果代碼沒有語法問題&#xff0c;可以運行&#xff0c;但會出運行時的錯誤&#xff0c;例如除零錯誤&#xff0c;下標越界等問題&#xff0c;這種在運行期間…