1. 程式人生 > >初學MySQL基礎知識筆記--02

初學MySQL基礎知識筆記--02

lin 地址 運算符 having between 相同 數據類型 模糊 not

  查詢部分

  1> 查詢數據中所有數據:select * from 表名
  2> 查詢數據中某項的數據:eg:select id,name from students;
  3> 消除重復行:eg:select distinct gender from students;
    (指刪除gender中重復的所在行)
  *註:eg:select distinct id,gender from students;

    則需要兩行都重復才不顯示,例如id均不同,則全部顯示。

  Select * from 表名 where 條件

  • 比較運算符:等於=,大於>,大於等於>=,小於<,小於等於<=,不等於!=或<>
  • 邏輯運算符:and,or,not
  • 模糊查詢:like,%表示任意多個任意字符,_表示任意一個字符
  • 範圍查詢:in表示在一個不連續的範圍內查詢,範圍放在in()括號裏面

  eg:Between min and max表示在最小和最大之間的範圍

(當一句中有多個and,那麽離between最近的and是和他一起的,剩下的才是邏輯與)

  • 空判斷:null與‘’:null為空,不占內存,判空為is null。‘’是指空字符串,要指向空間。
  • 優先級:由高到低:小括號,not,比較運算符,邏輯運算符。

  and比or先運算如果同時出現並希望先算or,要加上小括號。

  聚合(5個聚合函數)

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

  eg:select count(*) from students;//查詢學生人數

  • max(列):表示求此列的最大值

  eg:select max(id) from students;//查詢編號最大值

  • min(列):表示求此列的最小值

  • sum(列):求和,此時要求數據類型

  • avg(列):求此列的平均值

  借助聚合得到查詢具體內容(子查詢):
  eg:select * from students where id=(select min(id) from students where isDelete=0);

  分組

  語法:select 列名 from 表名 group by 列名
  eg:select gender,count(*) from students group by gender;
  //根據性別分組表示出分別有多少人

  分組後的數據篩選

  Where and having:where是對原始集進行篩選,而having是對結果集分組後進行篩選。
  語法:select 列1,列2,聚合… from 表名 group by 列1,列2,列3… having 列1,…聚合…
  eg:select gender,count(*) from students group by gender having gender=0;
     select gender,count(*)as rs from students group by gender having rs>2;(rs是對count(*)起的別名)

  排序

  Order by 列1 asc|desc 列2 asc|desc
  (列後面不寫則默認從小到大排列)
  1. asc升序,小到大
  2. desc降序,由大到小
  (有多個列,若前面的列同樣大,則繼續比較後面的列)

  分頁

  語法:select * from 表名
     limit start,count
    (從start開始,獲取count條數據)

  做分頁:limit n*m,m

  博客地址:http://www.cnblogs.com/yudanqu/

初學MySQL基礎知識筆記--02