MySQL WHERE 、UPDATE、DELETE、LIKE

3 MySQL WHERE 、UPDATE、DELETE、LIKE

标签(空格分隔): MySQL


WHERE子句

SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

 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 表中的字段值来读取指定的数据。

以下为操作符列表,可用于 WHERE 子句中。
下表中实例假定 A 为 10, B 为 20

操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A=B)返回false。
<>,!= 不等于,检测两个值是否相等,如果不相等返回true (A!=B)返回true。
> 大于号,检测左边的值是否大于右边的值,如果左边的值大于右边的值返回true (A>B)返回false。
< 小于号,检测左边的值是否小于右边的值,如果左边的值小于右边的值返回true (A
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查询

UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

UPDATE table_name SET field1=new-value1,field2=new-value2
[WHERE Clause]
  • 可以同时更新一个或多个字段。
  • 可以在 WHERE 子句中指定任何条件。
  • 可以在一个单独表中同时更新数据。
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      |
+-----------+--------------+---------------+-----------------+

DELETE语句

SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:

DELETE FROM table_name [WHERE Clause]
mysql> DELETE FROM  runoob_tbl WHERE runoob_id=3;
  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 可以在单个表中一次性删除记录。

LIKE子句

我们知道在 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'
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以在 WHERE 子句中使用LIKE子句。
  • 可以使用LIKE子句代替等号 =。
  • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
  • 可以使用 AND 或者 OR 指定一个或多个条件。
  • 可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。
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      |
+-----------+--------------+---------------+-----------------+

猜你喜欢

转载自blog.csdn.net/weixin_42061048/article/details/80594560