日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL查询select语句详解

發布時間:2023/12/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL查询select语句详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.查詢記錄

select*from 表名 [where 條件];eg:select*from students;//查詢 students 表中所有記錄,所有字段的值都顯示出來select field1,field2,...fieldn... from 表名 [where 條件];eg:select id,name,age from students;//查詢 students 表中所有記錄, 只顯示出 id,name,age三個字段的值

1.“*”表示將所有的字段都顯示出來

2.用逗號分割,列出需要顯示的字段

?

2.查詢不重復的記錄

select distinct 字段 from 表名;eg: select distinct name from students;//查詢名字不相同的學生;select distinct name,age from students;//查詢名字和年齡同時不同的學生1.distinct必須放在最開頭2.distinct只能使用需要去重的字段進行操作。 ----也就是說我distinct了name,age兩個字段,我后面想根據id進行排序,是不可以的,因為只能name,age兩個字段進行操作.3.distinct去重多個字段時,含義是:幾個字段 同時重復 時才會被 過濾。

?3.條件查詢

select 字段 from 表名 where 條件;eg:select * from student where sex='男' and age>20; //查詢性別是男,并且年齡大于20歲的人。where后面的條件可以用>、<、>=、<=、!=等多種比較運算符,多個條件之間可以用or、and等邏輯運算符

4.排序和限制

排序 select * from 表名 [where 條件] [ order by field1 [desc/asc],field2 [desc/asc]... ];eg:select *from student order by age desc;//查詢學生表并按年齡降序排列。1.desc 降序排列,asc 升序排列 2.order by 后面可以跟多個不同的排序字段,每個排序字段都可以有不同的排序順序。 3.如果排序字段的值一樣,則相同的字段按照第二個排序字段進行排序。 4.如果只有一個排序字段,則字段相同的記錄將會無序排列。

?

限制 select ... [limit 起始偏移量,行數];eg:select * from student order by mark?desc limit 5;//取出成績前五名的學生(省略了起始偏移量,此時默認為0)1.默認情況下,起始偏移量為0,只寫記錄行數就可以。

5.聚合

select 字段 fun_name from 表名 [where 條件] [group by field1,field2...] [with rollup] [having 條件];eg:1.fun_name 表示要做的聚合操作,也就是說聚合函數,常用的有 : sum(求和)、count(*)(記錄數)、max(最大值)、min(最小值)。 2.group by關鍵字 表示要進行分類聚合的字段。比如要按照部門分類統計員工數量,部門就應該寫在group by 后面。 3.with rollup 是可選語法,表明是否對分類聚合后的結果進行再匯總 4.having 關鍵字表示對分類后的結果再進行條件過濾。

公司員工表A如下 (編號,姓,名,薪水) :

?

統計總人數 select count(1) from A;

統計各個姓的人數 select xing,count(1) from A group by xing;

既要統計各個姓的人數,又統計總人數 select xing,count(1) from A group by xing with rollup;

統計人數大4的姓 select xing,count(1) from A group by xing having count(1)>4;

統計薪水總額,最低薪資,最高薪資 select count(1),min(salary),max(salary) from A;

?

6.表連接

表連接分為內連接外連接

他們之間最主要的區別:內連接僅選出兩張表中互相匹配的記錄,外連接會選出其他不匹配的記錄。

以下是員工表staff職位表deptno:

內連接 select staff.name,deptname from staff,deptno where staff.name=deptno.name;

?

外連接?分為左連接右連接

左連接:包含所有左邊表中的記錄,甚至是右邊表中沒有和他匹配的記錄。

右連接:包含所有右邊表中的記錄,甚至是右邊表中沒有和他匹配的記錄。

?

外連接(左連接): select staff.name,deptname from staff left join deptno on staff.name=deptno.name;

外連接(右連接): select deptname,deptno.name from staff right join deptno on deptno.name=staff.name;

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的MySQL查询select语句详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。