Mysql视图,索引

  

<强>一、视图:
1,视图的定义:视图是物理表的映射结果,物理表变化,视图肯定变化。

  
 <代码>创建视图v_name作为选择列名(也可以是函数计算出来的结果如avg())从表; 
  

2,视图的作用:
2.1,权限控制
比如某几列,允许用户查询,其它列不允许。
可以通过视图开放其中一列或者几列,起到权限控制的作用。
如商品表中的进货价格,进货商等重要信息,一般用户是不能看到的。
2.2,简化复杂的查询语句。

  

3,视图能否更新,删除,添加?
如果视图的每一行与物理表一一对应,则可以,视图变化物理表变化。
如果视图的行是由物理表多行经过计算得到的结果,视图不可以更新的。

  

<强>二、删除与截断的区别:

  

1,删除是DML的,只是删除表中的数据。

  

2,截断是DDL的,先删除表,在创建表。

  

举例:创建一个列自增长的表,操作一下就一目了然啦....

  

<强>三,索引:

  

对于提高数据库性能,索引是个物美价廉的方式。不用加内存,不用改程序,不用调sql,只需要正确建立索引,就可以把查询速度提高百倍千倍。不过天下没有免费的午餐,建立索引提高了查询速度,但降低了增、删、改的速度。

  

1,索引是数据的目录,能快速定位行数据的位置。

  

2,索引<强>提高了查询速度强劲,但是<>强降低了增、删、改的速度(增删改时索引表也要变更),因此并非索引越多越好。

  

3,索引一般建立在查询频率高的列上加,并且加在重复度低的列上效果更好。

  

4,索引分类:

  

(1),索引|键普通索引:提高查询速度。
,创建表时指定:创建表测试(int id、关键(id));
B,创建表后添加:alter table表名添加索引(id)或在表上创建索引index_name(列)

  

(2)、独特|唯一键唯一索引:加快查询速度,并且约束数据不能重复。
,创建表时指定:创建表测试(int id主键,名字varchar(30),电子邮件varchar(30)独特的),
或者创建表测试(int id主键,名字varchar(30),电子邮件varchar(30),独特的(电子邮件),
B,创建表后添加:alter table表名添加独特(列)

  

(3),主键主键索引:加快查询速度,并且约束数据不能重复。

  

,创建时指定:
创建表测试(int id主键)

  
 <代码> B,创建表后添加:
  改变表的表名添加主键(列) 
  

(4),全文全文索引:
主要是针对文字的检索,只对MyISAM引擎有效,在InnoDB上无效。并且在中文环境下几乎是无效的,要分词加索引才可以,一般用第三方解决方案,如指南针。
(5),主键索引和唯一索引的区别:
主键索引不能为空,不能重复;唯一索引可以为空,不能重复。
<强>四,常用的语句:

  

1,显示数据库:显示所有数据库;

  

2,显示创建数据库数据库名:显示创建数据库的语句。

  

3,显示创建表的表名:显示创建表的语句。

  

4,显示指数从表名:显示表的索引。

  

5,显示表状态:当前库显示所有表的状态;

  

6,显示表状态如表名:当前库显示某张表的状态;

  

7,选择数据库():显示当前库名。

  

8,选择用户():显示当前用户。

  

9日解释sql语句:显示sql语句的执行状况。

  

10,添加/删除索引:
alter table表名添加[指数|独特]索引名(列名)
删除表索引索引名在表名
11日添加/删除主键索引:
alter table表名添加主键列(名)
删除表主键在表名

Mysql视图,索引