MySQL.数据处理(数据的删除)

痞子三分冷 提交于 2019-12-18 05:43:19

一、数据的删除

俗话说得好,时过境迁,数据库中的数据也不例外。在这个飞速发展的快节奏时代里,新知识不断涌现,数据也在更新着。当你愁着为一条条更改数据时,何尝不想着快速脱离囧Σ(っ °Д °;)っ境呢,也许对于某些数据库或数据来说,删除是个不错的选择,今天咱们就再来学一招。

部分数据删除

1.在数据库数据的删除中,我们使用的是 Delete语句
2.基本语法:

delete from <表名> where <删除的条件>

删除读者类型数据表中除了系统管理员的记录

mysql> select*from 读者类型;
+--------------+--------------+----------+----------+----------+----------------+------------+
| 读者类型编号 | 读者类型名称 | 限借数量 | 限借期限 | 续借次数 | 借书证有效日期 | 超期日罚金 |
+--------------+--------------+----------+----------+----------+----------------+------------+
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
| 02           | 图书管理员   |       20 |      180 |        6 |              5 | 0          |
| 03           | 特殊读者     |       30 |      360 |        6 |              5 | 0          |
| 04           | 一般读者     |       20 |      180 |        4 |              3 | 0          |
| 05           | 教师         |       20 |      180 |        6 |              5 | 0          |
| 06           | 学生         |       10 |      180 |        2 |              3 | 1          |
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
| 02           | 图书管理员   |       20 |      180 |        6 |              5 | 0          |
| 03           | 特殊读者     |       30 |      360 |        6 |              5 | 0          |
| 04           | 一般读者     |       20 |      180 |        4 |              3 | 0          |
| 05           | 教师         |       20 |      180 |        6 |              5 | 0          |
| 06           | 学生         |       10 |      180 |        2 |              3 | 1          |
+--------------+--------------+----------+----------+----------+----------------+------------+
12 rows in set (0.05 sec)

mysql> delete from 读者类型 where 读者类型名称!='系统管理员';
Query OK, 10 rows affected (0.01 sec)

mysql> select*from 读者类型;
+--------------+--------------+----------+----------+----------+----------------+------------+
| 读者类型编号 | 读者类型名称 | 限借数量 | 限借期限 | 续借次数 | 借书证有效日期 | 超期日罚金 |
+--------------+--------------+----------+----------+----------+----------------+------------+
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
+--------------+--------------+----------+----------+----------+----------------+------------+
2 rows in set (0.05 sec)

mysql> select 读者类型编号,读者类型名称 from 读者类型 order by 读者类型编号;
+--------------+--------------+
| 读者类型编号 | 读者类型名称 |
+--------------+--------------+
| 01           | 系统管理员   |
| 01           | 系统管理员   |
+--------------+--------------+
2 rows in set (0.05 sec)

当出现有重复的纪录在搜索时加上关键词 distinct 即可只显示出一条。

mysql> select distinct 读者类型编号,读者类型名称 from 读者类型  order by 读者类型编号;
+--------------+--------------+
| 读者类型编号 | 读者类型名称 |
+--------------+--------------+
| 01           | 系统管理员   |
+--------------+--------------+
1 row in set (0.06 sec)

全部数据删除

1.基本语法:
delete from <表名>

mysql> select*from 读者类型;
+--------------+--------------+----------+----------+----------+----------------+------------+
| 读者类型编号 | 读者类型名称 | 限借数量 | 限借期限 | 续借次数 | 借书证有效日期 | 超期日罚金 |
+--------------+--------------+----------+----------+----------+----------------+------------+
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
| 01           | 系统管理员   |       30 |      360 |        6 |              5 | 0          |
+--------------+--------------+----------+----------+----------+----------------+------------+
2 rows in set (0.06 sec)

mysql>  delete from 读者类型;
Query OK, 2 rows affected (0.00 sec)

mysql> select*from 读者类型;
Empty set

2.truncate 语法
truncate table <表名>
truncate语法 与 delete语法 的主要区别是:truncate语法删除的表数据具有不可恢复性,速度快,使用的系统和事务日志资源少,将直接且只在事务日志记录页上释放,以达到删除数据的效果,这之后AUTO_INCREMENT计数器被重置为该列的初始值。
对于参与了索引和视图的表应当使用delete语法。

表的删除

1.drop 语法
drop table <表名>

具体三者(delete、truncate、drop)的区别

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!