三大范式:设计数据库的规则
1、第一范式(1NF)
2、第二范式(2NF)
3、第三范式(3NF)
镇图!
数据库备份和还原
//不可以在SQL中运行,在C盘状态下运行!!!
备份:mysqldump -u用户名 -p密码 数据库名 > 保存的路径
举例:mysqldump -uroot -proot company > e:/a.sql;
还原:source 数据库备份的路径
MySQL事务:同时执行,同时失败
开启事务:start transaction
提交事务:commit
回滚事务:rollback
四大特征:
原子性:要么同时成功,要么同时失败
持久性:事务提交或回滚后,数据库会持久化保存数据
隔离性:期望多个事务之间相互独立
一致性:事务操作前后数据总量不变
隔离级别:
问题:
脏读:一个事务,读取到另一个事务中没有提交的数据
不可重复读(虚读):同一事务中,两次读取到的数据不一样
幻读:一个事务操作数据表中所有记录,另一个事务提交一条数据,则第一个事务查询不到自己的修改
隔离:
read uncommitted:读未提交
read committed:读已提交
repeatable read:可重复读
用户管理和权限管理
用户管理:
创建用户:
create user '用户名'@'主机名' identified by '密码';
create user 'zhangsan'@'localhost' identified by '123';
create user 'lisi'@'%' identified by '123';
删除用户:
drop user '用户名'@'主机名';
drio user 'zhangsan'@'localhost';
修改用户:
update user set password = password('新密码') where user = '用户名';
update user set password = password('abc') where user = 'lisi';
set password for '用户名'@'主机名' = password('新密码');
set password for 'root'@'localhost' = password('123');
权限管理:
授权:
grant 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
grant select,delete,update ON db3.id TO 'lisi'@'%';
撤权:
revoke 权限列表 ON 数据库名.表名 from '用户名'@'主机名';
revoke update ON db3.'account' from 'lisi'@'%';