@yanglt7
2018-06-06T06:34:33.000000Z
字数 3178
阅读 1212
MySQL
SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
SELECT field1,field2,...fieldN FROM table_name1,table_name2...[WHERE condition1 [AND [OR]] condition2......
以下为操作符列表,可用于 WHERE 子句中。
下表中实例假定 A 为 10, B 为 20
| 操作符 | 描述 | 实例 |
|---|---|---|
| = | 等号,检测两个值是否相等,如果相等返回true | (A=B)返回false。 |
| <>,!= | 不等于,检测两个值是否相等,如果不相等返回true | (A!=B)返回true。 |
| > | 大于号,检测左边的值是否大于右边的值,如果左边的值大于右边的值返回true | (A>B)返回false。 |
| < | 小于号,检测左边的值是否小于右边的值,如果左边的值小于右边的值返回true | (A |
| *>= | 大于等于号,检测左边的值是否大于或等于右边的值,如果左边的值大于或等于右边的值返回true | (A>=B)返回false。 |
| <= | 小于等于号,检测左边的值是否小于或等于右边的值,如果左边的值小于或等于右边的值返回true | (A<=B)返回true |
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
mysql> SELECT * from runoob_tbl WHERE runoob_author = '菜鸟教程';+-----------+--------------+---------------+-----------------+| runoob_id | runoob_title | runoob_author | submission_date |+-----------+--------------+---------------+-----------------+| 1 | 学习 PHP | 菜鸟教程 | 2017-08-10 || 2 | 学习MYSQL | 菜鸟教程 | 2017-08-10 |+-----------+--------------+---------------+-----------------+mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author = 'runoob.com';Empty set (0.00 sec)mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author = 'RUNOOB.COM';+-----------+--------------+---------------+-----------------+| runoob_id | runoob_title | runoob_author | submission_date |+-----------+--------------+---------------+-----------------+| 3 | JAVA教程 | RUNOOB.COM | 2016-05-06 |+-----------+--------------+---------------+-----------------+
MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。
UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
UPDATE table_name SET field1=new-value1,field2=new-value2[WHERE Clause]
mysql> UPDATE runoob_tbl SET runoob_title = '学习 C++' WHERE runoob_id=3;mysql> SELECT*from runoob_tbl WHERE runoob_id = 3;+-----------+--------------+---------------+-----------------+| runoob_id | runoob_title | runoob_author | submission_date |+-----------+--------------+---------------+-----------------+| 3 | 学习 C++ | RUNOOB.COM | 2016-05-06 |+-----------+--------------+---------------+-----------------+
SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:
DELETE FROM table_name [WHERE Clause]mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;
我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "runoob_author = 'RUNOOB.COM'"。
但是有时候我们需要获取 runoob_author 字段含有 "COM" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:
SELECT field1,field2,...fieldNFROM table_nameWHERE field1 LIKE condition1 [AND[OR]] field2 = 'somevalue'
mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';+-----------+--------------+---------------+-----------------+| runoob_id | runoob_title | runoob_author | submission_date |+-----------+--------------+---------------+-----------------+| 4 | JAVA教程 | RUNOOB.COM | 2016-05-06 || 5 | 学习Python | RUNOOB.COM | 2016-03-06 |+-----------+--------------+---------------+-----------------+