04-Mysql-單表查詢【學(xué)習(xí)筆記】

1 - 簡(jiǎn)單查詢

select 字段1(列名)矩乐,字段2狸驳,字段3宋下,...from表名
mysql> select job,SAL from emp;
//字段可以直接進(jìn)行數(shù)學(xué)運(yùn)算
select sal*12 from emp;
//使用as可以給字段重命名
//注意,新的字段名如果是中文最好用單引號(hào),雙引號(hào)不通用
select ename,sal*12 as ‘年薪’ from emp;
//查詢所有字段
//實(shí)際開發(fā)中不建議使用* 效率較低 不能寫在java程序中
select * from 表名

2 - where條件查詢

執(zhí)行順序:先f(wàn)rom 再where 再select

select sal from emp where ename ='SMITH';

判斷是否在某一區(qū)間

  1. <> != 表示不等于
  2. between and
-- 找出工資不等于3000的
select ename,sal from emp where sal <> 3000/ sal != 3000

-- 找出工資在1100 和 3000 之間的
select ename,sal from emp where sal between 1100 and 3000//閉區(qū)間【1100-3000】

-- between and除了可以使用在數(shù)字方面之外,還可以使用在字符串方面。
select ename from emp where ename between 'A' and 'C';

is null 和 is not null
在數(shù)據(jù)庫(kù)當(dāng)中NULL不是一個(gè)值,代表什么也沒有祟昭,為空〔勒欤空不是一個(gè)值篡悟,不能用等號(hào)衡量。必須使用 is null或者is not null

//找出津貼不為null的人
select ename,sal,comm from emp where comm is not null;

//找出沒有津貼的人
select ename,sal,comm from emp where comm is null or comm = 0;

or 和 and的使用
and 的優(yōu)先級(jí)大于or

select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30);

in 和 not in 的使用
注意這是兩個(gè)數(shù)選一個(gè) 而不是一個(gè)區(qū)間范圍匾寝!

select ename,job from emp where sal not in(800, 5000);

3 - 模糊查詢

%:多個(gè)字符 _:一個(gè)字符

//找出名字中第二個(gè)字母是A的搬葬?
select ename from emp where ename like '_A%';
//找出名字有下劃線的
//此處下劃線代表任意一個(gè)字符,所以需要轉(zhuǎn)義
select name from t_user where name like '%\_%';

4 - 排序

order by asc表示升序,desc表示降序
默認(rèn)升序

select ename , sal from emp order by sal; // 升序

select ename , sal from emp order by sal asc; // 升序

select ename , sal from emp order by sal desc; // 降序艳悔。

越靠前的字段越能起到主導(dǎo)作用急凰。只有當(dāng)前面的字段無(wú)法完成排序的時(shí)候,才會(huì)啟用后面的字段猜年。

select ename,sal from emp order by sal desc , ename asc;

5 - 分組函數(shù)

又叫多行處理函數(shù):輸入多行抡锈,最終輸出的結(jié)果是1行。
count 計(jì)數(shù)

sum 求和

avg 平均值

max 最大值

min 最小值

找出工資總和乔外?

        select sum(sal) from emp;

找出最高工資床三?

        select max(sal) from emp;

找出平均工資?

        select avg(sal) from emp;

找出總?cè)藬?shù)袁稽?

        select count(*) from emp;

        select count(ename) from emp;

count()和count(具體的某個(gè)字段)勿璃,他們有什么區(qū)別擒抛?
count(
):不是統(tǒng)計(jì)某個(gè)字段中數(shù)據(jù)的個(gè)數(shù)推汽,而是統(tǒng)計(jì)總記錄條數(shù)。(和某個(gè)字段無(wú)關(guān))
count(comm): 表示統(tǒng)計(jì)comm字段中不為NULL的數(shù)據(jù)總數(shù)量歧沪。

注意:
1.分組函數(shù)自動(dòng)忽略null

select sum(comm) from emp;

