MySQL常用命令之查(五)

1. 基本語法

     格式: select * from 表名;

     說明: a、from 關鍵字hou'後面是表名,表示數據來自這張表;

                  b、select 後面寫表中的列名,如果是*表示在結果集中顯示錶中的所有列;

                  c、在select後面的列名部分,可以使用as爲列起別名,這個別名顯示在結果集中;

                  d、如果要查詢多個列,之間用逗號分隔

      示例:select * from students;

                  select name, age from students;

                  

                  select name as a, age from students;

                  

2. 消除重複行

     說明:在select 後面列前面使用distinct可以消除重複的行

     示例: select gender from students;

                  select distinct gender from students;

                  

3. 條件查詢

      a、語法

             select * from 表名 where 條件;

      b、比較運算符

            等於: =      大於: >    小於: <    大於等於:>=      小於等於: <=      不等於:!=或<>

       需求:查詢id值大於3的所有數據

       示例: select * from students where id>3; (注意需要全英文字符)      

       

    c、邏輯運算符

        並且:and          或者: or    非:   not

         需求:查詢id大於3的女同學

         示例:select * from students where id>3 and gender=0;

         

     d、模糊查詢

            insert into students values(0,"xijinping",65,1,"beijing",0);

            insert into students values(0,"xidada",66,1,"beijing",0);

            like  

            %表示任意多個任意字符

            _表示一個任意字符

             需求:查詢姓xi的同學

            示例:select * from students where name like "xi%";

           

            select * from students where name like "xi_";

          

    e、範圍查詢

         in    表示在一個非連續的範圍內;

         between ... and ...  表示在一個連續的範圍內;

         需求:查詢編號爲6到8的學生

         示例:select * from students where id between 6 and 8;

         

         需求:查詢編號爲1,3,7的學生

          示例:select * from students where id in (1,3,7);

         

    f、空判斷(可以用於查詢某些項爲空的數據,要舉一反三)

          insert into students(name,age) values("tete",19);

         注意:null與""是不同的

         判斷空: is null;

         判斷非空:is not null;

         需求:查詢沒有地址的同學

         示例:select * from students where address is null;

        

        需求:查詢有地址的同學

        示例:select * from students where address is not null;

        

    g、優先級

          小括號,not,比較運算符,邏輯運算符

           and 比 or you優先級高,如果同時出現並希望先選or,需要結合()來使用。

4、聚合

      爲了快速得到統計數據,提供了5個聚合ha函數

      a、count(*) 表示計算總行數,括號中可以寫*和列名

      b、max(列) 表示求此列的最大值

      c、min(列) 表示求此列的最小值

      d、sum(列) 表示求此列的和

      e、avg(列) 表示求此列的平均值

      需求:查詢學生總數

      示例:select count(*) from students;

     

     需求:查詢女生的編號最大值

     示例:select max(id) from students where gender=0;

     

    需求:查詢女生編號最小值

    示例:select min(id) from students where gender=0;

    需求:查詢所有學生年齡的和

    示例:select sum(age) from students;

    

    需求:查詢所有學生年齡的平均和

    示例:select avg(age) from students;

    

5、分組

      按照字段分組,表示此字段相同的數據會被放在一個集合中。

      分組後,只能查詢出相同的數據列,對於有差異的數據列無法顯示在結果集中。

      可以對分組後的數據進行統計,做聚合運算。

      語法:select 列1,列2,聚合...from 表名 group by 列1,列2,列3,...

      需求:查詢男女生總數

      示例:select gender,count(*) from students group by gender;

      

                 select name,gender,count(*) from students group by gender,age;

     

     分組後的數據篩選:select 列1,列2, 聚合...from 表名 group by 列1,列2,列3.... having 列1,...聚合...

     示例:select gender, count(*) from students group by gender having gender;

      

     where 與 having的區別:

            where 是對from後面指定的表進行篩選,屬於對原始數據的篩選

             having是對group by的結果進行篩選

6、排序

      語法:select * from 表名 order by 列1 asc|desc, 列2 asc|desc,...

      說明:a、將數據按照列1進行排序,如果某些列1的值相同,則按照列2進行排序

                  b、默認按照從小到大的順序排序

                  c、asc降序

                  d、desc升序

       需求:將沒有被刪除的數據按照年齡排序

       示例:select * from students where isDelete=0 order by age;

       

       

       select * from students where isDelete=0 order by age desc,order by id desc;(運行出現問題,想要實現的操作是按照年齡降序,若年齡相同再按照id降序)

       

      已解決:select * from students where isDelete=0 order by age desc, id desc;

      

7、分頁

     語法:select * from 表名 limit start, count;

     說明:start索引從0開始

     示例:select * from students limit 0,3;

     

      select * from students limit 3,3;

      

      select * from students where gender=1 limit 3,3;

      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章