从数据库中删除数据,使用DELETE语句。其语法如下
DELETE FROM table_name [WHERE ];
语句解析:table_name为表名称,[WHERE
例如如下例子:删除的是表admin_user_table,uid等于1的数据
DELETE FROM admin_user_table WHERE uid = 1;
如何知道是否删除了这条数据呢?我们使用查询语句,查询uid=1,如果查询结果为空,则说明该数据已被删除
mysql>SELECT * FROM admin_user_table WHERE uid = 1;
EMPTY set (0.00 sec)
温馨提示:如果想删除表中所有的记录,还可以使用 TRUNCATE TABLE 语句,TRUNCATE将直接删除原来的表,并且重新创建一个表,其语法结构为TRUNCATE TABLE table_name。TRUNCATE是直接删除表而不是删除记录,因此执行速度比DELETE快。
MySQL删除语句实例:
1、创建一个名为admin_user_table的表,DDL语句如下:
CREATE TABLE `admin_user_table` (
`id` INT ( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR ( 40 ) CHARACTER
SET utf8 NOT NULL DEFAULT '' COMMENT '姓名',
`info` VARCHAR ( 100 ) CHARACTER
SET utf8 NOT NULL DEFAULT '' COMMENT '个人信息',
`cteate_time` INT ( 11 ) DEFAULT NULL COMMENT '创建时间',
`update_time` INT ( 11 ) DEFAULT NULL COMMENT '更新时间',
`delete_time` INT ( 11 ) DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY ( `id` )
) ENGINE = MyISAM AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8mb4;
对admin_user_table表新增一些数据。(jf是数据库名称)
INSERT INTO `jf`.`admin_user_table` ( `id`, `name`, `info`, `cteate_time`, `update_time`, `delete_time` )
VALUES
( 1, '张三', '他来自广东省广州市', 1618719462, 1618719462, NULL );
INSERT INTO `jf`.`admin_user_table` ( `id`, `name`, `info`, `cteate_time`, `update_time`, `delete_time` )
VALUES
( 2, '李四', '他来自广东省深圳市', 1618719462, 1618719462, NULL );
INSERT INTO `jf`.`admin_user_table` ( `id`, `name`, `info`, `cteate_time`, `update_time`, `delete_time` )
VALUES
( 3, '王五', '他来自广东省东莞市', 1618719462, 1618719462, NULL );
我们在DOS下查看刚才插入的数据。
SELECT
*
FROM
admin_user_table;
显示如下:
我们会发现出现了乱码。这是因为现在是使用utf8字符编码来显示中文数据的,但是因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要把输出窗口使用的字符编码改成gb2312才能够正常显示中文。
使用命令如下:
set character_set_results=gb2312;
这样就可以显示为正常的文字而不是乱码。
现在我们可以试着去删除一些数据。
例1、删除id值为2的数据
步骤:在操作前,我们先查看一下id=2的数据是否存在
可以看到表中是有这条数据的。
使用DELETE语句删除。执行情况如下:
语句:
DELETE TABLE admin_user_table WHERE id= 2;
SELECT * FROM admin_user_table WHERE id = 2;
结果:
查询结果为空,说明删除数据成功。
例2:如果我们要删除表中所有数据,可以使用
DELETE FROM admin_user_table
结果: