查詢語句:1、“select * from 表名;”,可查詢表中全部數(shù)據(jù);2、“select 字段名 from 表名;”,可查詢表中指定字段的數(shù)據(jù);3、“select distinct 字段名 from 表名”,可對表中數(shù)據(jù)進行去重查詢。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
單表查詢
1、普通查詢
(1)命令:select * from ;//通匹
(2)命令:select from ;
2、去重查詢(distinct)
命令:select distinct from
3、排序查詢(order by)
升序:asc
降序:desc
降序排列命令:select from order by desc
不加desc一般默認為升序排列
4、分組查詢(group by)
命令:select , Sum(score) from group by
假設(shè)現(xiàn)在又有一個學生成績表(result)。要求查詢一個學生的總成績。我們根據(jù)學號將他們分為了不同的組。
命令:
mysql>select?id,?Sum(score)?from?result?group?by?id;
多表查詢
一、等值查詢
現(xiàn)在有兩個表:
現(xiàn)在要查詢年齡小于20歲學生的不及格成績。
語句:select stu.id,score from stu,result where stu.id = result.id and age
它的查詢?nèi)缦聢D所示:
可見等值查詢效率太低
二、連接查詢
1、外連接查詢
(1)左外連接查詢
假設(shè)我們依舊使用的是上面的兩個表,任然查詢年齡小于20歲學生的不及格成績
我們利用左外連接查詢,先將學生表中所有年齡小于20歲的學生取出來,再在成績表中將所有成績小于60的學生取出來,然后再進行配對,我們會發(fā)現(xiàn)效率大大得提高,只用匹配四次就可以找到。
如下圖所示:
語句為:
select?a.id,score from (select?id,age?from?stu?where?age?<p>左外連接就是<strong>左表過濾的結(jié)果必須全部存在</strong>。如果存在左表中過濾出來的數(shù)據(jù),右表沒有匹配上,這樣的話右表就會出現(xiàn)NULL;</p><p><strong>(2)右外連接查詢</strong></p><pre class="brush:js;toolbar:false">select?a.id,score ?from ?(select?id,age?from?stu?where?age?<p>左外連接就是<strong>左表過濾的結(jié)果必須全部存在</strong></p><p>如圖:</p><p><img alt="在這里插入圖片描述" src="https://img.php.cn/upload/article/000/000/024/c850ef08b3e941d46675fd314ced3fc2-4.png"></p><p>我們發(fā)現(xiàn)過濾出來的表進行的匹配只有兩條滿足條件(紅色代表條件滿足),但最后的結(jié)果卻是:</p><p><img alt="在這里插入圖片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-5.png"></p><p>左表不匹配的數(shù)據(jù)改為空,右表過濾出來的數(shù)據(jù)都要存在。</p><p><strong>(3)全外連接查詢</strong></p><p>結(jié)合了左外連接和右外連接,使得左表和右表的數(shù)據(jù)都存在。</p><p><strong>2、內(nèi)連接查詢</strong></p><p>只篩選匹配結(jié)果</p><p>比如過濾的結(jié)果如下:</p><p><img alt="在這里插入圖片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-6.png"></p><p>最后的結(jié)果為:</p><p><img alt="在這里插入圖片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-7.png"></p><p>只匹配我們需要的結(jié)果</p><p>語句為:</p><pre class="brush:js;toolbar:false">select?a.id,score ?from ?(select?id,age?from?stu?where?age?<p>【相關(guān)推薦:<a href="https://www.php.cn/course/list/51.html" target="_blank" textvalue="mysql視頻教程">mysql視頻教程</a>】</p>