视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化会影响到视图。
基本使用:
创建视图 : create view [视图名] as select语句
删除视图: drop view [视图名]
视图的注意事项
- 必须唯一命名(不能出现同名视图或表名)
- 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
- 视图不能添加索引,也不能有关联的触发器或者默认值。
- 视图可以提高安全性,必须有足够的访问权限。
- order by可以用在视图中,但是如果从该视图检索数据select中也含有order by,那么该视图中的order by将被覆盖
- 视图可以和表一起使用
用户管理
MySQL中的用户信息,都存储在系统数据库mysql的user表中。
host :表示这个用户可以从哪个主机登陆,如果是localhost ,表示只能从本机登陆
操作命令
创建用户:
create user '用户名'@'登陆主机IP' identified by '密码'
修改密码:
更改自己密码 set password = password('新的密码')
root用户修改制定用户的密码 set password for '用户名'@'主机名'=password ('新的密码')
授予权限:
语法 : grant 权限列表(多个权限可用逗号分开) on 库.对象名 to '用户名'@'登陆位置' [identified by '密码' ]
grant all [privileges] on [库名称].对象名 to '用户名'@'登陆位置' [identified by '密码' ] //赋予该用户在该对象上的所有权限
grant 权限列表 on *.* to '用户名'@'登陆位置' [identified by '密码' ] 赋予本系统中的所有数据库的所有对象
grant 权限列表 on [库名称] .* to '用户名'@'登陆位置' [identified by '密码' ] 赋予某个数据库中的所有数据对象
identified by可选。如果用户存在,赋予权限的同时修改密码,如果用户不存在,就创建用户
如果发现赋予权限后,没有生效,可执行 flush privileges
回收权限:
revoke [权限列表] on [库.对象名] from '用户名'@'登陆位置'
删除用户:
drop user '用户名'@'主机名'