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();
- 停止mysql服务 运行输入services.msc 停止mysql服务
- 在cmd下 输入: mysqld --skip-grant-tables
mysqld --skip-grant-tables:就是在启动mysql时不启动grant-tables,授权表
启动服务器 光标不动 (注意:不要关闭该窗口) - 新打开cmd 输入mysql -u root -p 不需要密码
use mysql; 作用:使用mysql这个数据库
update user set password=password(‘123’) WHERE user=‘root’;
-
关闭两个cmd窗口 注意:在任务管理器结束mysqld 进程
-
在服务管理页面 重启mysql 服务。