当前位置: 首页 > news >正文

知名做网站的公司联合早报 即时消息

知名做网站的公司,联合早报 即时消息,dede网站地图制作,什么事网站开发这是Mysql系列第15篇。 环境#xff1a;mysql5.7.25#xff0c;cmd命令中进行演示。 需求背景 电商公司领导说#xff1a;给我统计一下#xff1a;当月订单总金额、订单量、男女订单占比等信息#xff0c;我们啪啦啪啦写了一堆很复杂的sql#xff0c;然后发给领导。 …这是Mysql系列第15篇。 环境mysql5.7.25cmd命令中进行演示。 需求背景 电商公司领导说给我统计一下当月订单总金额、订单量、男女订单占比等信息我们啪啦啪啦写了一堆很复杂的sql然后发给领导。 这样一大片sql发给领导你们觉得好么 如果领导只想看其中某个数据还需要修改你发来的sql领导日后想新增其他的统计指标你又会发送一大坨sql给领导对于领导来说这个sql看起来很复杂难以维护。 实际上领导并不关心你是怎么实现的他关心的只是这些指标并且方便查看、查询而你却把复杂的实现都发给了领导。 那我们有什么办法隐藏这些细节只暴露简洁的结果呢 数据库已经帮我们想到了使用视图来解决这个问题。 什么是视图 概念 视图是在mysql5之后出现的是一种虚拟表行和列的数据来自于定义视图时使用的一些表中视图的数据是在使用视图的时候动态生成的视图只保存了sql的逻辑不保存查询的结果。 使用场景 多个地方使用到同样的查询结果并且该查询结果比较复杂的时候我们可以使用视图来隐藏复杂的实现细节。 视图和表的区别 语法实际中是否占用物理空间使用视图create view只是保存了sql的逻辑增删改查实际上我们只使用查询表create table保存了数据增删改查 视图的好处 简化复杂的sql操作不用知道他的实现细节 隔离了原始表可以不让使用视图的人接触原始的表从而保护原始数据提高了安全性 准备测试数据 测试数据比较多放在我的个人博客上了。 浏览器中打开链接http://www.itsoku.com/article/209 mysql中执行里面的javacode2018_employees库部分的脚本。 成功创建javacode2018_employees库及5张表如下 表名描述departments部门表employees员工信息表jobs职位信息表locations位置表部门表中会用到job_grades薪资等级表 创建视图 语法 create view 视图名 as 查询语句;视图的使用步骤 创建视图 对视图执行查询操作 案例1 查询姓名中包含a字符的员工名、部门、工种信息 /*案例1查询姓名中包含a字符的员工名、部门、工种信息*/ /*①创建视图myv1*/ CREATE VIEW myv1 ASSELECTt1.last_name,t2.department_name,t3.job_titleFROM employees t1, departments t2, jobs t3WHERE t1.department_id  t2.department_idAND t1.job_id  t3.job_id;/*②使用视图*/ SELECT * FROM myv1 a where a.last_name like a%;效果如下 mysql SELECT * FROM myv1 a where a.last_name like a%; -------------------------------------------------- | last_name | department_name | job_title            | -------------------------------------------------- | Austin    | IT              | Programmer           | | Atkinson  | Shi             | Stock Clerk          | | Ande      | Sal             | Sales Representative | | Abel      | Sal             | Sales Representative | -------------------------------------------------- 4 rows in set (0.00 sec)上面我们创建了一个视图myv1我们需要看员工姓名、部门、工种信息的时候不用关心这个视图内部是什么样的只需要查询视图就可以了sql简单多了。 案例2 案例2查询各部门的平均工资级别 /*案例2查询各部门的平均工资级别*/ /*①创建视图myv1*/ CREATE VIEW myv2 ASSELECTt1.department_id 部门id,t1.ag            平均工资,t2.grade_level   工资级别FROM (SELECTdepartment_id,AVG(salary) agFROM employeesGROUP BY department_id)t1, job_grades t2WHERE t1.ag BETWEEN t2.lowest_sal AND t2.highest_sal;/*②使用视图*/ SELECT * FROM myv2;效果 mysql SELECT * FROM myv2; -------------------------------------- | 部门id   | 平均工资     | 工资级别     | -------------------------------------- |     NULL |  7000.000000 | C            | |       10 |  4400.000000 | B            | |       20 |  9500.000000 | C            | |       30 |  4150.000000 | B            | |       40 |  6500.000000 | C            | |       50 |  3475.555556 | B            | |       60 |  5760.000000 | B            | |       70 | 10000.000000 | D            | |       80 |  8955.882353 | C            | |       90 | 19333.333333 | E            | |      100 |  8600.000000 | C            | |      110 | 10150.000000 | D            | -------------------------------------- 12 rows in set (0.00 sec)修改视图 2种方式。 方式1 如果该视图存在就修改如果不存在就创建新的视图。 create or replace view 视图名 as 查询语句;示例 CREATE OR REPLACE VIEW myv3 ASSELECTjob_id,AVG(salary) javgFROM employeesGROUP BY job_id;方式2 alter view 视图名 as  查询语句;示例 ALTER VIEW myv3 AS SELECT * FROM employees;删除视图 语法 drop view 视图名1 [,视图名2] [,视图名n];可以同时删除多个视图多个视图名称之间用逗号隔开。 示例 mysql drop view myv1,myv2,myv3; Query OK, 0 rows affected (0.00 sec)查询视图结构 /*方式1*/ desc 视图名称; /*方式2*/ show create view 视图名称;如 mysql desc myv1; --------------------------------------------------------- | Field           | Type        | Null | Key | Default | Extra | --------------------------------------------------------- | last_name       | varchar(25) | YES  |     | NULL    |       | | department_name | varchar(3)  | YES  |     | NULL    |       | | job_title       | varchar(35) | YES  |     | NULL    |       | --------------------------------------------------------- 3 rows in set (0.00 sec)mysql show create view myv1; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | View | Create View                                                                                                                                                                                                                                                                                                                                                               | character_set_client | collation_connection | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | myv1 | CREATE ALGORITHMUNDEFINED DEFINERrootlocalhost SQL SECURITY DEFINER VIEW myv1 AS select t1.last_name AS last_name,t2.department_name AS department_name,t3.job_title AS job_title from ((employees t1 join departments t2) join jobs t3) where ((t1.department_id  t2.department_id) and (t1.job_id  t3.job_id)) | utf8                 | utf8_general_ci      | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 row in set (0.00 sec)show create view显示了视图的创建语句。 更新视图【基本不用】 视图的更新是更改视图中的数据而不是更改视图中的sql逻辑。 当对视图进行更新后也会对原始表的数据进行更新。 为了防止对原始表的数据产生更新可以为视图添加只读权限只允许读视图不允许对视图进行更新。 一般情况下极少对视图进行更新操作。 示例 CREATE OR REPLACE VIEW myv4ASSELECT last_name,emailfrom employees;/*插入*/ insert into myv4 VALUES (路人甲Java,javacode2018163.com); SELECT * from myv4 where email like javacode2018%;/*修改*/ UPDATE myv4 SET last_name  刘德华 WHERE last_name  路人甲Java; SELECT * from myv4 where email like javacode2018%;/*删除*/ DELETE FROM myv4 where last_name  刘德华; SELECT * from myv4 where email like javacode2018%;注意视图的更新我们一般不使用了解即可。 总结 了解视图的用途及与表的区别。 掌握视图的创建、使用、修改、删除。
http://www.dnsts.com.cn/news/127138.html

