文章目录
视图
什么是视图
当我们在关联多个表进行操作的时候,往往需要一大串代码。这时候我们就可以创建一个虚表来保存需要的信息,从而起到节省代码,简洁明了的目的。这个虚表就是视图。
我们还可以在子表关联主表时创建视图,让子表直接关联视图,这样的话当我们对主表进行修改时只需要更改视图的关联代码即可,而不需要再对所有子表进行一一修改。
创建视图:
创建视图的语句是:create view 视图名 as select语句;
create view 视图名 as select * from students;
这样,我们就创建了一个和students表一模一样的虚表。
查看视图
show tables;
使用视图
select * from 视图名
删除视图
drop view 视图名
事务
什么是事务
事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行。
简单的说,事务会把处在事务语句中的代码缓存起来暂不执行。到所有代码读取完毕会一起执行,从而能保证数据不会丢失。
事务的四大特性ACID
原子性(Atomicity)
一个事务将会像原子一样被视为一个不可分割的整体。事务中的所有语句组合在一起就相当于是一条语句。
一致性(Consistency)
数据库总是从一种状态直接转换到另一种状态,事务中的语句,要么都被执行,要么都不被执行。其状态是一致的。
隔离性(Isolation)
如果事务还没有结束,那么前边做过的修改将不会被其他地方查看到。
持久性(Durability)
只要事务结束时提交确认,那么修改将不可撤回。若在事务结束时rollback,那么数据将回滚到事务执行前的状态。
事务的使用
使用事务前,应先确认表的引擎类型,必须是innodb类型的表才可以使用事务。MySQL表格默认的引擎类型就是innodb。
事务的使用形式是:
- 开启事务
- sql语句
- 提交或回滚
开启事务
begin; 或 start transaction;
提交事务
commit;
回滚事务
rollback;
索引
给数据库添加索引可以大大减少查询数据是的时间消耗,但是索引相当于额外添加了一个字段,会增加空间消耗。
查看已有索引
show index from 表名;
创建索引
create index 索引名 on 表名(字段名(长度));
删除索引
drop index 索引名 on 表名;
用户管理
在MySQL数据库中:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种
- 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表
- 数据库级别账号:对特定数据库执行增删改查的所有操作
- 数据表级别账号:对特定表执行增删改查等所有操作
- 字段级别的权限:对某些表的特定字段进行操作
- 存储程序级别的账号:对存储程序进行增删改查的操作
注意:进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限。账户的操作主要包括创建账户、删除账户、修改密码、授权权限等。
- 进入mysql
use mysql;
- 查看user表结构
desc user;
- 查看所有用户,允许访问的主机及密码
select user,host,authentication_string from user;
- 创建用户
grant 权限列表 on 数据库 to ‘用户名’@‘访问主机’ identified by ‘密码’;
- 修改用户权限
grant 权限名称 on 数据库 to 账户@主机 with grant option;
- 修改密码
update user set authentication_string=password(‘新密码’) where user=‘用户名’;
修改完成后,需要用 flush privileges 来刷新权限.
- 删除用户
drop user ‘用户名’@‘主机’;
delete from user where user=‘用户名’;
以上两种方法任一都可以,删除后用 flush privileges 来刷新权限.