# 视图

# 基本概念

视图本身是一张虚拟表,不存放任何数据。在使用 SQL 语句访问视图的时候,获取的数据是 MySQL 从其它表中生成的,视图和表在同一个命名空间。视图查询数据相对安全,视图可以隐藏一些数据和结构,只让用户看见权限内的数据,使复杂的查询易于理解和使用。

# 视图用法

#### 基本语法
CREATE OR REPLACE VIEW view_name 
AS select_statement

注意事项:表和视图共享数据库中相同的名称空间,因此,数据库不能包含具有相同名称的表和视图。

# 视图调用

和 MySQL 的表查询基本一致,可以使用各种查询条件。

SELECT * FROM user_order_view WHERE user_name='Cicada';

# 查看视图

SHOW CREATE VIEW user_order_view ;

# 修改视图

ALTER VIEW view_name AS select_statement ;

# 删除视图

DROP VIEW [IF EXISTS] view_name ;

# 视图更新

** 在指定条件允许的情况下,可以通过在视图上操作更新,删除,甚至写入数据,进而更新视图所涉及的相关表。

UPDATE user_order_view SET user_name='smile' WHERE id='1';

# 注意事项

# 索引

# 索引的优缺点

# 优点

  • 索引大大减小了服务器需要扫描的数据量
  • 索引可以帮助服务器避免排序和临时表
  • 索引对于 InnoDB(对索引支持行级锁)非常重要,因为它可以让查询锁更少的元组。

# 缺点

  • 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和 DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存索引文件。
  • 建立索引会占用磁盘空间的索引文件。
  • 如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
  • 对于非常小的表,大部分情况下简单的全表扫描更高效;

# 索引创建语法

-- 普通索引
CREATE index index1 on student (id);
-- 唯一索引
CREATE UNIQUE INDEX index2 on student(id);
-- 全文索引
CREATE FULLTEXT INDEX index3 on student(adress(20));
-- 创建单列索引
CREATE INDEX INDEX5 on student(name(10));
-- 联合索引
CREATE INDEX INDEX6 ON student (name,id); 
-- 普通索引
ALTER TABLE student ADD INDEX index1(id);
-- 唯一索引
ALTER TABLE student ADD UNIQUE INDEX index2(id);
-- 全文索引
ALTER TABLE student add FULLTEXT INDEX index3 (NAME(20));
-- 单列索引
ALTER TABLE student ADD INDEX index4 (adress(20));
-- 联合索引
ALTER TABLE student ADD INDEX INDEX5 (name,id);
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

寻梦启事 微信支付

微信支付

寻梦启事 支付宝

支付宝

寻梦启事 云闪付

云闪付