語法和理論轉自https://www.runoob.com/mysql/mysql-where-clause.html
目錄
1、WHERE 子句
1.1、語法
SELECT field1, field2,…fieldN FROM table_name1, table_name2…
[WHERE condition1 [AND [OR]] condition2…
查詢語句中你可以使用一個或者多個表,表之間使用逗號, 分割,並使用WHERE語句來設定查詢條件。
你可以在 WHERE 子句中指定任何條件。
你可以使用 AND 或者 OR 指定一個或多個條件。
WHERE 子句也可以運用於 SQL 的 DELETE 或者 UPDATE 命令。
WHERE 子句類似於程序語言中的 if 條件,根據 MySQL 表中的字段值來讀取指定的數據。
1.2、用於 WHERE 子句操作符列表
下表中實例假定 A 爲 10, B 爲 20
操作符 | 描述 | 實例 |
---|---|---|
= | 等號,檢測兩個值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等於,檢測兩個值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大於號,檢測左邊的值是否大於右邊的值, 如果左邊的值大於右邊的值返回true | (A > B) 返回false。 |
< | 小於號,檢測左邊的值是否小於右邊的值, 如果左邊的值小於右邊的值返回true | (A < B) 返回 true。 |
>= | 大於等於號,檢測左邊的值是否大於或等於右邊的值, 如果左邊的值大於或等於右邊的值返回true | (A >= B) 返回false。 |
<= | 小於等於號,檢測左邊的值是否小於或等於右邊的值, 如果左邊的值小於或等於右邊的值返回true | (A <= B) 返回 true。 |
1.3、實際操作
1、在前幾章已經創建的pymysql_study中查找study_username爲張三的字段
2、再在數據表study_tb1中插入三條數據,study_username均爲張三,然後再將其進行查找出來
1.4、BINARY 的使用
WHERE 子句的字符串比較是不區分大小寫的,可以使用 BINARY 關鍵字來設定 WHERE 子句的字符串比較是區分大小寫
插入study_username爲ZHANGSAN和zhangsan兩個表,然後使用WHERE和BINARY進行查詢
2、UPDATE 更新
2.1、作用
修改或更新 MySQL 中的數據
2.2、語法
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
你可以同時更新一個或多個字段。
你可以在 WHERE 子句中指定任何條件。
你可以在一個單獨表中同時更新數據。
2.3、實際操作
把study_id爲11中的study_title改爲“兒子長大了,時間飛逝啊”,並把study_password改爲“987654321”
3、DELETE 語句
3.1、作用
使用 DELETE FROM 命令來刪除 MySQL 數據表中的記錄
3.2、語法
DELETE FROM table_name [WHERE Clause]
如果沒有指定 WHERE 子句,MySQL 表中的所有記錄將被刪除。
你可以在 WHERE 子句中指定任何條件
您可以在單個表中一次性刪除記錄。
3.3、實際操作
1、把study_tb1中的牛二刪除了,看着牛二不太順眼,哈哈哈
2、把趙六也刪了
4、LIKE 子句
4.1、作用
LIKE 子句中使用百分號 %字符來表示任意字符,類似於UNIX或正則表達式中的星號 *
4.2、語法
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
你可以在 WHERE 子句中指定任何條件。
你可以在 WHERE 子句中使用LIKE子句。
你可以使用LIKE子句代替等號 =。
LIKE 通常與 % 一同使用,類似於一個元字符的搜索。
你可以使用 AND 或者 OR 指定一個或多個條件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來指定條件。
4.3、實際操作
使用LIKE來查詢study_tb1中所有study_username爲張三的數據
4.4、其他使用
like 匹配/模糊匹配,會與 % 和 _ 結合使用。
'%a' //以a結尾的數據
'a%' //以a開頭的數據
'%a%' //含有a的數據
'_a_' //三位且中間字母是a的
'_a' //兩位且結尾字母是a的
'a_' //兩位且開頭字母是a的
1、使用LIKE和_搭配使用,查詢張三,如“_三”
2、使用LIKE和_搭配使用,查詢張三,如“張_”
3、使用LIKE和_搭配使用,查詢zhangsan,如“_san”
5、UNION 操作符
5.1、作用
用於連接兩個以上的 SELECT 語句的結果組合到一個結果集合中。多個 SELECT 語句會刪除重複的數據。
5.2、語法
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
expression1, expression2, ... expression_n: 要檢索的列。
tables: 要檢索的數據表。
WHERE conditions: 可選, 檢索條件。
DISTINCT: 可選,刪除結果集中重複的數據。默認情況下 UNION 操作符已經刪除了重複數據,所以 DISTINCT 修飾符對結果沒啥影響。
ALL: 可選,返回所有結果集,包含重複數據。
5.3、實際操作
創建演示數據庫study_tb2,再創建演示數據
5.4、小結
UNION 語句:用於將不同表中相同列中查詢的數據展示出來;(不包括重複數據)
UNION ALL 語句:用於將不同表中相同列中查詢的數據展示出來;(包括重複數據)
SELECT 列名稱 FROM 表名稱 UNION SELECT 列名稱 FROM 表名稱 ORDER BY 列名稱;
SELECT 列名稱 FROM 表名稱 UNION ALL SELECT 列名稱 FROM 表名稱 ORDER BY 列名稱
;