MySQL索引,视图总结

索引
(
/*
  创建索引
  语法:create index 索引名称 on 表名(字段名);
        alter table 表名 add index 索引名称(字段名);
*/
(
-- 案例
create index epay_index on emp(epay);
)
/*删除索引 
  语法: drop index 索引名称 on 表名;
  */
drop index epay_index on emp;
/*查看索引*/
)

-- 64.视图
(
/*
什么是视图 

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。
视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。
这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据。
数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。
使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。

视图的作用 :
1.使操作简单化,可以对经常使用的查询定义一个视图,使用户不必为同样的查询操作指定条件
2.增加数据的安全性,通过视图,用户只能查询和修改指定的数据。
3.提高表的逻辑独立性,视图可以屏蔽原有表结构变化带来的影响。

创建视图时不能使用临时表。
即使表被删除,视图定义仍将保留。
定义视图的查询不能包含 以下语句:
order by
compute 子句
compute by 子句
into 关键字 
*/
/*
  创建视图
  语法:create view 视图名称 as 查询语句
*/
(
create view view_a as 
select e.ename,d.dname from emp e,dept d where e.did=d.did;
)
/*查询视图
  语法:select * from 视图名称;

*/
select * from view_a; 

/*删除视图 
  语法:drop view 视图名称;*/
drop view view_a;

/*向视图中添加数据
  语法:insert into 视图名称(字段1,字段2,...) values (值1,值2,....);
  不能添加数据到多个表,因为添加语句涉及到了多个基表*/
insert into view_a(ename) values ('sasafd');  -- 添加到emp表中ename字段中
select * from emp;


/*向视图中修改数据
   可以修改单表数据,不能修改多表数据
  update 视图名称 set 字段1=新值1 where 字段2=值2;*/
update view_a set ename='sssss' where ename='sasafd';  -- 修改emp表中ename字段中

/*
  with check option 的使用
  语法:create view 视图名称 as 查询语句  with check option;

  --在创建视图时,可以使用with check option选项,
  --其作用是限定向视图添加或修改数据时,添加或修改的数据必须遵照创建视图时where之后的条件
*/


/*修改视图定义
  语法: alter view 视图名称 as 查询语句*/
)

 

你可能感兴趣的:(MySQL)