MySQL基础之视图实战篇
来源:互联网 发布:java主方法与类重名 编辑:程序博客网 时间:2024/05/29 00:32
创建视图
基本语法:
CREATE [OR REPLACE][ALGORITHM = {UNDEFINED | MERGE |TEMPTABLE}] VIEW view_name [(column_list)] AS SELECT_statement [WITH[CASCADED | LOCAL] CHECK OPTION]
其中,CREATE 表示创建新的视图,REPLACE表示替换已经创建的视图;ALGORITHM表示视图选择的算法;
view_name 为视图的名称,column_list为属性列;SELECT_statement表示SELECT
语句;
WITH [CASCADED | LOCAL] CHECK OPTION参数表示视图在更新时保证在视图的权限范围之内。
在单表上创建视图
视图是基于表之上的虚拟表,所以必须要先有表。
- 创建表
CREATE TABLE t( id INT PRIMARY KEY AUTO_INCREMENT, quantity INT, price DOUBLE);
- 创建视图
CREATE VIEW view_t AS SELECT quantity, price, quantity*price AS total FROM t;
在多表上创建视图
- 创建表
表1:
CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, number INT, name VARCHAR(20));
表2:
CREATE TABLE stutent_info( id INT PRIMARY KEY AUTO_INCREMENT, class VARCHAR(10), address VARCHAR(20));
- 创建视图
CREATE VIEW stu_glass(id, name, glass) AS SELECT student.id, student.name, stutent_info.classFROM student, student_info WHERE student.id=student_info.id;
查看视图
视图创建好了后,可以查看视图的一些信息,如以下几种:
查看视图描述
与表类似DESC stu_glass;
查看视图定义
SHOW CREATE VIEW stu_glass;
修改视图
当数据库中的基本表某些字段发生变化的时候,可以通过修改视图来保持与基本表的一致性。
在Mysql中可以通过CREATE OR REPLACE VIEW
语句和ALTER
语句来修改视图。
- CREATE OR REPLACE VIEW语句
使用改语句时,如果视图已经存在则对视图进行修改,当视图不存在时,就创建视图。
CREATE OR REPLACE VIEW view_t AS SELECT * FROM t;
可通过DESC view_t
语句来查看修改后的视图结构。
- ALTER语句
ALTER VIEW view_t AS SELECT quantity FROM t;
更新视图
更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。
通过视图更新的时候都是转到基本表上进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。
- UPDATE语句
UPDATE view_t SET quantity=5;
- INSERT语句
在基本表中插入语句,其关联视图也会进行相应改变的。
INSERT INTO t VALUES(2, 2);SELECT * FROM view_t;
- DELETE语句
在视图中删除一行数据,其基本表也会进行相应的删除。
DELETE FROM view_t WHERE price=50;SELECT * FROM t;
删除视图
当视图不再需要时,可以将其删除,删除一个或多个视图可以使用DROP VIEW
语句。语法如下:
DROP VIEW [IF EXISTS] view_name [, view_name]... [RESTRICT | CASCADE]
例如:
DROP VIEW IF EXISTS stu_glass;
0 0
- MySQL基础之视图实战篇
- MySQL(基础篇)之视图
- Mysql基础篇之视图
- MySQL基础之视图理论篇
- MySQL基础之索引实战篇
- (三)MySql基础之视图
- MySQL语句基础之索引&&视图
- Tomcat实战之基础篇
- mysql-视图基础学习
- 【MySQL基础】视图
- MySQL基础之表操作 索引 约束 视图等介绍
- MySQL的初次见面礼基础实战篇
- MySQL的初次见面礼基础实战篇
- MySQL的初次见面礼基础实战篇
- 数据库基础 之 “视图”
- MySQL之视图
- mysql数据库之视图
- mysql之视图
- MySQL之——CentOS6.5_x64安装配置drbd8.4.2
- 【面试题】如何判断一个类是不是另一个的子类
- 实现响应式布局的方法
- 枚举与深度优先搜索
- SpringMVC+JDBC:分页示例
- MySQL基础之视图实战篇
- C++面向对象高级编程(上)学习笔记
- C++中的多态机制----虚函数
- 209. Minimum Size Subarray Sum
- jQuery与Java实现图片的剪切
- 【软考】软件攻城狮考试(一)——总览
- ARM-LINUX内核编译(含uboot-kernel-rootfs)
- Intellij Idea搭建Maven Web项目(一)
- OpenGL学习(一):构造OpenGL ES View