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

网站开发工程师发展趋势山东省建设工程电子信息网站

网站开发工程师发展趋势,山东省建设工程电子信息网站,乐山网站公众号建设,seo常用工具有哪些这是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.w-s-a.com/news/522697/

相关文章:

  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用
  • 网站如何做友情链接有道云笔记WordPress
  • 贵阳企业网站建设制作赤峰浩诚网站建设公司
  • asp官方网站微信模板素材
  • wordpress 留言给站长发邮件做百度推广员赚钱吗
  • 北京建站公司做网站价格专门找人做软件的网站
  • 商务网站的特点ui软件界面设计
  • 广州个性化网站开发网站索引量是什么意思
  • 公司网站制作专业公司python做后台网站的多吗
  • 桂林建站平台哪家好给别人做网站怎么收取费用
  • python做网站显示表格用visual做的网站
  • 彩票网站建设需要什么聊城网站建设首选天成网络
  • 安徽建设工程网站wordpress标签云代码
  • 推荐佛山顺德网站建设手机网站建设域名空间
  • 电子商务网站建设策划书例子企业官网用什么cms系统
  • 网站栏目设计怎么写平面设计接单报价表
  • 做网站美工要学什么网站推广的方法包括
  • 哪个网站可以做笔译兼职wordpress加表单
  • 百度站内搜索 wordpress微餐饮建站费用
  • 用什么做网站的访问量统计制作手工作品
  • 微信公众号搭建网站河南卫生基层系统网站建设
  • steam账号注册网站重庆手机版建站系统哪家好
  • 中新生态城建设局门户网站wordpress云盘视频播放
  • 大型网站开发基本流程wordpress记录用户搜索
  • 云服务器安装win系统做网站wordpress边栏扩大尺寸
  • 网站开发面试自我介绍软件下载网站如何建设
  • 可以做翻译任务的网站陕西省建设厅八大员证
  • 昆明 网站推广重庆网页优化seo公司
  • 网站排名下降怎么上去设计一套app页面多少钱