SQL学习之“复杂一点的查询”

本节将学习一些SQL查询语句的复杂用法,

在SQL中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表,但它实际不是真实的表。视图与表的区别在于“是否保存了实际的数据”,其数据来源均建立在真实表的基础上。

1、视图介绍

创建视图的语法如下:

CREATE VIEW 视图名 AS

SELECT 列名

FROM 表名

WHERE 查询条件;

如果需要更新视图中的列或者其他信息,无需删除,使用 CREATE OR REPLACE VIEW 选项。而删除视图,使用 DROP 即可。

之所以要采用视图,是基于以下几点原因。

  1. 通过定义视图可以将频繁使用的SELECT语句保存以提高效率。
  2. 通过定义视图可以使用户看到的数据更加清晰。
  3. 通过定义视图可以不对外公开数据表全部字段,增强数据的保密性。
  4. 通过定义视图可以降低数据的冗余。

因为视图和表一样,数据行都是没有顺序的,所以,在一般的DBMS中定义视图时不能使用ORDER BY语句。在 MySQL中视图的定义是允许使用 ORDER BY 语句的,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。

修改视图的语法如下。

ALTER VIEW <视图名> 
AS <SELECT语句>

更新视图的语法如下。

UPDATE <视图名>
   SET 语句
 WHERE 语句

视图归根结底还是从表派生出来的,因此,如果原表可以更新,那么视图中的数据也可以更新。反之,修改视图的内容,数据表也会相应更新,注意,这是有条件地更新,因为视图只是原表的一个窗口,所以它修改也只能修改透过窗口能看到的内容。

删除的视图的语法如下。

DROP VIEW <视图名1> [ , <视图名2> …]

2、子查询

子查询就是将一个查询的结果作为另一个查询(主查询

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值