相关文章:

  • 宁波网页网站制作宁波科技网站建设
  • 汽车网站建设规划书黑龙江省住房与城乡建设厅网站
  • 群晖wordpress搭建网站宁波网站建设设计方案
  • 进一步加大网站集约化建设力度微信做网站网站
  • 成为网站开发工程师北京标本制作
  • 站长统计黄页网站下载大全公司注册费用计入什么科目
  • 贵州网站建设设计公司企业邮箱登录入口
  • 网站建设开发公司微信公众号开发网络架构图
  • 做拍福利爱福利视频网站公司部门工作总结
  • 网站域名空间一年多少钱制作个网站需要多少钱
  • 怎么用ps做网站框架wordpress qq群
  • 厦门网站建设 首选猴子网络设计公司官方网站
  • 毕设什么类型网站容易做海尔公司网站建设现状
  • 不动产登记门户网站建设wordpress显示某一分类名称链接
  • 网站推广引流发布新闻稿
  • 学网站建设好不好流量网站建设教程
  • 专做蔬菜大棚的网站做一个购物网站需要什么技术
  • 房城乡建设部网站网站建设 企泰科技
  • 做网站可以盈利吗郑州网站建设外包业务
  • 厦门网站建设价可以自己设计房子的游戏
  • 旅游网站建设首选赢旅动力上海网页设计培训哪个好
  • 江苏省建设局报考网站陌陌引流推广软件
  • 北京建设网站的公司兴田德润简介淘宝上做网站 源代码怎么给你
  • 厦门市建设局报表网站免费源码分享平台
  • 网站改版对用户的影响人工智能培训
  • 什么网站可以做饼图外贸公司英文网站建设
  • 潍坊网站建设教程怎么在网上卖产品
  • 中山外贸网站开发价格湖南网站建设开发公司
  • 钱包钱夹移动网站建设drupal joomla wordpress
  • 深圳商城网站设计价格有自建服务器做网站的吗