select sum(comm) from emp where comm is not null; // 不需要額外添加這個(gè)過(guò)濾條件歹撒。sum函數(shù)自動(dòng)忽略NULL。

2.分組函數(shù)不能直接用在where里

 //ERROR 1111 (HY000): Invalid use of group function
   select ename,sal from emp where sal > avg(sal);

ifnull 空處理函數(shù)
所有數(shù)據(jù)庫(kù)都是這樣規(guī)定的诊胞,只要有NULL參與的運(yùn)算結(jié)果一定是NULL暖夭。
ifnull(可能為NULL的數(shù)據(jù),被當(dāng)做什么處理) : 把所有是null的數(shù)據(jù)都賦值為0就可以進(jìn)行運(yùn)算了

select ename,ifnull(comm,0) as comm from emp;

group by 和 having

group by : 按照某個(gè)字段或者某些字段進(jìn)行分組锹杈。
having : having是對(duì)分組之后的數(shù)據(jù)進(jìn)行再次過(guò)濾。
記住一個(gè)規(guī)則:當(dāng)一條語(yǔ)句中有g(shù)roup by的話迈着,select后面只能跟分組函數(shù)和參與分組的字段竭望。

//每個(gè)工作崗位的平均薪資?

select job,avg(sal) from emp group by job;

多字段聯(lián)合分組裕菠,相當(dāng)于把兩個(gè)字段拼接成一個(gè)字段
deptno+job

10 | CLERK == 10CLERK

//找出每個(gè)部門不同工作崗位的最高薪資咬清。
select 

        deptno,job,max(sal)

from

   emp

group by

    deptno,job;

having的使用
必須先分組再過(guò)濾的用having 不用where,因?yàn)閣here后面不能寫分組函數(shù)

找出每個(gè)部門的平均薪資,要求顯示薪資大于2000的數(shù)據(jù)奴潘。

    第一步:找出每個(gè)部門的平均薪資

    select deptno,avg(sal) from emp group by deptno;

    

    第二步:要求顯示薪資大于2000的數(shù)據(jù)

    select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000; 

6 - DQL執(zhí)行順序

select      5

        ..

    from            1   

        ..

    where           2

        ..

    group by        3

        ..

    having      4

        ..

    order by        6

        ..

可以缺省旧烧,但是順序不能換!;琛>蚣簟!D蜗骸6崴!S弈埂S枞ā!@瞬帷Iㄏ佟!

7 - 查詢結(jié)果去重

-- distinct關(guān)鍵字去除重復(fù)記錄村象。
select distinct job from emp; 
select distinct deptno,job from emp;

-- 統(tǒng)計(jì)崗位的數(shù)量笆环?
select count(distinct job) from emp;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市厚者,隨后出現(xiàn)的幾起案子躁劣,更是在濱河造成了極大的恐慌,老刑警劉巖库菲,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件账忘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡熙宇,警方通過(guò)查閱死者的電腦和手機(jī)鳖擒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烫止,“玉大人蒋荚,你說(shuō)我怎么就攤上這事」萑洌” “怎么了期升?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵惊奇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我播赁,道長(zhǎng)颂郎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任容为,我火速辦了婚禮祖秒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舟奠。我一直安慰自己竭缝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布沼瘫。 她就那樣靜靜地躺著抬纸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耿戚。 梳的紋絲不亂的頭發(fā)上湿故,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音膜蛔,去河邊找鬼坛猪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛皂股,可吹牛的內(nèi)容都是我干的墅茉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼呜呐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼就斤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蘑辑,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洋机,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后洋魂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绷旗,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年副砍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衔肢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡址晕,死狀恐怖膀懈,靈堂內(nèi)的尸體忽然破棺而出顿锰,到底是詐尸還是另有隱情谨垃,我是刑警寧澤启搂,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站刘陶,受9級(jí)特大地震影響胳赌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匙隔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一疑苫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纷责,春花似錦捍掺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至喂柒,卻和暖如春不瓶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灾杰。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工蚊丐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艳吠。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓麦备,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親昭娩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泥兰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容