第九节——枚举类型,视图与索引

Posted 想学习安全的小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第九节——枚举类型,视图与索引相关的知识,希望对你有一定的参考价值。

枚举类型

一、枚举类型的使用

  1. 创建枚举,语句:CREATE TYPE 枚举名 AS ENUM (枚举值1, 枚举值2, ......);,之后使用枚举类型时,只能使用规定的枚举值,不能使用非规定的值。
  2. 创建表时,使用枚举类型,语句:CREATE TABLE 表名 ( 列名 数据类型, 列名 枚举名 );,从这里可以看出枚举类型也属于一种数据类型。
  3. 插入数据时,使用枚举类型,语句:INSERT INTO 表名(列名,枚举名) VALUES (数据1, 枚举值1);
  4. 举例:
       -创建枚举类型,枚举名为name,枚举值为:qwe,asd,zxc。语句:create type name as enum ('qwe','asd','zxc');

       -创建表testable时,name列使用枚举name充当数据类型,语句:create table testtable (id int,name name);

       -插入数据时,插入qwe数据,语句:insert into testtable values (1,'qwe');

视图

一、视图的概念

  1. 视图是一个“虚”表,一个不存在的表,视图所拥有的数据,并非来自于本身,而是从其他表中借调过来的。
  2. 每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

二、视图的优点

  1. 使用视图可以定制化一些数据,限制范围,过滤条件,从这个视图得到的数据因为都限制过滤定制化处理了,方便你去分析

三、视图的缺点

  1. 视图不好修改,最好别对视图修改,有什么问题最好还是对组成视图的基表来操作,而且有的视图在某些数据库或者某些条件下是不能修改的。

四、与union的不同点

  1. union要求结合的列要拥有相同的数据类型,而视图不用
       -查看表1和表2的数据类型

       -使用union连接两个表,报错

       -使用视图,组合两个表的数据

五、视图的用法

  1. 创建视图,语句:
create view 视图名 as select 列名1,列名2 from 表名1,表名2 where 条件名;
  1. 语句特点:视图把as后面的sql语句查询出来的数据整理到了一张表里面,所以视图是一张虚表。

六、物化视图

  1. 特征:物化视图在某种意义上说就是一个物理表, 会占用数据库磁盘空间。
  2. 创建物化视图,使用关键字materialized,语句:create materialized view 物化视图名 as select 列名 from 表名 where 条件;

七、视图与物化视图的区别:

  1. 视图创建时快,查询时慢;物化视图创建慢,查询快。
  2. 视图通过逻辑将sql语句的结果整理到表上,是虚表,以时间换空间;物化视图将表整理后存入一张整理后的“真实”表,以空间换时间。

索引

  1. 索引的用途:类似于字典的目录,通过建立索引,可以把a开头的内容,整合到前列。没有索引则是按存入数据的顺序,一一查询。
  2. 建立索引,语句:CREATE INDEX 索引名 ON 表名 (需要建立索引的列名)
  3. 建立B-Tree索引,语句:create index 索引名 on 表名 using btree(列名);
  4. 建立hash索引,语句:create index 索引名 on 表名 using hash (列名);

以上是关于第九节——枚举类型,视图与索引的主要内容,如果未能解决你的问题,请参考以下文章

OC第九节——协议与代理

第九十九节,JavaScript数据类型

第九节——结构体

第九节:SQLServer函数大全--类型转换函数日期函数

第九节——spring-mcv快速入门

第九节 页面布局(简历)