示例7:删除管理员数据表中用户名为amo的记录信息 。
mysql> DELETE FROM tb_admin2 WHERE username='amo';Query OK, 1 row affected (0.00 sec)#如果省略WHERE 子句 , 则表中的全部数据将被删除mysql> DELETE FROM tb_admin2;Query OK, 8 rows affected (0.00 sec)mysql> SELECT * FROM tb_admin2;Empty set (0.00 sec)
注意: 在实际的应用中 , 执行删除的条件一般应该为数据的 id(具有唯一性) , 而不是具体某个字段值 , 这样可以避免一些错误发生 。删除中的数据完整性错误也会在后续讲解约束知识点时进行演示:
说明: Youa row thatakey that is used as akey intable 。
3.2 通过TABLE 语句删除数据
如果要删除表中所有的行 , 可通过TABLE 语句实现 , 其基本语法格式如下:
TRUNCATE [TABLE] 数据表名
在上面的语法中 , 数据表名表示删除的数据表的名称 , 也可以使用 数据库名.数据表名 来指定该数据表隶属于哪个数据库 。
示例8:使用 TABLE语句清空管理员数据表 。
mysql> TRUNCATE TABLE db_admin.tb_admin;Query OK, 0 rows affected (0.01 sec)mysql> SELECT * FROM tb_admin;Empty set (0.00 sec)
注意: 由于TABLE 语句会删除数据表中的所有数据 , 并且无法恢复 , 因此使用TABLE 语句时一定要十分小心 。无论是使用或者是都表示清空或者删除表中的数据 , 仍保留表的数据结构 。
3.3语句和TABLE 语句的区别
说明:TABLE 在功能上与不带 WHERE 子句的FROM 语句相同 。都可以实现对表中所有数据的删除 , 同时保留表结构 。
不同点:TABLE:一旦执行此操作 , 表数据全部清除 。同时 , 数据是不可以回滚的 。
FROM:一旦执行此操作 , 表数据可以全部清除(不带 WHERE) 。同时 , 数据是可以实现回滚的 。
(1) 使用TABLE 语句后 , 表中的计数器将被重新设置为该列的初始值 。示例如下所示:
#创建测试表mysql> CREATE TABLE tb_admin1(->id INT PRIMARY KEY AUTO_INCREMENT,->`user` VARCHAR(30) NOT NULL,->`password` VARCHAR(30) NOT NULL,->createtime DATETIME);Query OK, 0 rows affected (0.01 sec)mysql> show tables;+--------------------+| Tables_in_db_admin |+--------------------+| tb_admin|| tb_admin1|| tb_admin2|+--------------------+3 rows in set (0.00 sec)mysql> drop table tb_admin2;Query OK, 0 rows affected (0.01 sec)mysql> show tables;+--------------------+| Tables_in_db_admin |+--------------------+| tb_admin|| tb_admin1|+--------------------+2 rows in set (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo1', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM tb_admin1;+----+------+----------+------------+| id | user | password | createtime |+----+------+----------+------------+|1 | amo| amo123| NULL||2 | amo1 | amo123| NULL|+----+------+----------+------------+2 rows in set (0.00 sec)mysql> TRUNCATE TABLE tb_admin1;Query OK, 0 rows affected (0.01 sec)mysql> SELECT * FROM tb_admin1;Empty set (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo123', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM tb_admin1;+----+--------+----------+------------+| id | user| password | createtime |+----+--------+----------+------------+|1 | amo| amo123| NULL||2 | amo123 | amo123| NULL|+----+--------+----------+------------+2 rows in set (0.00 sec)mysql> DELETE FROM tb_admin1;Query OK, 2 rows affected (0.00 sec)mysql> SELECT * FROM tb_admin1;Empty set (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo123', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO tb_admin1(user, password) VALUES('amo', 'amo123');Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM tb_admin1;+----+--------+----------+------------+| id | user| password | createtime |+----+--------+----------+------------+|3 | amo123 | amo123| NULL||4 | amo| amo123| NULL|+----+--------+----------+------------+2 rows in set (0.00 sec)
- vue中swiper vue-awesome-swiper的使用方法和爬坑大法
- 使用angular和swiper做的一个滑动小插件
- Angular中使用Swiper不能滑动的解决方法
- 2.闭包nonlacal标识的使用
- angularjs中使用ng-repeat的注意点
- ng-repeat,ng-if angular笔记使用小技巧
- 1. 计算机的基本概念
- hexo stellar设置目录跳转记录
- python接口自动化8-unittest框架使用
- 【使用pytest重构项目】pytest:setup和teardown的5种应用