一、檢索--輸出所有的列
SELECT *
FROM my_friends WHERE
first_name = 'cake';
知識點1
* 代表選擇出所有的行-----(什么行呢?)就是first_name =‘cake’的行。整個語句的意思就是從my_friends的表中,檢索出first_name = 'cake' 的行,並全部顯示!
注意:1.文本類的數據類型的值需要加上單引號,非文本類的數據類型的值不需加單引號(規則跟INSERT插入數值的時候一樣)
愛用單引號:CHAR,VARCHAR,DATA,DATATIME,BLOG
拒絕用單引號:DEC,INT
(如果文本數據類型的 數據需要用到單引號' 時,需要用 \'來代替 ')
2.如果WHERE后面的列是非文本類的數據類型,可以使用 ‘<’ 和 ‘>’ 檢索出 對應范圍的值。
注意:a. 不等於 有兩種表示方式 <> 和 !=
b. 等號 可以結合 < 或者 >使用,如:<= 或者 >=
c.可以使用關鍵字 BETWEEN 代替 >= 、<= 表示數值區間(注意是<=、>=,而不是 < 、>),如:
SELECT * FROM my_friends WHERE
age BETWEEN 15 AND 30; --注意:BETWEEN 規定,必須按順序,從小到大!不可以是between 30 and 15
知識點2 AND 和 OR
要是想要滿足多一個條件呢?可以更進一步檢索滿足多個條件下的序列(或多步,多步也就是增加and條件而已...)
SELECT* FROM my_friends WHERE last_name = ‘Lily’ AND last_name = 'Wang';
整理一下,就是當表 my_friends 中的列 last_name = 'Lily'而且 first_name = 'Wang' 時,輸出所有的列
存在“與” ,“與”用AND 表示 ,那也肯定存在着“或”,“或”用 OR 表示!
當需要使用多個 ‘OR’ 的時候,程序會顯得很累贅,所以聰明的SQL 衍生出了 關鍵字 ‘IN’ 來解決這個問題!
SELECT *FROM my_friends WHERE interest = ‘baskball’ OR interest = 'running' OR interest = 'swimming' OR ...; --------->> SELECT * FROM my_friends WHERE interest IN ( ‘baskball’,'running','swimming'); ---在這里 IN是包含的意思
另外,IN 意為 包含。 NOT IN意為 不包含SELECT *
FROM * my_friends WHERE interest NOT IN (‘baseball');
知識點3 NOT的使用
1.NOT也可以和BETWEEN 或者 LIKE 一起使用,在使用時,NOT 一定要緊接在 WHERE 后面。但是NOT IN 是個例外,而且即使把NOT移到 WHERE 后一可以運作(以下程序等效上程序)
SELECT * FROM my_friends WHERE NOT interest IN (‘baseball');
2.NOT和AND或OR一起使用時,要直接接在AND或者OR后面!記得哦!!!
SELECT *
FROM my_friends WHERE NOT age BETWEEN 1 AND 15; SELECT last_name FROM my_friends WHERE NOT first_name LIKE '%W' -- AND NOT first_name LIKE '%L';
知識點4
有一個巨大的問題來了,如果我找的數據是 NULL 呢? 應該怎么去尋找,畢竟 NULL != NULL 呀
解決辦法肯定是多於問題的!
SELECT phone --選擇列的名稱 FROM my_friends --從表中 WHERE e-mail IS NULL;
IS NULL是關鍵字!
二、檢索--輸出特定的序列(過濾數據)
SELECT status --選擇輸出的列的名稱 FROM my_friends --從表中 WHERE last_name = ‘Lily’; --當last_name = 'Lily'時
整理一下,就是當表 my_friends 中的列 last_name = 'Lily'時,輸出列 status
三、檢索--文本型相同的部分
SELECT * FROM my_friends --從表中 WHERE last_name LIKE = ‘L%; --當last_name 以L開頭時
上面程序表達的是,檢索my_friend中的 last_name 的列,輸出以‘L’開頭的所有行
知識點6
通配符 ---必須配合 文本型數據類型使用
% ---百分號 是任意數量的未知字符的替身
_ ----下划線 是一個未知字符的替身
SELECT * FROM my_friends --從表中 WHERE last_name LIKE = ‘_L%; --當last_name 以'XL'開頭時,X 為任意字符
四、按一定的順序排列
知識點7 ORDERBY--升序
SELECT lunch FROM my_foods WHERE breakfast = 'milk' ORDER BY id,lunch; --id是排序用到第一列,lunch是排序用的第二列(根據第一列排列完成才會進行第二列的排列)
ORDER BY 的排列順序:
NULL --鍵盤左到右的符號--數字--字母(大寫>小寫)
知識點8 DESC--降序
反轉順序排列
SELECT lunch FROM my_foods WHERE breakfast = 'milk' ORDER BY id DESC;
DESC 是 DESCENDING的縮寫,相對的有ASC,也可以用這個代表升序