• mysql 创建视图


    1.单表创建视图

    例如:创建一个选择语句,选出学生的编号,姓名和考号

    //创建一个视图名字为stu_view1选择 来自数据表student中的id,name 和kn 中的数据

    create view stu_view1  as select id as '编号',name as'姓名',kn as '考号' from student;

    例如:创建一个选择语句出学生id和总成

    create view score_view1 as select id as '编号',sc.math+sc.chinese +sc.english+sc.mul as
    '总成绩' from score as sc;

    2.多表创建视图

    例如:创建一个选择语句,选出学生姓名和总成绩

    select s.name as '学生姓名' , sc.math +sc.chinese+sc.english+sc.mul as '总成绩'from

    student as s,score as sc where s.id=sc.s_id ;

    创建多表视图

    //创建一个对表视图名字为s_sc_view2 选择来自数据表student 中学生的姓名和选择来自数据表score 中所有学科成绩相加的总成绩 ,两张数据表中的数据要相对应(where s.id = sc.s_id)

    a.  create  or replace   view s_sc_view2 as select s.name as '学生姓名' , sc.math +sc.chinese+sc.english+sc.mul as '总成绩'from student as s,
    score as sc where s.id=sc.s_id ;

    b.  create or replace view s_sc_view3 (学生姓名,总成绩) AS select s.name ,

    sc.math +sc.chinese +sc.english+sc.mul from student as s ,score as sc where s.id =sc.s_id;

      create  表示创建。 

     or replace 表示视图已经存在,就替换

    view_name 视图名字

    as 后面是选择的字段(一个表或者多个表中)

    3.查看视图中的数据

    select * from s_sc_view2;//s_sc_view2是视图名

    4.查看视图结构

    desc view_name;

    5.查看视图创建语句

    show create view s_sc_view2;

    6.查看视图信息

    show table status like 'stu_view';(虚拟表为NULL)

    7.查看数据表信息

    show table  status like 'score';(真实表不为空)

    8.视图修改

    在视图stu_view5的基础长增加city(城市字段):

    a.通过or replace 覆盖的方式修改视图

    create or replace  view stu_view5 (姓名,考号,城市) as select name,kn,city from student;

    b.通过alter  关键子的方式修改视图

    alter view stu_view (姓名,考号,城市) as select name,kn,city from student;

    9.视图更新(内容)

    创建一个视图内容有:学生编号、总分、综合、主科目

     create or replace view score_view2 (学生编号,总分,综合,主科目)as select sc.s_id ,

    sc.math + sc.chinese +sc.english +sc.mul,sc.mul,

    sc.math+sc.english +sc.chinese from score as sc;

    a.使用update 语句(修改数据内容)

    update  score_view2 set 综合=156 where 学生编号=1003;

    b.使用delete 语句(删除数据)

    delete from score_view2 where 学生编号=1005;

    通过上面视图上面的更新(修改)和删除会影响到真实表(数据表)中的数据;

    10.视图的删除

    drop view if exists score_view1;

  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/6946197.html
Copyright © 2020-2023  润新知