子句: 如select * from table_name中的from就是一個子句。code
排序使用的是order by子句。blog
select column_name from table_name order by column_name;
select column_name1,column_name2 from table_name order by column_name1,column_name2;
這一句先按column_name1的列排序,一樣的值再按column_name2排序。排序
使用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
即a和A是一致的。語法
先降序,再使用限制條件。im
select column_name from table_name order by column_name desc limit 0,3;
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的字段值。
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';
若是一條記錄裏面有一個值是空值,空值不等於0或者空格,它就是沒有值。
select column_name1 from table_name where column_name2 is null;
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的數據。
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操做符的優點:
select column_name from table_name where column_name not in(1,2,3);
檢索column_name不是1,2,3的數據。在複雜語句中,使用not in會比較直觀簡潔。