delete删除表和truncate有什么区别

delete删除表中的数据时没有加where 条件,会删除表中的所有数据,它与truncate 有什么区别?

 删除过程不同
truncate 删除数据,过程先将整个表删除,再重新创建
delete 删除数据,逐行删除记录
truncate 效率要好于 delete
 语言定义不同
truncate 属于DDL (数据找不回来),delete 属于DML(有可能找回来)

start transaction 开启事务
失败:rollback 事务的回滚 ---- 事务的结束, 把修改的内容恢复到之前的状态。
成功:commit 提交 -----------事务的结束。把修改的内容进行永久保存

delete from user; 和 drop table user; 有什么区别:

delete from user; 把person表中的所有数据全部删除,但是person的表还存在。
drop table user; 把person数据表从数据库中删除。

3.1 数据记录增删改小结
新增:
insert into 表名 values(值,值,值……)
insert into 表名(列名1,列名2,列名3….) values(值1,值2,值3……)
insert into 表名(列名2,列名4,列名5….) values(值2,值4,值5……)

修改:
update 表名 set 列名=值,列名=值 where 条件

删除:
delete from 表名 where 条件
如果不加where 条件,就是删除所有的数据。

删除:清空数据
truncate table 表名
通过删除整张表之后再重新创建一张表来达到清空数据的目的。

delete 和 truncate的区别是delete删除的数据在事务管理的情况下还能恢复,而truncate则不能恢复。

数据表创建(重要)
create table 表名(
列名 数据类型 约束 ,
列名 数据类型 约束 约束,
………
);

查看表
show tables:查看所有的表
show create table 表名: 查看建表语句以及字符集
desc 表名:查看表结构。

修改表的语句(了解)
alter table 表名(add|modify|drop|change) 列名 类型(长度) 约束。
rename table 旧表名 to 新表名

删除表
drop table 表名

数据库操作语句小结
 创建
create database 数据库名
 查看所有数据库
show databases。
 查看指定数据库建表语句及字符集
show create database 数据库名
 删除数据库
drop database 数据库名
 修改数据库字符集-了解
alter database 数据库名 character set ‘字符集’
 切换数据库
use 数据库名
 查看当前数据库名称
select database();

  1. 停止mysql服务 运行输入services.msc 停止mysql服务
  2. 在cmd下 输入: mysqld --skip-grant-tables
    mysqld --skip-grant-tables:就是在启动mysql时不启动grant-tables,授权表
    启动服务器 光标不动 (注意:不要关闭该窗口)
  3. 新打开cmd 输入mysql -u root -p 不需要密码

use mysql; 作用:使用mysql这个数据库
update user set password=password(‘123’) WHERE user=‘root’;

  1. 关闭两个cmd窗口 注意:在任务管理器结束mysqld 进程

  2. 在服务管理页面 重启mysql 服务。

猜你喜欢

转载自blog.csdn.net/u014452148/article/details/85908357