数据库之高级操作(视图、触发器、事务、存储过程、索引)

一 视图

什么是视图?

  视图是由一张表或多张表的查询结果构成的一张虚拟表。

为什么要有视图?

  将复杂常用的查询结果保留下来重复使用。(将一张大表拆分成很多小表)

语法:create view 视图名[(查询字段的名字们)] as (查询语句)

eg1:建立一张emp表的视图表(数据与emp一致)

create view new_emp as (select * from emp);

注意:1.查询的字段们要与查询语句的查询字段对应

   2.create or replace :视图没有则被创建,有则被替换

eg2:利用替换修改是视图表,要求为new_emp中只有id、name字段

create or replace view new_emp(id,name)as (select id,name from emp);
+----+----------+
| id | name     |
+----+----------+
|  1 | egon     |
|  2 | yanghuhu |
|  3 | sanjiang |
|  4 | owen     |
|  5 | liujie   |
|  6 | yingjie  |
+----+----------+

视图的修改

alter 等价于 create or replace,这两个语句语法一致

eg3:利用alter修改是视图表,要求为new_emp中有id、name、salary字段

alter view new_emp(id,name,salary) as (select id,name,salary from emp);
+----+----------+--------+
| id | name     | salary |
+----+----------+--------+
|  1 | egon     |      3 |
|  2 | yanghuhu |      2 |
|  3 | sanjiang |     10 |
|  4 | owen     |  88888 |
|  5 | liujie   |      8 |
|  6 | yingjie  |    1.2 |
+----+----------+--------+

视图中的字段操作(注意:不允许alter操作字段)

alter table new_emp rename new_emp1;
alter view new_emp modify id tinyint;
两个都会报错,因此视图中的字段无法操作。

视图中记录的操作:等价于普通表,完成增删改查,操作的是实体表即改是视图表的数据不会随着表(数据库表)的更新而变化,除非重新创建。

视图的删除:

drop view 视图名;

视图表(虚拟表)的作用:用于数据库中表的查询。

 二 触发器

猜你喜欢

转载自www.cnblogs.com/846617819qq/p/10268607.html