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

枚举类型

一、枚举类型的使用

  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 (列名);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值