MySQL----视图
目录
一:什么是视图
相关操作
视图的创建
查看视图
修改视图
修改试图数据
限制手段
删除视图
二:用户和权限管理
相关操作
创建用户
修改密码
删除用户
给用户授权
授权前:
授权范围
授权后:
回收权限
在了解了对库,表的增删改查后,再了解下视图。
有没有觉得每次写复杂 SQL 查询都很头疼?尤其是涉及好几个表关联,还要筛选、聚合的时候,语句又长又容易出错。学习视图后,我们就可以把这些复杂语句打包起来,简化我们的工作。
一:什么是视图
视图是一张长期有效的虚拟表,视图基于查询建立,表中的数据不会存在视图中不会占用物理存储,但用户可以通过查询看到数据。
相关操作
视图的创建
create view 视图名 as 查询语句
create view 视图名 [查询列表] as 查询语句;
示例:创建 视图 v_student
查询列表中的是要查的数据的名字查询语句中的列名要和其一一对应-------可理解为列名的别名
查看视图
show tables;
修改视图
alter view 视图名 as 查询语句
修改试图数据
update 表名 set 列名 = ......;
update 视图名 set 列名 = ......;
修改前的视图
修改前的 student表
修改真实表
改完真实表视图也被修改了 如下
修改视图
再看看此时真实表
可以发现 id 为2的 age 被改为了 20
可见 修改视图会影响到真实表,修改真实表也会影响到视图
怎么使视图不会影响到真实表呢
限制手段
七伤拳 | |
第一式 | 加聚合函数 |
第二式 | distinct |
第三式 | group by ..... having |
第四式 | union union all |
第五式 | order by |
第六式 | 查询列表使用子查询 |
第七式 | from 子句中引用 |
删除视图
drop 视图名 限制条件;
二:用户和权限管理
用户和权限是操作数据库的准入证。比如登录游戏你得有个账号,权限就相当于 vip 你的 vip 等级越高,你的特权越多。
超级权限 root | 能操作整个数据库系统,比如删库、管理所有用户 |
数据库级权限 | 能操作指定数据库的所有表 |
数据表级权限 | 能操作指定表 |
相关操作
创建用户
create user 用户名(username+要登陆的主机ip) identify by “密码”;
要登陆的主机 ip localhost = 127.0.0.1 都表示本机也就是你的电脑网卡的 ip
127.0.0.1 ip 地址表示方法 点分十进制 32比特 ipv4 地址 8bit一组 转为十进制
A 类 0~127 第一个为网络号 后三位表示主机
B 类 128 ~ 191 前两个为网络号 后一位表示主机C 类 192 ~ 223 前三位为网络号最后一位为主机号
199.168.100.% 表示 199.168.100 这个C类网下的所有主机 都可以登录
修改密码
对指定用户修改
set password for 用户名 = “密码”;
alter user 用户名 identified by "";
修改自己的密码
set password = "密码";
删除用户
drop user [if exists] 用户名;
给用户授权
grant 权限 on (作用范围)to 用户名;
grant all on java.* to user1@localhost; 授权用户“user1@localhost” java库的所有权限
允许用户将自己的权限授权给其他用户
grant 权限 on (作用范围)to 用户名 with grant option;
授权前:
仅拥有默认的 USAGE 空权限仅可登录 mysql
授权范围
java.* .*表示 java 库中所有的表, java.test 则表示 java 库中 test 表(授权对test表的权限)
*.* 表示 所有库的所有表
flush privileges; 刷新
授予 查询 java库中所有表的权限
授权后:
回收权限
revoke 权限 on 权限范围 from 用户名;
现在我不再怀疑 不怀疑 有多爱你
--------《太美丽》DT
⭐❤️👍