继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

视图查询

为爱心太软
关注TA
已关注
手记 170
粉丝 1.4万
获赞 860

什么是视图

视图是虚拟的表。与包含真实数据的表不一样,视图只是基于其他表的查询结果集。
创建视图之后,可以用与表基本相同的方式使用它们。可以对视图执行SELECT操作,过滤和排序数据,将视图联结到其他视图或表进行查询。

创建视图

Students表:

| id  | class_id | name | gender | score |
| --- | -------- | ---- | ------ | ----- |
| 1   | 1        | 小明 | M      | 90    |
| 2   | 1        | 小红 | F      | 95    |
| 3   | 1        | 小军 | M      | 88    |
| 4   | 1        | 小米 | F      | 73    |
| 5   | 2        | 小白 | F      | 81    |
| 6   | 2        | 小兵 | M      | 55    |
| 7   | 2        | 小林 | M      | 85    |
| 8   | 3        | 小新 | F      | 91    |
| 9   | 3        | 小王 | M      | 89    |
| 10  | 3        | 小丽 | F      | 88    |

Classes表:

| id | name |
|----|------|
| 1  | 一班  |
| 2  | 二班  |
| 3  | 三班  |
| 4  | 四班  |

通过CREATE VIEW语句来创建视图:

CREATE VIEW Grade_ranking AS
SELECT
  C.name class_name,
  S.name,
  S.score
FROM
  Students S
  INNER JOIN Classes C ON S.class_id = C.id
ORDER BY
  S.score DESC;
  
SELECT class_name, name, score FROM Grade_ranking WHERE score > 90;

+------------+-------+-------+
| class_name | name  | score |
+------------+-------+-------+
| 一班       | 小红  | 95    |
| 三班       | 小新  | 91    |
+------------+-------+-------+

首先创建了一个名为Grade_ranking的视图,它联结两个表,返回class_name、name、score的列表,然后从视图中检索特定数据。
利用视图,可一次性编写基础的SQL,然后根据需要多次使用。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP