中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL 查詢語句select講解與練習

發布時間:2020-07-14 07:39:42 來源:網絡 閱讀:1148 作者:大飛俠大蝦 欄目:MySQL數據庫

select語句執行流程:

        START------>1.FROM

                    ------>2.WHERE(選擇,合適的行)

                    ------>3.GROUP BY(分組)

                    ------>4.HAVING(對分組進行過濾) 

                    ------>5.ORDER BY(排序) 

                    ------>6.SELECT(投影,合適的字段) 

                    ------>7.LIMIT ------>end result


select單表查詢:


關鍵字:      

DISTINCT        #數據去重 
     例:select DISTINCT gender from students;
VARIABLES       #mysql服務器自身內置變量 
     例:select variables like 'query%';
AS              #顯示時使用別名  
     例:select name as  stuname  from  students;
IN             
     例:select name,age from students where age in  (18,19,25);
IS NULL         #取值為空,IS NOT NULL: 取值不為空
like            #%任意長度任意字符  _任意單個字符
RLIKE           #使用正則表達式
GROUP           #根據指定的條件把查詢結果進行分組以用于做聚合運算
內置函數:avg() , max() , min() , count() , sum()
order  by       #根據指定字段對查詢結果進行排序
                  升序:ASC(默認)   降序:DESC
LIMIT [[offset,]row_count] #對查詢的結果進行輸出行數數量的限制
對查詢結果中的數據請求施加‘鎖’:
       FOR  UPDATE :寫鎖,獨占鎖,排他鎖
       LOCK IN SHARE MODE :讀鎖,共享鎖


例:查看男女同學的平均年齡

       select avg(age),gender  from  students  group  by  gender ;

例:查看平均年齡大于20的性別

       select avg(age),gender as '年齡' from  students  group  by  gender having 年齡>20;

例:查看姓名,年齡以年齡倒序排序

       select name,age from students order  by age desc;

例:年齡從小到大查看排名11至20的同學的姓名

select name,age from students order  by age limit 10,10 ;


練習題

1. 在students表中,年齡大于25,且為男性的同學的姓名和年齡

select name,age  from students  where gender='m' and age>25;

2. 以classID為分組依據,顯示每組的平均年齡

select  avg(age),classID from students where classID is not null group by classID;

3. 顯示第二題中平均年齡大于30的分組及平均年齡

select  avg(age),classID from students  group by classID  having avg(age)>30;

4. 顯示名字以L開頭的同學的相關信息

select * from students  where name like  'L%';

5. 顯示teacherID非空的同學的相關信息

select * from students  where teacherID is not null;

6. 以年齡排序后顯示年齡最大的前10位同學的信息

select * from students  order by  age DESC limit 10;

7. 查詢年齡大于等于20歲,小于等于25歲的同學的信息,用三種方法

select * from students where age>=20 and age<=25;
select * from students  where age between 20 and  25;
select * from students  where age in (20,21,22,23,24,25);


select多表查詢:


交叉連接:又稱笛卡爾乘積,結果兩表行數相乘(不常用)。 例:select *  from  table1,table2;
內連接:  等值連接求交集,讓兩張或多張表按“等值”建立連接關系(常用)
外連接:  又分左連接(顯示所有左邊給定所有字段和右邊與左邊指定字段內容相同的),右連接。


例:

select * from students,teachers  where  students.teacherID=teachers.TID ; #相當于內連接
select s.name,c.class from students as s,classes as c  where s.classID=c.classID;

       不等值連接:

       自然連接:

       自連接:一張表中一個字段的值等于另一個字段的值。

例:

select  s.name,t.name  from students  as  s,teacher  as t where  s.TeacherID=t.stuID;

外連接:

       左外連接:以左側表為準,以某一字段等值建立連接關系,如左表有的右表也有就一一對應,如左表有右表沒有左表顯示所有,右表留空對應。(顯示左表所有,右表有的就對應沒有就留空)

使用方法:FROM tb1  LEFT  JOIN  tab2  ON  tab1.col1=tab2.col;

例:

select s.name,c.class  from students  as s  LEFT  JOIN  classes  as  c  ON  s.classID=c.classID;

      右外連接:

使用方法:FROM tb1  RIGHT  JOIN  tab2  ON  tab1.col1=tab2.col

子查詢:在查詢語句中嵌套著查詢語句(mysql支持不好,少用)

             基于某語句結果再次進行查詢

用在where子句中的子查詢:

(1) 用在比較表達式中的子查詢,子查詢僅能返回單個值:

例查找大于平均年齡的同學名字和年齡:

select name,age  from  students  where  age>(select avg(age) from students);

(2)用在IN中的子查詢:子查詢應該單鍵查詢并返回一個或多個值構成列表

例:查找老師年齡和同學年齡相等的

select  name,age  from students where age  in (select age from teachers);

(3)用于EXISTS

用于from子句中的子查詢:

例查找平均年齡是30的班級:

select s.aage,s.classID from (select avg(age) as aage,classID from students where classID is not null group by classID) as s where s.aage=30;

聯合查詢:把兩個表查詢的結果合并成一個。以前面表的字段為準,后面的表填充內容。

例:

select name,age  from  students  UNION select  name,age  from teachers;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梧州市| 万荣县| 仙居县| 兴仁县| 昌黎县| 定兴县| 临沂市| 翼城县| 河池市| 蒲江县| 望都县| 诏安县| 永寿县| 临漳县| 齐齐哈尔市| 新化县| 尤溪县| 遂溪县| 白朗县| 临江市| 汝南县| 边坝县| 册亨县| 天镇县| 兴隆县| 沙河市| 房产| 嘉鱼县| 长垣县| 岚皋县| 观塘区| 尚志市| 山西省| 广汉市| 呼伦贝尔市| 梨树县| 博湖县| 赤水市| 庆安县| 共和县| 德庆县|