@yanglt7
2018-06-06T06:34:33.000000Z
字数 3178
阅读 1114
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,...fieldN
FROM table_name
WHERE 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 |
+-----------+--------------+---------------+-----------------+