博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL学习笔记 - 视图
阅读量:6359 次
发布时间:2019-06-23

本文共 1378 字,大约阅读时间需要 4 分钟。

  hot3.png

视图指来源于一个或多个表(或视图),将表中数据筛选映射后展现出来的一种结构,并且随原表(或原视图)中数据改变而改变。

使用视图:

1)提高数据访问的安全性:可以只展示表中所需数据,将其他数据进行隐藏。

2)方便复杂的查询操作:视图可以基于多表连接,整合数据方便。

SQL创建视图语句

CREATE VIEW view_name [ column1_name [,column2_name ] … ]

AS subquery(子查询语句)

示例

emp表包含e_id, e_name, d_id, sex, age, dept, job, salary等属性

dept表包含d_id, d_name等属性

1 基于单表

CREATE VIEW view_emp

AS

SELECT e_id,e_name,sex,age,dept

FROM emp;

2 基于多表

CREATE VIEW view2_emp

AS

SELECT e.e_id, e.d_id, e.e_name, d.d_id, d.d_name

FROM emp e, dept d

WHERE e.d_id=d.d_id;

3 基于函数、分组数据

CREATE VIEW view_emp_sal

AS

SELECT dept, job, MAX(salary) maxsalary

FROM emp

GROUP BY dept, job

HAVING MAX(salary) > 4000

4 基于视图

要查询学生成绩中最高分在90分以上的学生信息

(1) 使用普通SQL语句

SELECT s.stu_id, s.cur_id, s.cur_name, MAX(s.result)

FROM (

SELECT re.stu_id, cu.cur_id, cu.cur_name, re.result

FROM result re, curriculum cu

WHERE re.cur_id = cu.cur_id

) s

GROUP BY s.stu_id

HAVING MAX(s.result) >= 90

(2) 使用视图

CREATE VIEW view2_result

AS

SELECT stu_id, cur_id, cur_name, MAX(result)

FROM view_result

GROUP BY stu_id

HAVING MAX(result) >= 90

上述SQL语句中,view_result表示成绩信息的视图

 

在视图中添加CHECK约束

在视图中执行插入、修改和删除等更新语句时,会对数据做条件检查

语法:

CREATE VIEW view_name [ column1_name [,column2_name ] … ]

AS subquery

WITH CHECK OPTION

示例

CREATE VIEW view_emp_dept

AS

SELECT e_id, e_name, sex, age, job

FROM emp

WHERE job=”teacher” //条件检查

WITH CHECK OPTION //添加CHECK约束条件

转载于:https://my.oschina.net/wqli/blog/76972

你可能感兴趣的文章
分布式系统---幂等性设计
查看>>
【转】时钟周期,机器周期,指令周期的区别
查看>>
MYSQL 更新时间自己主动同步与创建时间默认值共存问题
查看>>
android 屏幕适配
查看>>
Android Activity的4种启动模式
查看>>
leetcode第一刷_Minimum Depth of Binary Tree
查看>>
pm2-webshell —— 基于浏览器的终端控制台
查看>>
Mysql基准测试
查看>>
Session 撰改演示
查看>>
【转】python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)
查看>>
事务隔离级别(图文详解)
查看>>
canvas系列教程08-canvas各种坑
查看>>
浅析package.json中的devdependencies 和 dependencies
查看>>
又一个 iOS 侧边栏组件: SideMenu
查看>>
vue.js 打包遇到的问题
查看>>
【译】更优秀的GraphQL官方中文文档-客户端如何使用
查看>>
git pull遇到的问题
查看>>
eclipse下maven spring项目环境配置
查看>>
无缝轮播
查看>>
CTS失败项分析(2)android.telephony.cts.VisualVoicemailServiceTest#testFilter_data
查看>>