zoukankan      html  css  js  c++  java
  • MYSQL 视图

     

    1.视图: 就是一张虚拟表,本质上存储的是一对SQL的集合

    --  视图 是一张虚拟的表
       01.表示一张表的部分数据或者是多张表的综合数据!
       02.结构和数据都是建立在对真表的查询基础之上的!
       03.视图中存放的数据其实就是对真实表的引用!
         对视图中的数据进行添加,更新删除都会影响到真实的表!
       04.一个真实的表可以创建N个视图!
       05.如果视图关联了多表,不允许增 删!单表可以增删改
       06.视图一般都是使用查询!

    2.定义视图的语法:
    create view VW_stulist(VW_视图的功能)
    as
    sql语句
     小Tip:当多表中有同名列的时候,在视图这个虚拟表中,只能有一列。手工指定该列是哪个表的

    3.视图的使用 和检索基本表一样,直接通过select
    select * from VW_stulist

    4.删除视图
    drop view 视图名
    drop table
    drop database
    drop index
    drop constraint
    归根结底:drop  删除是结构   delete 删除数据

    5.查看所有库所有视图

     5.1.切换到系统数据库
      use information_schema

     5.2.select * from views G;

     6.查看当前库的所有视图
       show tables status where comment='view'

     7.视图注意事项
    1)视图可以查询多表数据
    2)视图可以嵌套
    3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。
    4)删除视图数据的时候,有一定的限定,数据结果来源于多表的时候,不能删除

     例子:

    --  创建一个视图  只获取 学生姓名 编号 以及考试成绩
    CREATE  VIEW view_student_result
    AS 
    SELECT s.studentNo 学生编号,studentName 学生姓名,
    studentResult 考试成绩
    FROM  student s,result r
    WHERE s.`studentNo`=r.`studentNo`
    --  查询视图中的内容
    SELECT * FROM view_student_result
    -- 查询mysql数据库中所有的视图
    SELECT * FROM information_schema.views;
    --  删除视图
    DROP  VIEW view_student_result;
    --  创建一个表的视图  学生姓名,地址,手机号
    CREATE VIEW  view_student 
    AS
    SELECT  studentName 学生姓名,address 地址,phone 手机号
    FROM  student
    -- 查询视图
    SELECT  * FROM view_student  
  • 相关阅读:
    [LeetCode] Course Schedule
    [Algorithms] Topological Sort
    [Algorithms] Graph Traversal (BFS and DFS)
    [LeetCode] One Edit Distance
    [LeetCode] Summary Ranges
    [LeetCode] Missing Ranges
    [LeetCode] Fraction to Recurring Decimal
    17.Docker之使用dockerfile创建jdk镜像
    16.Docker之使用dockerfile创建nginx镜像
    7.Docker之dockerfile指令简介
  • 原文地址:https://www.cnblogs.com/3020815dzq/p/8485670.html
Copyright © 2011-2022 走看看