3、排序檢索數據、過濾數據

1.排序數據(默認升序:ASC)

子句: 如select * from table_name中的from就是一個子句。code

排序使用的是order by子句blog

select column_name from table_name order by column_name;

2.按多列排序

select column_name1,column_name2 from table_name order by column_name1,column_name2;

這一句先按column_name1的列排序,一樣的值再按column_name2排序。排序

3.降序排序

使用desc關鍵字。it

select column_name from table_name order by column_name desc;

若是在多行降序狀況下,須要指定每一行:table

select column_name1,column_name2 from table_name order by column_name1 desc,column_name2 desc;

會先按column_name1降序,相同的再按照column_name2排序。select

3.排序默認不區別大小寫

即a和A是一致的。語法

4.找出最高的三條

先降序,再使用限制條件。im

select column_name from table_name order by column_name desc limit 0,3;

5.使用where子句過濾數據

select column_name1 from table_name where column_name2 = 'xxx';

檢索column_name2爲'xxx'時候的column_name1字段的值。數據

where語句必須在order by語句以前。img

操做符以下:

使用between操做符的時候,須要加一個and來連用:

select column_name1 from table_name where column_name2 bewteen 1 and 4;

尋找column_name2在[1,4]範圍的column_name1的字段值。

6. where的組合使用

where...and, where...or

使用and檢索符合所有條件的記錄:

select column_name1 from table_name where column_name2 = 'xxx' and column_name3 = 'xxx';

使用or檢索符合其中一條的記錄:

select column_name1 from table_name where column_name2 = 'xxx' or column_name3 = 'xxx';

7.空值判斷:IS NULL

若是一條記錄裏面有一個值是空值,空值不等於0或者空格,它就是沒有值。

select column_name1 from table_name where column_name2 is null;

8.計算順序

and的優先級大於or,以下句:

select column_name1 from table_name where column_name2 = 10 or column_name3 = 11 and column_name4 >=10;

這一句先檢索的是column_name3 == 11且column_name4>=10的數據,若是這條不知足,再檢索column_name2==10的數據。

並非先檢索column_name2=10,而後再檢索column_name3 == 11且column_name4>=10的數據。

9. IN操做符

in操做符執行和or的效果一致:

select column_name from table_name where column_name in (12,16);

使用or等價:

select column_name from table_name where column_name = 12 or column_name = 16;

使用in操做符的優點:

  • 在使用長的合法選項清單時,IN操做符的語法更清楚且更直觀.
  • 在使用 IN 時,計算的次序更容易管理(由於使用的操做符更少).
  • IN 操做符通常比 OR 操做符清單執行更快.
  • IN 的最大優勢是能夠包含其餘SELECT語句,使得可以更動態地創建 WHERE 子句。

10.NOT操做符

select column_name from table_name where column_name not in(1,2,3);

檢索column_name不是1,2,3的數據。在複雜語句中,使用not in會比較直觀簡潔。

相關文章
相關標籤/搜索