MySQL 删除数据表

在MySQL数据库中,对于不再使用的数据表,我们可以选择删除该数据表,在进行删除数据表时,表的结构和表中数据都会被删除,因此在删除数据表之前需要养成一个良好的数据备份习惯,以避免数据丢失

删除数据库基本语法如下:

DROP TABLE 数据库名

DROP TABLE IF EXISTS 表名 (表名1,表名2,表名3..)

对语法格式介绍如下:

表名1,表名2,表名3..表示要删除的数据库表名称。

DROP TABLE 可同时删除多个表,表名与表名之间用","号隔开

IF EXISTS用于在删除表时判断表是否存在,当数据库表名不存在时SQL语句可顺利执行,但会发出警告;如果不加FI EXISTS,当数据库表不存在时Mysql会报错,终端操作

注意:用户必须拥有执行DROP TABLE命令权限,否则数据库表不会进行删除

表被删除时。用户在表上的权限不会自动删除

删除示例:

1、创建表

CREATE TABLE BEIMU(

BEI_ID INT NOT NULL AUTO_INCREMENT,

BEI_NAME VARCHAR(100) NULL ,

BEI_AGE INT NULL,

BEI_BIRTHDAY DATE,

PRIMARY KEY (`BEI_ID`)

);

2,插入数据

INSERT INTO BEIMU(`BEI_ID`, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (003,'夸夸', 23,'2021-01-08');

INSERT INTO BEIMU(`BEI_ID`, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES ('002','北木 ', '24','2021-01-08');

INSERT INTO BEIMU(`BEI_ID`, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (001,'南海', 18,'2021-01-08');

3、查看数据库是否拥有数据表,拥有数据表后,我们对数据表进行删除

DROP TABLE beimu

执行结果,数据库的数据表列表中已经不存在名称为beimu 的表,删除操作成功!

Mysql 删除数据表的三种方式

1)当不再需要某个数据表,用 DROP的 TABLE 删除方式

2)当要保留数据该数据表,删除所有数据时,使用truncate删除方式

3)当要删除部分数据或者存在找回数据时,使用delete删除方式

删除方法由强到弱如下:

drop 是直接删除表,无法找回

drop table 表名;

truncate是删除表中所有数据,但不能与where共同使用

truncate table 表名

dalete为删除表中数据,但可以与where一起使用,可删除特定行数据

--where一起使用,可删除特定行数据

DELETE FROM 表名 WHERE 条件;

--删除表中所有数据

DELETE FROM 表名

我们了解了三种删除方式,再来了解下truncate 和 delete 的区别:

truncate 和 delete 的区别:

事务:

truncate删除记录后不记录MySQL日志,因此不可以rollback,更不可以恢复数据;而delete是可以rollback

原因:truncate相当于保留原MySQL表的结果,重新创建了这个表,所有的状态都相当于全新的,而delete的效果相当于一行行删除,所以可以rollback

效果:

truncate比delete速度快,而且truncate删除后将重建索引(新插入数据后ID从0记起),而delete不会索引(新插入的数据将在删除数据的索引后继续增加)

truncate不会触发任何delete触发器

返回值

delete操作后返回删除的记录数,而truncate返回的是0或者-1(成功返回0,失败返回-1)

两者区别:如果只对一张表进行删除,则效果一样;如需要联合测试,则需要from进行匹配

delete tb2 from tb2 m where id in (select id from tb1)