数据库的索引和视图

数据定义功能包括 :

  • 表的定义
  • 索引的定义
  • 视图定义

索引

      一、索引的创建与删除

创建索引的语句格式如下:

CREATE  [UNIQUE]  INDEX  索引名 

       ON   表名(列名[,列名]……)

【例2-49】为emp_c表按员工的名字(ename)建立索引,索引名为emp_ename_idx。

CREATE INDEX emp_ename_idx ON emp_c(ename);

【例2-50】为emp_c表按工作和工资建立索引,索引名为emp_job_sal_idx

CREATE INDEX emp_job_sal_idx ON emp_c(job,sal);

 二、查看索引

         SHOW  INDEX  FROM  <表名>;

        【例2-51】查看表emp_c的索引信息。

SHOW INDEX FROM emp_c;

       三、删除索引

         DROP  INDEX  索引名  ON  表名;

       【例2-52】删除emp_c表中已建立的索引 emp_ename_idx

DROP INDEX emp_ename_idx ON emp_c;

注意:设置索引,系统搜索时间会更短

测试:

SET profiling=1;#设置系统监控
SELECT * FROM emp_c WHERE empno=1002;
SHOW PROFILES;#查看监控信息
CREATE INDEX emp_idx ON emp_c(empno);
SELECT * FROM emp_c WHERE empno=1002;
SHOW PROFILES;#查看建立索引后的监控信息

视图

           一、建立视图的原因

  • 提供各种数据表现形式,隐藏数据的逻辑复杂性并简化查询语句
  • 提供某些安全性保证,简化用户权限的管理 对重构数据库
  • 提供了一定的逻辑独立性

          二、创建视图

     语句格式如下:

     CREATE  [OR  REPLACE]  VIEW   <视图名>  [(<别名>[,<别名>]…)]

     AS

    <SELECT语句>

    [WITH  CHECK  OPTION  ]

          【例2-53】创建带有WITH CHECK OPTION选项的视图。  

CREATE  VIEW  v_dept_chk
AS
SELECT empno,ename,job,deptno FROM  emp
WHERE  deptno=10
WITH  CHECK  OPTION;

    三、修改视图

     ALTER  VIEW   视图名[(别名[,别名]…)]

             AS

             SELECT语句

             [WITH  CHECK  OPTION];

             或者CREATE  [OR  REPLACE]  VIEW (语法同创建)

           

CREATE OR REPLACE VIEW vdk AS
SELECT empno,ename,job,deptno FROM emp
WHERE deptno=10
WITH CHECK OPTION;
SELECT * FROM vdk;

ALTER VIEW vdk AS
SELECT empno,ename,job FROM emp
WHERE deptno=10
WITH CHECK OPTION;
SELECT * FROM vdk;

      四、删除视图         

        DROP VIEW 视图名[,视图名,…];

       【例2-56】删除已创建的视图v_dept_chk。

DROP VIEW v_dept_chk;

      五、视图使用,同TABLE

                 已知:现有视图vdk

SELECT * FROM vdk;
SHOW TABLES;
DESC vdk;//查看表的结构

注意:引用table的物理内存,是一张虚拟表;

发布了75 篇原创文章 · 获赞 164 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_41679818/article/details/105572122