视图
1、什么是视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。
2、视图的相关操作
-
创建视图
create view 视图名 as select语句;
-
修改视图 (基表与视图息息相关,操作互相影响)
update v_ename_dname set dname='sales' where ename='CLARK';
select * from EMP where ename='CLARK';
-
删除视图
drop view 视图名;
3、视图的规则和权限
-
与表一样,必须唯一命名(不能出现同名视图或表名)
-
创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
-
视图不能添加索引,也不能有关联的触发器或者默认值
-
视图可以提高安全性,必须具有足够的访问权限
-
order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中order by 将被覆盖
-
视图可以和表一起使用
用户管理
1、用户
MySQL中的用户,都存储在系统数据库mysql的user表中
authentication_string:用户密码通过password函数加密后的
*_priv:用户拥有的权限
-
创建用户
create user '用户名'@'登陆主机/ip' identified by '密码';
-
修改用户密码
-自己修改:set password=password('新的密码');
-root用户指定修改:set password for '用户名'@'主机名'=password('新的密码');
-
删除用户
drop user '用户名'@'主机名'
2、数据库权限
权限列表:
所有权限:*.*
-
授权
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
identifified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户
-
回收权限
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
如果赋权限后,没有生效,执行flush privileges;