首先,定义一张用户表user作为三个语法的例子。
CREATE TABLE `user` (
`id` int(10) NOT NULL,
`name` varchar(20) NOT NULL COMMENT '名字',
`password` varchar(40) NOT NULL COMMENT '密码',
`status` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
INSERT INTO `yxjc`.`user`(`id`, `name`, `password`, `status`) VALUES (1, '张三', '123456', 1);
INSERT INTO `yxjc`.`user`(`id`, `name`, `password`, `status`) VALUES (2, '李四', '123456', 1);
Mysql drop
Mysql drop 是数据定义语言,删除表,会删除表数据和表结构。
语法:
drop table 表名
例子我们看到drop直接把表结构都删除了。
Mysql delete
Mysql delete 是数据操作语言,用于表数据的删除,不会删除表结构。
语法:
delete from 表名 where
例子
Mysql truncate
Mysql truncate 是数据定义语言,用于清空表中所有的数据,但不会删除表结构。
语法
truncate table 表名
例子总结
- delete是数据操作语言,drop和truncate是数据定义语言。
- drop会删除表结构,其它仅是删除数据。
- delete可以使用事务,可以回滚,drop和truncate则不行。
- drop的执行数据最快,truncate次之,delete最慢。