MySQL数据库重点概要总结
- 目錄
- 前言:
- 1、結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL。
- 2、基本SELECT語(yǔ)句語(yǔ)法
- 3、多表鏈接
- 4、笛卡爾積
- 5、ANSI SQL ANSI SQL:1999標(biāo)準(zhǔn)的連接語(yǔ)法
- 6、單行函數(shù)和分組函數(shù)的區(qū)別:
- 7、分組函數(shù)
- 8、SQL語(yǔ)句的執(zhí)行順序:
- 9、子查詢:
- 10、Data Manipulation Language ,簡(jiǎn)稱DML,主要用來(lái)實(shí)現(xiàn)對(duì) 數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行操作
- 11、多行子查詢
- 總結(jié):
目錄
前言:
最近由于工作需要,把數(shù)據(jù)庫(kù)的知識(shí)復(fù)習(xí)了一遍。以下是自己總結(jié)的一些個(gè)人認(rèn)為比較重要的知識(shí)點(diǎn)(有些是個(gè)人不太熟的知識(shí)點(diǎn)就記下來(lái)當(dāng)筆記吧),如有不足或錯(cuò)誤,請(qǐng)大家及時(shí)指出。
1、結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL。
2、基本SELECT語(yǔ)句語(yǔ)法
SELECT [DISTINCT]{ |column|expression [alias],...} FROM table;3、多表鏈接
連接是在多個(gè)表之間通過(guò) 定的連接條件 連接是在多個(gè)表之間通過(guò)一定的連接條件,使表之間發(fā)生關(guān)聯(lián),進(jìn)而能從多個(gè)表之間獲取數(shù)據(jù)。
- N個(gè)表相連時(shí),至少需要N-1個(gè)連接條件
4、笛卡爾積
第一個(gè)表中的所有行和第二個(gè)表中的所有行都發(fā)生連接。
笛卡爾積的寫法
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標(biāo)準(zhǔn)的連接語(yǔ)法
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、單行函數(shù)和分組函數(shù)的區(qū)別:
7、分組函數(shù)
– 分組函數(shù)是對(duì)表中一組記錄進(jìn)行操作,每組只返回一個(gè)結(jié)果,即首先要對(duì)表記錄進(jìn)行分組,然后再進(jìn)行操作匯總, 每組返回一個(gè)結(jié)果,分組時(shí)可能是整個(gè)表分為一組,也可能根據(jù)條件分成多組。
- 分組函數(shù)常用到以下五個(gè)函數(shù):
? MIN
? MAX
? SUM
? AVG
? COUNT
- 常用的語(yǔ)法格式:
- 一些錯(cuò)誤案例:
8、SQL語(yǔ)句的執(zhí)行順序:
- SELECT語(yǔ)句執(zhí)行過(guò)程:
– 1.通過(guò)FROM子句中找到需要查詢的表 子句中找到需要查詢的表;
– 2.通過(guò)WHERE子句進(jìn)行非分組函數(shù)篩選判斷;
– 3.通過(guò)GROUP BY子句完成分組操作;
– 4.通過(guò)HAVING子句完成組函數(shù)篩選判斷;
– 5.通過(guò)SELECT子句選擇顯示的列或表達(dá)式及組函數(shù);
– 6.通過(guò)ORDER BY子句進(jìn)行排序操作。
- 案例
9、子查詢:
子查詢語(yǔ)法:
SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table);? 括號(hào)內(nèi)的查詢叫做子查詢,也叫內(nèi)部查詢,先于主查詢執(zhí)行。
? 子查詢的結(jié)果被主查詢(外部查詢)使用
? expr operator包括比較運(yùn)算符。
–單行運(yùn)算符:>、=、>=、<、<>、<=
–多行運(yùn)算符: IN、ANY、ALL
? 子查詢可以嵌于以下SQL子句中:
–WHERE子句
–HAVING子句
–FROM子句
? 子查詢使用指導(dǎo)
–子查詢要用括號(hào)括起來(lái)
–將子查詢放在比較運(yùn)算符的右邊
–對(duì)于單行子查詢要使用單行運(yùn)算符 (單行子查詢是針對(duì)子查詢的返回值只有一個(gè))
–對(duì)于多行查詢要使用多行運(yùn)算符
錯(cuò)誤案例(子查詢中使用分組函數(shù)返回多個(gè)結(jié)果):
10、Data Manipulation Language ,簡(jiǎn)稱DML,主要用來(lái)實(shí)現(xiàn)對(duì) 數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行操作
- 索引( INDEX ):
– 是對(duì)數(shù)據(jù)庫(kù)表中一個(gè)或多個(gè)列的值進(jìn)行排序的一種數(shù)據(jù)庫(kù)對(duì)象。
– 在數(shù)據(jù)庫(kù)中,通過(guò)索引可以加速對(duì)表的查詢速度;
索引缺點(diǎn)
? 占用空間;
? 降低DML的操作速度;
適合創(chuàng)建索引情況
? 表數(shù)據(jù)量很大
? 要查詢的結(jié)果集在2%-4%左右
? 經(jīng)常用來(lái)做WHERE條件中的列或者多表連接的列
? 查詢列的數(shù)據(jù)范圍分布很廣
? 查詢列中包含大量的NULL值,因?yàn)榭罩挡话谒饕?/p>
不適合創(chuàng)建索引情況
? 數(shù)據(jù)量很小的表
? 在查詢中不常用來(lái)作為查詢條件的列
? 頻繁更新的表
? 索引列作為表達(dá)式的一部分被使用時(shí),比如常查詢的條件是SALARY*12 SALARY*12,此時(shí)在SALARY列上創(chuàng)建索引是沒(méi)有效果的
? 查詢條件中有單行函數(shù)時(shí),用不上索引。
11、多行子查詢
–子查詢返回記錄的條數(shù) 可以是一條或多條。
–和多行子查詢進(jìn)行比較時(shí),需要使用多行操作符,多行操作符包括:
? IN
? ANY
? ALL
–IN操作符和以前介紹的功能一致,判斷是否與子查詢 的任意一個(gè)返回值相同。(單行子查詢操作符不能接子查詢中含有分組函數(shù)執(zhí)行語(yǔ)句的情況)
ANY的使用
– ANY:表示和子查詢的任意一行結(jié)果進(jìn)行比較,有一個(gè)滿足 條件即可。
? < ANY:表示小于子查詢結(jié)果集中的任意 表示小于子查詢結(jié)果集中的任意一個(gè) ,即小于最 大值就可以。
? > ANY:表示大于子查詢結(jié)果集 個(gè) 中的任意一 ,即大于最小值就可以。
? = ANY:表示等于子查詢結(jié)果中的任意一個(gè),即等于誰(shuí)都 可以,相當(dāng)于IN。
? ALL的使用
– ALL:表示和子查詢的所有行結(jié)果進(jìn)行比較,每一行必須都 滿足條件。
? < ALL:表示小于子查詢結(jié)果集中的所有行 表示小于子查詢結(jié)果集中的所有行,即小于最小 值。
? > ALL:表示大于子查詢結(jié)果集 行 中的所有 ,即大于最大 值。
? = ALL :表示等于子查詢結(jié)果集中的所有行,即等于所有值,通常無(wú)意義。
總結(jié):
SQL這塊需要掌握以下這些知識(shí)點(diǎn):
- 掌握單表查詢、多表查詢、分組、子查詢等查詢方法,能寫出相對(duì)復(fù)雜的查詢語(yǔ)句,重點(diǎn)中的重點(diǎn)。
- 掌握Oracle數(shù)據(jù)庫(kù)常用的單行函數(shù)及分組函數(shù)。
- 掌握插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)語(yǔ)句。
總結(jié)成一句話就是能夠利用SQL進(jìn)行數(shù)據(jù)分析就OK了。
除此之外還需要了解一些相關(guān)的數(shù)據(jù)庫(kù)概念。這里就不一一列舉了。如果各位網(wǎng)友看完之后想練下手,(含有各種版本數(shù)據(jù)庫(kù)的建表數(shù)據(jù)和對(duì)應(yīng)的案例練習(xí)題以及答案)
請(qǐng)參考:https://blog.csdn.net/qq_16633405/article/details/78483269
總結(jié)
以上是生活随笔為你收集整理的MySQL数据库重点概要总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ppt矩形里面的图片怎么放大缩小_PPT
- 下一篇: 【Django】django使用原生SQ