目录
1. 整体学习思维导图
2. 视图
2.1 视图的概念
视图就是一个虚拟表,它可以将我们select语句查询的结果创建并且存储在一个新的虚拟表(视图)中,并且这个虚拟表和原表之间的关系相连密切,无论修改哪一方都会影响另一方。
2.2 视图的创建和使用
-
创建视图
create view 视图名 as select语句;
案例:
mysql> create view myview as select ename,dname from emp inner join dept on emp.deptno=dept.deptno;Query OK, 0 rows affected (0.00 sec)
mysql> select * from myview;
+--------+------------+
| ename | dname |
+--------+------------+
| SMITH | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| JONES | RESEARCH |
| MARTIN | SALES |
| BLAKE | SALES |
| CLARK | ACCOUNTING |
| SCOTT | RESEARCH |
| KING | ACCOUNTING |
| TURNER | SALES |
| ADAMS | RESEARCH |
| JAMES | SALES |
| FORD | RESEARCH |
| MILLER | ACCOUNTING |
+--------+------------+
14 rows in set (0.00 sec)
没有创建视图前:
创建视图后:
-
删除视图
drop view 视图名;
2.3 视图规则和限制
-
与表一样,必须唯一命名(不能出现同名视图或表名)
-
创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引,也不能有关联的触发器或者默认值
-
视图可以提高安全性,必须具有足够的访问权限
-
order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖视图可以和表一起使用
3. 用户管理
3.1 用户
3.1.1 用户信息存放
MySQL数据库的用户信息存放在*mysql*数据库的user表中:
*************************** 4. row ***************************
Host: localhost
User: ouyang
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *1539B75515395E9F30FC71DF0D811A33872464F5
password_expired: N
password_last_changed: 2025-01-25 11:11:33
password_lifetime: NULL
account_locked: N
-
host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
-
user: 用户名
-
authentication_string: 用户密码通过password函数加密后的
-
*_priv: 用户拥有的权限
3.1.2 创建一个用户
create user '用户名'@'登陆主机/ip' identified by '密码';
注意:注册时密码过于简单会报错:
--ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3.1.3 删除一个用户
drop user '用户名'@'主机名'
3.1.4 修改用户密码
-
自己改自己
set password=password('新的密码');
-
Root修改
set password for '用户名'@'主机名'=password('新的密码');
3.2 数据库权限
3.2.1 给用户授权
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置';
权限列表 grant select on ... grant select, delete, create on .... grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
-
. : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
-
库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
刷新权限:
flush privileges;
3.2.2 回收权限
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';