數據庫MySQLⅡ

目錄

起別名

去重

條件

排序

聚合函數

分組

獲取部分行


  • 起別名

 as 給字段/表起別名

  • 去重

select distinct 字段1,...  from 表名

  • 條件

使用where子句對錶中的數據篩選,符合條件的數據會出現在結果集中

語法:select 字段1,字段2... from 表名 where 條件

where後面支持多種運算符,進行條件的處理:

  • 比較運算:=    >     >=     <     <=     !=或<> 

  • 邏輯運算:and   or    not

  • 模糊查詢:like    

                       %:任意多個字符

                        _:一個任意字符

  • 範圍查詢:

                        in:非連續的範圍內

                        between …… and ……

  • 空判斷:null與 ''是不同的

             判空:is null

             判非空:is not null

  • 排序

select * from 表名 

order by 列1 asc|desc,列2 asc|desc,...

  • 多個列參與排序時,先依據列1排,如果列1的值相同時,則按照列2排序,以此類推
  • 默認是從小到大,即升序
  • asc升序,desc降序
  • 聚合函數

聚合函數不能在where的條件中使用

count(*):計算總行數,括號中寫*/列名,結果時相同的

max(列):最大值

min(列):最小值

sum(列):求和

avg(列):平均值

爲什麼聚合函數不可以寫在where的後面而能寫在having後面?
     因爲聚合函數前面一定要有結果集,而在mysql內部運行機制中,where後面還沒有結果集,所以聚合函數不可以寫在where的後面。但having是接在分組的後面,而分組是有結果集的,所以having前是有結果集的,所以聚合函數可以寫在having的後面

  • 分組

按照字段分組,此字段相同的數據會被放到一個組中,分組的目的是對每一組的數據進行統計使用聚合函數

分組後的數據篩選:

select 字段1,字段2,聚合 ... from 表名 

group by 字段1,字段2,字段3...

having 字段1,...聚合...

對比where和having:

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

  • having是對group by分組後的結果進行篩選

  • having後面的條件中可以使用聚合函數,where後面不可以

  • 獲取部分行

select * from 表名 

limit start,count

  • 從start開始,獲取count條數據;
  • 索引從0開始

每頁顯示m條數據,求:顯示第n頁的數據

select * from students limit (n-1)*m,m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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