加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL中视图如何使用

发布时间:2022-02-28 23:33:10 所属栏目:MySql教程 来源:互联网
导读:MYSQL中视图如何使用?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! 1、什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关推荐:MySQL教程) 2、为什么
  MYSQL中视图如何使用?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
 
  1、什么是视图
 
  执行一条SQL,将结果集保存在一张虚拟表中
 
  (相关推荐:MySQL教程)
 
  2、为什么要使用视图
 
  重复利用SQL语句
  简化SQL查询,快速取数据
  只用知道表的部分结构
  保护数据,根据特定授权
  更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据。
  注意事项
  • 在视图创建后,可以用与表基本相同的方式使用(查询、过滤、排序数据、与其他视图或连结、(添加、更新))
  • 视图只是用来查看存储在别处的数据的设施,本身不包含数据,返回的数据也是从其他表检索出来的。
  • 因为视图本身不包含数据,索引多个表连结或嵌套可能存在性能问题,需测试
 
  3、规则和限制
 
  表名必须唯一(与其他视图和表)
  创建视图没有限制
  足够权限
  视图可以嵌套,可以从其他视图查询来构造一个视图
  如果视图和从视图中查询都有order by,视图中的order by将被覆盖
  视图不能索引
  视图可以和表一起使用
  4、使用视图
 
  创建视图 create view
  查看创建视图的语句。Show create view viewname
  删除视图 drop view viewname
  更新视图,1⃣️ 先drop后create 2⃣️ 直接用create or replace view
  利用视图简化复杂的联结查询
  5、利用视图简化复杂的联结查询
 
  创建视图
 
  CREATE VIEW productcustomers AS
  SELECT cust_name, cust_contact, prod_id
  FROM customers, orders, orderitems
  WHERE customers.cust_id = orders.cust_id
  AND   orderitems.order_num = orders.order_num
  使用视图
 
  SELECT cust_name, cust_contact
  FROM productcustomers
  WHERE prod_id = 'TNT2';
  6、用视图重新格式化检索出的数据
 
  select concat (rtrim(vend_name) , '(',rtrim(vend_country),')') as vend_title   from vendors order by vend_name;
  如果经常用到这个格式的话,可以创建一个视图
 
  CREATE VIEW vendorlocations AS
  SELECT
      concat ( rtrim( vend_name ), '(', rtrim( vend_country ), ')' ) AS vend_title
  FROM
      vendors
  ORDER BY
      vend_name;
  可以直接通过视图查询得出结果
 
  SELECT * FROM vendorlocations;
  7、用视图过滤不想要的数据
 
  create view custmeremaillist AS
  SELECT cust_id ,cust_name,cust_email
  from customers
  where cust_email is not NULL;
  直接使用视图
 
  SELECT * from custmeremaillist ;
  8、使用视图与计算字段
 
  mysql查询
 
  SELECT
      prod_id,
      quantity,
      item_price,
      quantity * item_price AS expanded_price
  FROM
      orderitems
  WHERE order_num=20005;
  创建视图
 
  CREATE VIEW orderitemsexpanded AS
  SELECT
      order_num,
      prod_id,
      quantity,
      item_price,
      quantity * item_price AS expanded_price
  FROM
      orderitems
  WHERE order_num=20005;
  使用视图
 
  SELECT
      *
  FROM
      orderitemsexpanded
  WHERE order_num=20005;
  9、更新视图
 
  通常,视图是可以更新的(insert、update、delete)。更新视图将更新基表。如果视图中有以下定义将不能被更新。
 
  1. 分组(group by 和 having)
  2. 联结
  3. 自查询
  4. 并
  5. 聚合函数(min()、count()、sum()等)
  6. Distinct
  7. 导出(计算)列
  所以视图最好直接使用select查询。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读