MySQL入门_实战系列文章目录
文章目录
- MySQL入门_实战系列文章目录
- 前言
- 1 数据删除
- 1.1 删除表中指定的数据
- 1.2 删除某个范围内的数据
- 1.3 使用运算符删除数据
- 1.4 使用LIKE删除数据
- 1.5 使用IN删除数据
- 1.6 删除符合正则表达式的数据
- 1.7 删除数据表中的所有数据
前言
1 数据删除
使用DELETE语句删除数据的语法格式如下:
DELETE FROM table_name [WHERE condition]
说明:
table_name:需要删除数据的表名;
condition:WHERE的条件;
其中,WHERE子句可省略,省略时表示将删除所有数据。
1.1 删除表中指定的数据
例:
删除DEPT数据表中DNO为7的记录。
DELETE FROM DEPT WHERE DNO = 7;
可以看到DEPT表中已经不存在DNO为7的记录,表名数据删除成功
1.2 删除某个范围内的数据
可以通过LIKE、IN、NOT IN、BETWEEN…AND
语句或者“>”“>=”“<”“<=”“<>”“!=”
等运算符实现。
1.使用BETWEEN…AND语句删除数据
DELETE FROM DEPT WHERE DNO BETWEEN 5 AND 6;
SQL执行成功,查看DEPT表中的数据,结果显示DEPT表中已经不存在DNO为5~6的记录,说明数据删除成功。
1.3 使用运算符删除数据
例
删除DEPT数据表中DNO大于或等于3数据记录。
DELETE FROM DEPT WHERE DNO >= 3;
SQL命令执行成功。
接来下查看DEPT表的数据,可以看到,此时DEPT表中只剩下2条记录,已经不存在DNO大于或等于3的数据记录,说明数据删除成功。
注:
在删除表的数据时,其他运算符的使用方法相同,这里不再赘述。
1.4 使用LIKE删除数据
例
删除DEPT数据表中DNAME包含“业务”的数据记录。
DELETE FROM DEPT WHERE DNAME LIKE '%业务%';
SQL语句执行成功,查看DEPT数据表中的数据。
可以看到DNAME为“业务开发部”的数据记录被成功删除。
因为测试表DEPT中数据只剩下一条了,这里先造一部分数据供后续演示用。
(这里顺便演示一个主键冲突的报错)
INSERT INTO DEPT VALUES
(1, '业务研发部', '深圳'),
(2, '财务部', '深圳'),
(3, '运维部', '深圳'),
(4, '财务部', '深圳'),
(5, '运营部', '武汉'),
(6, '人事部', '深圳'),
(7, '公关部', '上海');
会看到报错信息:
ERROR 1062 (23000): Duplicate entry '2' for key 'dept.PRIMARY'
这是因为之前DEPT表中已经存在DNO为2的数据记录,而DNO是DEPT的主键,是不能重复的。
因此修改SQL如下:
INSERT INTO DEPT VALUES
(1, '业务研发部', '深圳'),
(3, '运维部', '深圳'),
(4, '财务部', '深圳'),
(5, '运营部', '武汉'),
(6, '人事部', '深圳'),
(7, '公关部', '上海');
SQL执行成功
查询DEPT表的数据,结果如下:
接下来继续演示
1.5 使用IN删除数据
例
删除DEPT数据表中DNO为1和3的数据。
DELETE FROM DEPT WHERE DNO IN (1,3);
SQL执行成功
查看DEPT表的数据,可以发现DNO为1和3的数据已经不存在,表示删除成功。
注:
NOT IN和IN的语法使用相同,只不过IN语句是某个字段的值包含在值列表中的数据,NOT IN语句是某个字段的值不包含在值列表中的数据,这里不再赘述。
1.6 删除符合正则表达式的数据
WHERET条件中结合正则表达式来限制删除条件。
例:
删除DEPT数据表中DNAME以“销售”开头的数据记录。
DELETE FROM DEPT WHERE DNAME REGEXP '^销售';
SQL语句执行成功
查看表中现有的数据,可以看到DNAME是销售部
的数据记录已经不存在,说明删除成功。
1.7 删除数据表中的所有数据
当需要删除MySQL数据表中的所有数据时,只需要DELTE FROM table_name;
即可。
例:
删除DEPT数据表中的所有数据。
SQL语句执行成功,然后查看DEPT表中的数据,可以发现表中已经无记录,表示删除成功。
至此,MySQL数据的删除已经初步掌握。
如果该文章有帮助到您,请 点赞 支持,谢谢!
有任何疑问,欢迎在评论区 留言。