美文网首页
mysql 视图

mysql 视图

作者: 暴躁程序员 | 来源:发表于2023-03-12 16:32 被阅读0次

视图是通过sql查询语句动态生成的自定义虚拟表,只保存sql语句的逻辑,不保存实际数据,可简化sql操作

1. 创建和使用视图

  1. 创建测试表和测试数据(创建用户表和用户详情表)
-- 用户表
CREATE TABLE IF NOT EXISTS `user`(
    id int PRIMARY key auto_increment,
    username VARCHAR(22) NOT NULL,
    `password` VARCHAR(22) NOT NULL
);

-- 用户详细信息表
CREATE TABLE IF NOT EXISTS user_info(
    id INT PRIMARY key auto_increment,
    uid INT NOT NULL, 
    realname VARCHAR(22) NOT NULL,
    gender enum('男','女') NOT NULL,
    height SMALLINT NOT NULL,
    age SMALLINT NOT NULL
);

-- 插入测试数据
INSERT INTO `user`(username,`password`) VALUES ('zhangsan','123456'),('lisi','666666');
INSERT INTO user_info(uid,realname,gender,height,age) VALUES (1,'张三','男',175,22),(2,'李四','男',190,30);

  1. 创建视图
    语法:CREATE VIEW 视图名 AS 查询sql
--  创建 用户详细信息 视图
CREATE VIEW v_user_detail 
AS 
SELECT a.id,a.username,a.`password`,b.realname,b.gender,b.height,b.age FROM `user` a,user_info b WHERE a.id = b.uid;

-- 单纯 sql 查询 --- 查询用户详细信息
SELECT a.id,a.username,a.`password`,b.realname,b.gender,b.height,b.age FROM `user` a,user_info b WHERE a.id = b.uid;

  1. 使用视图
    视图就是虚拟表,所以视图的使用方式和表相同
    注意:视图一般不用于实际表中数据的插入、删除、修改(只适合一些单一简单的插入、删除、修改,因为限制太多)
-- 查询身高大于180用户的用户详细信息
SELECT * FROM v_user_detail WHERE height > 180;

2. 查看视图

-- 方式一:查看所有视图
SHOW TABLES; -- 查看表和视图
SHOW TABLES LIKE 'v_%'; -- 通过视图命名来区分表和视图

-- 方式二:查看视图结构
DESC 视图名;

-- 方式三:查看视图的创建过程
SHOW CREATE VIEW 视图名;

3. 修改视图

语法:ALTER VIEW 视图名 AS 查询sql

-- 方式一: 修改视图,ALTER VIEW 视图名 AS 查询sql
ALTER VIEW v_user_detail
AS
SELECT a.id,a.username,a.`password`,b.realname,b.gender,b.height,b.age FROM `user` a,user_info b WHERE a.id = b.uid;

-- 方式二:视图存在则修改,不存在则创建, CREATE OR REPLACE VIEW 视图名 AS 查询sql
CREATE OR REPLACE VIEW v_user_detail 
AS 
SELECT a.id,a.username,a.`password`,b.realname,b.gender,b.height,b.age FROM `user` a,user_info b WHERE a.id = b.uid;

4. 删除视图

语法:DROP VIEW 视图名1,视图名2...;

DROP VIEW v_user_detail;

相关文章

  • mysql高级:视图、事务、索引

    # mysql高级:视图、事务、索引 * 视图 * 事务 * 索引 * 账户管理 * 主从 ## 1.视图 动态抽...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql视图,触发器,存储过程优缺点及应用分析

    mysql视图,触发器,存储过程优缺点及应用分析 视图 mysql使用较少,是sql server和orcale使...

  • 数据库

    一、MySQL中视图与表的区别 1.1 MySQL中视图和表的区别以及联系 视图是已经编译好的SQL语句,是基于S...

  • MySQL数据库基本操作(上)

    史上最简单的 MySQL 教程>>>MySQL运行机制原理&架构>>>触发器视图(上)视图(下)数据备份与还原(上...

  • 14 MySQL 视图

    MySQL 视图 [toc] 视图概述 视图介绍 什么是视图 虚拟表 内容与真实的表相似,有字段有记录 视图并不在...

  • MySQL视图

    什么是视图 视图(View)是一种虚拟存在的表。其内容与真实的表相似,包含一系列带有名称的列和行数据。但是视图...

  • MySQL视图

    mysql视图 视图View是一个虚表,它由一个sql查询来定义,可以当做表使用。与持久表不同的是,视图中的数据没...

  • Mysql 视图

  • MySQL视图

    1、视图简介 -> 视图(view)是存在数据库中虚拟的表(只是结构没有数据,数据来源于其他表)-> 访问视图,相...

网友评论

      本文标题:mysql 视图

      本文链接:https://www.haomeiwen.com/subject/ckqqrdtx.html