HeadFirstSQL学习笔记(四)

  1. 创建视图

Create view web_designers as

Select…

查看视图的内容,可以把她想成一张表:

Select * from web_designers;

 

什么是视图

1)视图把复杂的查询简化为一个命令,不需要重复创建复杂的联接与子查询;

2)为数据创建视图,可于改变底层表结构时以视图模仿数据库的原始结构,因而无需修改使用旧结构的应用程序;

3)创建视图可以隐藏读者无需看到的信息;

 

带有CHECK OPTION的视图

检查每个进行INSERT或者DELETE的查询,它根据视图中的where子句来判断这些查询可否执行。

 

视图使用完毕:

DROP VIEW pb_dimes;

  1. 事务:

是一群可完成一组共组哦的SQL语句。在事务过程中,如果所有步骤无法不受干扰地完成,则不该完成任何单一步骤。

三种事务工具

START TRANSACTION;   持续追踪后续所有SQL语句,直到你输入COMMIT或者ROLLBACK为止

COMMIT 如果所有语句已经妥当,输入commit让一切改变成真

ROLLBACK;  回滚, 回到事务开始前的状态

 

如何让事务在MySQL下运作

MySQL下使用事务前,你需要采用正确的存储引擎,存储引擎是存储所有数据库内容和结构的背后功臣,有些存储引擎允许事务有些则不行。

 

  1. 存储引擎必须是BDB或者InnoDB,两种支持事务的引擎之一。就现在的目标而言,从两种引擎中选择任一种都可以。

改变存储引擎:alter table your_table type=InnoDB;

 

  1. 数据库用户

根用户:具有所有数据库操控能力。

Set password for 'root'@'localhost'=password('b4dc10');
-- 根用户的名称是‘root’,‘localhost’代表安装与运行SQL软件的机器,password部分是为根用户选择的密码

添加新用户

Create user elsie   -- 用户名称
Identified by'cl3v3r'; -- 这是密码

 

判断用户的确切需求:

刚刚创建的新用户没有任何权限,GRANT语句可以控制用户对表和列可执行的操作。

Grant select on
Clown_info
To elsie;  -- 用户elsie被授予某个表的select权限

GRANT的各种变化

1可用同一个GRANT语句为多位用户设定权限;

WITH GRANT OPTION让用户能把刚获得的权限授予其他用户;

指定用户可于某个表中使用的列,而不是允许用户操作整张表;

一段语句可对表制定超过一种权限;

GRANT ALLselect\update\insert\delete权限都授予用户;

使用database.*可把权限范围运用到数据库中的每张表。

 

撤销权限:REVOKE

Revoke select on
Clown_info
From elsie;

只撤销WITH GRANT OPTION

Revoke grant option on
Delete on chores
From happy,sleepy;

  1. 角色:

角色是把特定权限汇集成组没,再把组权限授予一群人的方式。

Create role data_entry; -- 创建角色
Grant select,insert on some_table todata_rntry; -- 为角色授予权限
Grant data_entry to doc; -- 把角色指定给用户
DROP ROLE data_entry; -- 卸除角色
Grant data_entry to doc WITH ADMINOPTION; -- 允许用户把角色授予其他人
REVOKE data_entry from doc CASCADE; -- 撤销角色,连锁反应;RESTRICT ,已把权限授予他人,则连锁的权限都会保留


你可能感兴趣的:(数据库)