zoukankan      html  css  js  c++  java
  • MySQL基础(4) | 视图

    MySQL基础(4) | 视图


    基本语法

    1.创建

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

    语法说明如下。

    • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
    • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

    对于创建视图中的 SELECT 语句的指定存在以下限制:

    • 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。

    • SELECT 语句不能引用系统或用户变量

    • SELECT 语句不能包含 FROM 子句中的子查询

    • 视图定义中不能引用 TEMPORARY 表(临时表),不能创建 TEMPORARY 视图。

    • SELECT 语句不能引用预处理语句参数

    1. 修改
    ALTER VIEW <视图名> AS <SELECT语句>
    
    1. 删除
    DROP VIEW <视图名1> [ , <视图名2> …]
    

    示例:

    #创建数据表
    create table mygoods(
      g_id int AUTO_INCREMENT primary key,
    	g_name varchar(20),
    	g_price double,
    	g_count int
    )engine=innodb default CHARSET=utf8;
    
    create table myperson(
    	p_id int AUTO_INCREMENT primary key,
    	p_name varchar(20),
    	g_id int,
    	foreign key fk_pid(g_id)
    	references mygoods(g_id)
    );
    
    #插入数据
    insert into mygoods(g_name, g_price, g_count) select '梨', 2.2, 3;
    insert into mygoods(g_name, g_price, g_count) select '苹果', 5.6, 2;
    insert into myperson(p_name,g_id) select '小白',1;
    
    #创建视图
    CREATE VIEW v_mygoods
    as select g_price, g_count, g_price * g_count as total from mygoods;
    #查看视图
    select * from v_mygoods;
    
    create view v_myperson
    as select a.p_name, b.g_price * b.g_count as tP from myperson a inner join mygoods b on a.g_id = b.g_id;
    
    select * from v_myperson;
    
  • 相关阅读:
    JDK1.0-缓冲流
    笔试错误1
    JVM 垃圾收集(转)
    Trie树和后缀树(转,简化)
    海量数据处理(转,简化)
    Struts2 内核之我见(转) -(主要是拦截器链和过滤链介绍和源码及其设计模式)
    phpize增加php模块
    Ubuntu下SVN安装和配置
    Linux下SVN配置hook经验总结
    Kruakal 算法——练习总结
  • 原文地址:https://www.cnblogs.com/dearroy/p/14019499.html
Copyright © 2011-2022 走看看