mysql04

视图

基本概念:

1.视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含列,其数据来自对应的真实表(基表)

总结:

1.视图是根据基本来创建的视图是虚拟的表

2.视图也有列,数据来自基表

3.通过视图可以修改基表的数据

4.基表的改变,也会影响到视图的数据

视图的基本使用

1.create view视图名as select语句

2.alter view视图名as select语句 --更新成新的视图

3.SHOW CREATE VIEW 视图名

4.drop view视图名1,视图名2

视图细节讨论

1.创建视图后,到数据库去看,对应视图只有一个视图结构文件(形式:视图名.frm)

2. 视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ]----针对前面的雇员管理系统-----

mysql> create view myview as select empno ,ename , job, comm from emp;

mysql> select * from myview;

mysq>update myview set comm=200 where empno=7369;//修改视图,对基表都有变化mysql> update emp set comm=100 where empno=7369;//修改基表,对视频也有变化

3.视图中可以再使用视图,数据依然来自基表

视图最佳实践

1.安全。一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查看保密的字段。

2性能。关系数据库的数据常常会分表存储,使用外键建立这些表的之间关系。这时, 数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关的表和字段组合在一起,就可以避免使用JOIN查询数据。

3.灵活。如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就可以少做很多改动,也达到了升级数据表的目的。

MySQL管理

Mysql用户

mysql中的用户,都存储在系统数据库mysql中user表中

其中user表的重要字段说明:

1.host:允许登录的“位置”,localhost表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100

2. user:用户名;

3. authentication_string:密码,是通过mysql的password()函数加密之后的密码。

  1. 创建用户

create user‘用户名’@’允许登录位置’identified by‘密码

说明:创建用户,同时指定密码

  1. 删除用户

drop user‘用户名’@’允许登录位置’;

注意:

不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和。数据对象(表,视图,触发器)都不一样

  1. 用户修改密码

修改自己的密码:

set password = password(密码');

修改他人的密码(需要有修改用户密码权限):

set password for"用户名'@"登录位置 =password(密码');

mysql中的权限

  1. 给用户授权

基本语法:

grant 权限列表 on库.对象名to‘用户名’@’登录位置’【identified by‘密码’】

说明: 1,权限列表,多个权限用逗号分开grant select on ......-

grant select,delete,create on .....grant all 【privileges】 on ..... /表示赋予该用户在该对象上的所有权限

2.特别说明

*.*:代表本系统中的所有数据库的所有对象(表,视图,存储过程)库.*:表示某个数据库中的所有数据对象(表,视图,存储过程等)

3,identified by可以省略,也可以写出.

⑴如果用户存在,就是修改该用户的密码,

⑵如果该用户不存在,就是创建该用户!

  1. 回收用户授权

基本语法: revoke权限列表 on库.对象名from '用户名"@"登录位置';·

  1. 权限生效指令

如果权限没有生效,可以执行下面命令.

基本语法: FLUSH PRIVILEGES;

管理细节:

1.在创建用户的时候,如果不指定Host,则为%,%表示表示所有IP都有连接权限

create user xXX;

2.你也可以这样指定

create user 'xxx'@'192.168.1.%’表示xxx用户在192.168.1.*的ip可以登录mysql

3.在删除用户的时候,如果host不是%需要明确指定‘用户'@'host值'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是秀秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值