SQL语句之VIEW视图和空值

本文详细介绍了SQL中的VIEW视图概念,包括如何创建带有不同条件的视图,删除视图的方法,以及查询和更新视图的规则。同时涵盖了空值的判断和运算。
摘要由CSDN通过智能技术生成

文章目录

一、VIEW视图

1、定义视图 CREATE VIEW

2、删除视图

3、查询视图和更新视图

二、空值

1、判断一个属性是否为空值

2、空值的运算

一、VIEW视图

1、定义视图 CREATE VIEW

CREATE VIEW 视图名(列名 1,列名 n) //若省略列名,则该视图由子査询中 SELECT 的目标列字段组成
AS 子查询
WITH CHECK OPTION; //若添加该句,则表示对视图进行增删改时要满足子查询中的条件表达式

在以下情况中必须明确指定组成视图的列名:
1.某个目标列不是单纯的列名,而是聚集函数或列表达式
2.多表连接时选出了几个同名列作为视图的字段
3.需要在视图中为某个列启用新的更合适的名字

行列子集视图:由单个基本表导出,仅去掉了基本表的某些行和某些列,但保留了主码

若某些视图是建立在另一个表的全部属性列上的,即视图与基本表的各列是一一对应的。那么当修改基本表的结构时,基本表和视图的映像关系会被破坏。这种情况最好在修改基本表后除该视图,然后重建该视图

eg1.建立 TAB1 的视图

CREATE VIEW V TAB1
AS
SELECT C1, C2, C3, C4
FROM TAB1
WHERE C1=1;

eg2.建立 C4 为4时 TAB1 的视图,并保证以后每次增酬改时都要满足 C4为4的条件CREATE

VIEW V TAB2
AS
SELECT C1, C2, C3, C4
FROM TAB1
WHERE C4='4'
WITH CHECK OPTION;

eg3.建立在一个或多个已定义号的视图上

CREATE VIEW V TAB3
AS
SELECT C1, C2,C3
FROM V TAB1
WHERE C2=2;

eg4.为减少冗余数据,定义基本表时一般只存放基本数据。当需要使用计算得出的派生数据时,可以设置在视图中的派生属性列上,也称为虚拟列。带虚拟列的视图也称为带表达式的视图

CREATE VIEW V TAB4(C1,new C2)
AS
SELECT C1,10+C2
FROM TAB1;

eg5.分组视图:带有聚集函数和 GROUP BY 子句

CREATE VIEW V TAB5(C1, avg C2)
AS
SELECT C1, AVG(C2)
FROM TAB1
GROUP BY C1;

2、删除视图

DROP VIEWDROP VIEW 视图名 CASCADE://若使用 CASCADE 级联删除语句,则将把该视图导出的所有视图一并删除

eg1.
DROP VIEW V TAB2;
eg2.
DROP VIEW V TAB1 CASCADE; //由 V TAB1 导出的 V TAB3 也一并删除

3、查询视图和更新视图

视图定义后,对视图进行查询和更新的语句和语法与基本表相同
视图的查询与更新最终都会转换为对基本表的查询和更新,这一过程也被称为视图消解
一般来说,行列子集视图的查询和更新都可以顺利转换,其他则不一定

二、空值

1、判断一个属性是否为空值

属性 IS NULL
属性 IS NOT NULL

2、空值的运算

空值与另一个值的算术运算结果为空值
空值与另一个值的比较运算结果为 UNKNOWN
在查询语句中,只有使 WHERE 和 HAVING 子句的选择条件为 TRUE 的元组才会被选出作为输出结果(即不包括UNKNOWN 的情况)

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值