数据库(MySQL)学习笔记(五)

3.MySQL DELETE 语句
使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录

   以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:
    DELETE FROM table_name [WHERE Clause]

如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件
您可以在单个表中一次性删除记录。

实例:

以下实例将删除 runoob_tbl 表中 runoob_id 为3 的记录:
DELETE 语句:
mysql> use RUNOOB;
Database changed mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;
Query OK, 1 row affected (0.23 sec)

delete 语句用于删除表中的数据, 基本用法为:
delete from 表名称 where 删除条件;
以下是在表 students 中的实例:
删除 id 为 3 的行: delete from students where id=3;
删除所有年龄小于 21 岁的数据: delete from students where age<20;
删除表中的所有数据: delete from students;

delete,drop,truncate的用法区别:
delete,drop,truncate 都有删除表的作用,区别在于:
1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

4.MySQL 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
F
FROM table_name
W
WHERE field1 LIKE condition1 [AND [OR]] filed2 = ‘somevalue’

你可以在 WHERE 子句中指定任何条件。
你可以在 WHERE 子句中使用LIKE子句。
你可以使用LIKE子句代替等号 =。
LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
你可以使用 AND 或者 OR 指定一个或多个条件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。

实例
以下是我们将 runoob_tbl 表中获取 runoob_author 字段中以 COM 为结尾的的所有记录:
SQL LIKE 语句:
mysql> use RUNOOB;
Database changed mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE ‘%COM’;

  • ----------- + --------------- + --------------- + ----------------- +
    | runoob_id | runoob_title | runoob_author | submission_date |
  • ----------- + --------------- + --------------- + ----------------- +
    | 3 | 学习 Java | RUNOOB.COM | 2015-05-01 |
    | 4 | 学习 Python | RUNOOB.COM | 2016-03-06 |
  • ----------- + --------------- + --------------- + ----------------- +
    2 rows in set (0.01 sec)

like 匹配/模糊匹配,会与 % 和 _ 结合使用。
‘%a’ //以a结尾的数据
‘a%’ //以a开头的数据
‘%a%’ //含有a的数据
a’ //三位且中间字母是a的
a’ //两位且结尾字母是a的
'a
’ //两位且开头字母是a的
查询以 java 字段开头的信息。
SELECT * FROM position WHERE name LIKE ‘java%’;
查询包含 java 字段的信息。
SELECT * FROM position WHERE name LIKE ‘%java%’;
查询以 java 字段结尾的信息。
SELECT * FROM position WHERE name LIKE ‘%java’;

在 where like 的条件查询中,SQL 提供了四种匹配方式。
%:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
[]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“
”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。

全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务