zoukankan      html  css  js  c++  java
  • Mysql13—— 视图

    含义:虚拟表,和普通表一样使用

    mysql5.1版本出现的新特性,是通过表动态生成的数据

    案例:查询姓张的学生名和专业名

    SELECT stuname,majorname

    FROM stuinfo s

    INNER JOIN major m ON s.`majorid`=m.`id`

    WHERE s.`stuname` LIKE '张%‘;

    CREATE VIEW v1

    AS

    SELECT stuinfo s

    INNER JOIN major m ON S.`MAJORID`=M.`id`;

    SELECT * FROM v1 WHERE stuname LIKE '张%’;

    一、创建视图

    语法:

    create view 视图名

    as 

    查询语句;

     USE myemployees;

    案例:查询邮箱中包含a字符的员工名、部门名和工种信息

    创建

    CREATE VIEW myv1

    AS 

    SELECT last_name,department_name,job_title

    FROM employees e

    JOIN departments d ON e.department_id = d.department_id

    JOIN jobs j ON j.job_id = e.job_id;

    使用

    SELECT * FROM myv1 WHERE last_name LIKE '%a%';

     优势:

    • 重用sql语句
    • 简化复杂的sql操作,不必知道它的查询细节
    • 保护数据,提高安全性

    二、视图的修改

    方式一:

    create or replace view 视图名

    as

    查询语句;

    CREATE OR REPLACE VIEW myv3

    AS

    SELECT AVG(salary),job_id

    FROM employees

    GROUP BY job_id;

     方式二:

    语法:

    alter view 视图名

    as

    查询语句

    alter view myv3

    as

    select * from employees;

     三、删除视图

    语法

    drop view 视图名,视图名,...;

    四、查看视图

    DESC myv3;

    SHOW CREATE VIEW myv3;

    五、视图的更新

    CREATE OR REPLACE VIEW myv1

    AS 

    SELECT last_name,email,salary*12*(1+IFNULL(commission_pct,0)) "annual salary"

    FROM employees;

    SELECT * FROM myv1;

    1、插入

    INSERT INTO myv1 VALUES('张飞','zf@qq.com');

    2、修改

    UPDATE myv1 SET last_name = '张无忌' WHERE last_name=''

    3、删除

    DELETE FROM myv1 WHERE last_name = '张无忌';

    具备以下特点的视图是不允许更新的:

    • 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
    • 常量视图
    • select中包含子查询
    • join
    • from一个不能更新的视图
    • where子句的子查询引用了from子句的表
        是否实际占用物理空间 使用
    视图 create view 只是保存了sql逻辑 增删改查,一般不能增删改
    create table 保存了数据 增删改查
  • 相关阅读:
    JDBC事务
    JDBC连接池和DBUtils
    原生JDBC
    基本的查询语句
    多表查询
    mysql单表
    基础加强_XML
    基础加强_注解_类加载器_动态代理
    页面加载loading动画
    移动端手动控制页面高度
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/14297733.html
Copyright © 2011-2022 走看看