1. 程式人生 > 其它 >10. MySQL基礎-02條件查詢、排序查詢

10. MySQL基礎-02條件查詢、排序查詢

2. 條件查詢

  1. 語法

​ select 查詢列表 from 表名 where 篩選條件;

  1. 分類

    • 按條件表示式篩選

      簡單的條件運算子:> < = != <> >= <=

    • 按邏輯表示式篩選

      邏輯運算子: &&,||,!; and,or ,not

    • 模糊查詢:like,between and, in

      一般和萬用字元配合使用;

      萬用字元:

      % 任意多個字元包括0個字元

      _ 任意單個字元

  2. like:

    1. 查詢姓名中包含a的資訊

      select * from student where name like ‘%a%’;

    2. 查詢員工名第三個為字元為h,第五個字元也是 h的姓名與年齡

      select name,age from student where name like ‘ __h_h’

    3. 查詢姓名第二個字為_的資訊

      select name from student where name like ‘_$ _%’ DSCAPE $

      DSCAPE轉移欄位(上例中$可以改為任何字元)

  3. between and

    • 使用between and 可以提高語句簡介度

    • 包含臨界值

    • 兩個臨界值不能交換順序

    • select * from student where age>=10 and age<=12 相當於 select * from student where age between 10 and 12

  4. in

    • 使用in 可以提高語句簡介度

    • in列表的值必須型別一致

    • select name,class from student where class=‘一班’ or class=‘二班’ or class=‘三班’;

    • 相當於 select name,class from student where class in(‘一班’,‘二班’,‘三班’);

  5. if null

    1. <>,=不能去判斷null的值

    2. is null 和is not null可以判斷null的值

      select name,awards(獎項) from student where is null;

      沒有獎項

      select name,awards from student where is not null; 有獎項

  6. 安全等於<=>

    1. 既可以判斷是否為空又可以判斷普通值

      select name,awards(獎項) from student where <=> null; 沒有獎項

    2. 可讀性比較差,不建議使用

3. 排序查詢

  1. 語法:
    • SELECT 查詢列表 FROM 表 【篩選條件】 order by 【asc|desc】
  2. 特點:
    • asc代表的是升序,desc代表的是降序,如果不寫,預設是升序
  3. 案例1(查詢學生資訊,要求英語成績從低到高):
    • SELECT * FROM student ORDER BY english(英語成績) desc;
  4. 案例2(查詢學生資訊,年齡大於18,按入學時間升序)【篩選條件排序】
    • SELECT * FROM student WHERE age>18 ORDER BY inschool(入學時間) asc;
  5. 案例3【按表示式排序】
    • SELECT * ,(English+ifnull(fujia,0)) as 總成績 FROM student ORDER BY (English+ifnull(fujia,0));
  6. 案例4【按別名名稱排序】
    • SELECT * ,(English+ifnull(fujia,0)) as 總成績 FROM student ORDER BY 總成績;
  7. 案例5【按姓名長度顯示學生姓名和成績】
    • SELECT length(name) as 位元組長度,name FROM sutdent ORDER BY length(name) DESC;
  8. 案例6(查詢學生資訊,先按語文成績降序,再按年齡升序)【按多個欄位排序
    • SELECT * FROM student ORDER BY Chinese desc,age asc;