MYSQL数据库高级用法

视图

什么是视图

当我们在关联多个表进行操作的时候,往往需要一大串代码。这时候我们就可以创建一个虚表来保存需要的信息,从而起到节省代码,简洁明了的目的。这个虚表就是视图。
我们还可以在子表关联主表时创建视图,让子表直接关联视图,这样的话当我们对主表进行修改时只需要更改视图的关联代码即可,而不需要再对所有子表进行一一修改。
创建视图:
创建视图的语句是:create view 视图名 as select语句;

create view 视图名 as select * from students;
这样,我们就创建了一个和students表一模一样的虚表。

查看视图

show tables;

使用视图

select * from 视图名

删除视图

drop view 视图名

事务

什么是事务

事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行。
简单的说,事务会把处在事务语句中的代码缓存起来暂不执行。到所有代码读取完毕会一起执行,从而能保证数据不会丢失。

事务的四大特性ACID

原子性(Atomicity)

一个事务将会像原子一样被视为一个不可分割的整体。事务中的所有语句组合在一起就相当于是一条语句。

一致性(Consistency)

数据库总是从一种状态直接转换到另一种状态,事务中的语句,要么都被执行,要么都不被执行。其状态是一致的。

隔离性(Isolation)

如果事务还没有结束,那么前边做过的修改将不会被其他地方查看到。

扫描二维码关注公众号,回复: 4196567 查看本文章

持久性(Durability)

只要事务结束时提交确认,那么修改将不可撤回。若在事务结束时rollback,那么数据将回滚到事务执行前的状态。

事务的使用

使用事务前,应先确认表的引擎类型,必须是innodb类型的表才可以使用事务。MySQL表格默认的引擎类型就是innodb。
事务的使用形式是:

  1. 开启事务
  2. sql语句
  3. 提交或回滚

开启事务

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 来刷新权限.

猜你喜欢

转载自blog.csdn.net/washing1127/article/details/83548142