怎样删除mysql一个表中的全部数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样删除mysql一个表中的全部数据相关的知识,希望对你有一定的参考价值。

    01

    如图,比如我有一张数据表studentinfo,我想要删除studentid为1009的这条数据。

    02

    我们可以直接点击设计界面下方的减号来删除数据。如图,选中数据,然后点击减号按钮。

    03

    点击减号之后,就会弹出一个提示框,问你是否要删除这条数据。

    04

    之后,选中的数据记录就从数据表中删除掉了。

    05

    也可以使用SQL语句来删除数据记录,点击查询菜单下的“新建查询”。

    06

    如图,在其中输入delete from studentinfo where studentid=1001;
    这样就可以删除studentid为1001 的数据记录了。
    Delete from 后面接的是表名,where后面接的是条件,
    因为我是要删除studentinfo表中studentid等于1001的记录,所以就这样写。

    07

    之后,点击运行按钮来执行删除操作。

    08

    如图,回到之前的界面,需要点击一下下边的刷新按钮。

    09

    这样,我们就可以看到1001的那条记录已经被删除掉了。

    10

    而如果想要删除全部的数据记录,可以直接输入查询语句:delete from studentinfo;
    运行之后就可以删除全部的数据记录了。

    11

    如图,所有的数据记录都被删除掉了。

参考技术A

删除表数据有两种方法:delete和truncate。具体语句如下:

一、RUNCATE TABLE name  :

删除表中的所有行,而不记录单个行删除操作。 在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。 

TRUNCATE TABLE 的语法:TRUNCATE TABLE name ,参数 name 是要截断的表的名称或要删除其全部行的表的名称。 

二、Delete from tablename where 1=1

1、delete语法:

DELETE FROM 表名称 WHERE 列名称 = 值。

2、删除所有行:

可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:DELETE FROM table_name。

扩展资料:

truncate和delete的共同点及区别:

1、 truncate和 delete只删除数据不删除表的结构(定义) 。

2、delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发。

truncate是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger。

3、delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 。truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始)。

4、速度,一般来说: truncate >delete 。

参考资料:

百度百科--Truncate Table

百度百科--DELETE语句

参考技术B

您好,提问者:

-- 清空全部数据,不写日志,不可恢复,速度极快
truncate table 表名;

-- 清空全部数据,写日志,数据可恢复,速度慢
delete from 表名

本回答被提问者和网友采纳
参考技术C 删除mysql一个表中的全部数据分为两种情况。一种是删除表内数据及表结构,另一种是只删除表内数据。
1、删除表内数据及表结构:
drop table 表名;
2、删除表内数据可用两种语句,分别是delete语句和truncate语句:
delete from 表名;
truncate table 表名;
在效率上truncate的效率远远大于delete的效率。
参考技术D delete from tablename;
truncate tablename;

如何从mysql5中的父表中删除数据?

【中文标题】如何从mysql5中的父表中删除数据?【英文标题】:How to delete data from parent table in mysql5? 【发布时间】:2011-11-04 07:27:55 【问题描述】:

您好,我正在使用 mysql5 innoDB 数据库。我想从父行及其相关子表数据中强制删除数据。我怎样才能做到这一点。任何人都可以帮助我。

【问题讨论】:

【参考方案1】:

如果您使用 innodb,则可以在删除父行时使用 FOREIGN KEY CONSTRAINTS 进行级联删除,子行也将被删除。

查看更多http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

另一种方法是在删除中使用多表语法。 看http://dev.mysql.com/doc/refman/5.1/en/delete.html

最后的方法是在删除操作后使用触发器。 看http://dev.mysql.com/doc/refman/5.1/en/trigger-syntax.html

您也可以使用顺序删除语句,但在这种情况下您应该使用事务。注意:这个只适用于 innodb 表。

【讨论】:

【参考方案2】:

连续两次删除就可以了:

delete from ChildTable where ParentID = ?
delete from ParentTable where ID = ?

【讨论】:

这是所有不支持foreign keys的表引擎的方法 如果表引擎不支持外键,我会使用触发器,这样我就不用考虑了。【参考方案3】:

如果您使用外键约束,那么您可以在创建子表时使用 on delete cascade 子句从父表中删除一行,然后从子表中删除相应的主键行表也​​。

如果您只想从父表中删除行而不是从子表中删除相应的主键行,则在创建子表时使用 on delete cascade null 子句。

例如:创建一个名为“student”的父表和一个名为“library”的子表

create table student(sno integer(5) primary key,sname varchar(20));

insert into student values(1,"suman");
insert into student values(2,"sai"); 
insert into student values(3,"saaaa");

create table library(sno integer(5) references primary key(sno) on delete cascade,book_name varchar(20));

insert into student values(1,"c");
insert into student values(2,"JAVA");
insert into student values(3,"ORACLE");

现在从父表中删除第二行

delete from student where sno=2;

然后它将从子表中删除相应的行(2 JAVA)。因为您只使用“on delete cascade”子句。

假设如果您使用 on delete cascade null 那么它将仅从父表中删除行 (2 Sai)。

:) :):) :):) :):) :):) :)

【讨论】:

以上是关于怎样删除mysql一个表中的全部数据的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL数据库一周基础入门(第三天)

如何从mysql5中的父表中删除数据?

如何清空mysql表中的数据

怎样将MySQL数据导出到Excel表中

如何删除一个数据库中某个学生的全部记录

怎样将MySQL数据导出到Excel表中