mysql sql高级应用程序_mysql-sql高级应用

sql语言进阶

典型操作order by

- select * from play_list order bycreatetime;- select * from play_list order by bookedcount desc,createtime asc;order by语句用于根据指定的列对结果集进行排序order by语句默认按照升序对记录排序,使用desc则降序排序order by也可以多个字段排序,而desc只作用于一个字段;distinct

select distinct userid fromplay_list;select distinct userid,play_name fromplay_list;

(userid,play_named都相同时去重)distinct用于去重,可以返回多列的唯一组合;distinct在后台做排序,所以很消耗CUP的;group by having场景:统计云音乐创建歌单的用户列表和每人创建歌单的数量

mysql> select userid,count(*) AS play_num from play_list group by userid having count(*)>=2;

分组关键字userid,需要在查询中出现,且一般查询分组关键字后要加聚合函数;like

select * from play_list where play_name like ‘%男孩%‘;

通配符

描述%代替一个或多个字符

_

替代单个字符[charlist]中括号中的任何单一字符[^charlist]或者[!charlist]不在中括号中的任何单一字符

大表慎用like;

除了%号在最右边以外,会对表中所有记录进行查询匹配;

limit offset

场景4:查询一个月内创建的歌单(从第6行开始显示10条记录)select * from play_list where (createtime between 1427701323 and 1430383307) limit 10 offset 6注意:offset 后面的值不要太大,假设offset1000,那它会扫描前1000条记录,这样IO开销会很大case when

case when 实现类似编程语言的 if else功能,可以对SQL的输出结果进行选择判断;

场景5:对于未录入的歌单(trackcount= null),输出结果时歌曲数返回0

mysql> select play_name,case when trackcount is null then 0 else trackcount end fromplay_list;

连接-join用一个SQL 语句把多个表中相互关联的数据查询出来;

场景6:查询收藏“老男孩”歌单的用户列表

mysql> SELECT play_fav.userid FROM play_fav INNER JOIN play_list ON play_fav.play_id = play_list.id where play_list.play_name = ‘老男孩‘;

另一种写法:

mysql> select f.userid from play_list lst,play_fav f where lst.id = f.play_id and lst.play_name = ‘老男孩‘子查询及问题

子查询的写法:select userid from play_fav where play_id=(select id from play_list where play_name = ‘老男孩‘);

别名 可以不用使用AS 关键字,直接空格加别名就可以了;

子查询在性能上有一定劣势,不利于mysql性能优化器进行优化;

因为内层表和驱动表用户自己定死了,而联结的驱动表和内层表 性能优化器 会根据实际情况 来定;

子查询为什么不利于优化:

联结是嵌套循环查询实现;

如select* from play_list,play_fav where play_list.id =play_fav.play_id;

play_list驱动表(where等号左边);内层表play_fav(where等号右边);

遍历去东北play_list.id,找到一个id后再去play_fav.play_id中找;依次循环下去;

内层表此时可以查询一次或者几次索引,便可以得到;

所以基本的优化就是将表量比较小的作为驱动表,这样减少了循环的次数;union作用:把不同表中相同的字段聚合在一个结果集中返回给用户

场景8:老板想看创建和收藏歌单的所有用户,查询play_list和play_fav两表中所有的userid;

mysql> select userid fromplay_list-> union

-> select userid fromplay_fav;

默认的union 会对结果集进行去重处理,不想去重使用union all;

DML进阶语法

多值插入:insert into table values(.....),(.....)

覆盖插入:replace into table values(...)

忽略插入:insert ignore into table values(...)

查询插入:insert into table_a select * fromtable_b

多值插入:减少数据库访问次数,提高效率;

覆盖插入,忽略插入:简化业务逻辑的判断;避免主键重复;

查询插入:导表结构中;

insert主键重复则update:insert into table tb1 values(id,col1,col2)on duplicate key update col2=....;

mysql> insert into a values(1,100) on duplicate key update age=100;

如果id=1存在,则键age 更改为100;

注意得是主键噢,如何表中没有设置主键,则会新增加一条记录;

而给表a增加主键则是:

mysql> alter table order add primary key(id);

连表update

用B表中的age 更新到 A 表中的age :

复制代码

mysql> select * froma;+----+------+

| id | age |

+----+------+

| 1 | 100 |

| 2 | 34 |

| 3 | 23 |

| 4 | 29 |

+----+------+

mysql> select * fromb;+------+------+------+

| id | name | age |

+------+------+------+

| 1 | pw | 20 |

| 2 | ljb | 30 |

+------+------+------+

mysql> update a,b set a.age=b.age where a.id =b.id;

mysql> select * froma;+----+------+

| id | age |

+----+------+

| 1 | 20 |

| 2 | 30 |

| 3 | 23 |

| 4 | 29 |

+----+------+

复制代码

连表delete

用B表中的条件去删除A表中数据;

复制代码

mysql> select * froma;+----+------+

| id | age |

+----+------+

| 1 | 20 |

| 2 | 30 |

| 3 | 23 |

| 4 | 29 |

+----+------+

mysql> select * fromb;+------+------+------+

| id | name | age |

+------+------+------+

| 1 | pw | 20 |

| 2 | ljb | 30 |

+------+------+------+

mysql> delete a from a,b where a.id=b.id and b.name=‘pw‘;

mysql> select * froma;+----+------+

| id | age |

+----+------+

| 2 | 30 |

| 3 | 23 |

| 4 | 29 |

+----+------+

复制代码

删除语法:DELETE FROMCustomersWHERE cust_id = ‘1000000006‘;

连表在delete之后还要将需要删除的表放在delete后面;

内置函数

目标:掌握常用的mysql聚合函数,预定义函数

在SQL查询语句中运用上述函数结构groupby,orderby等语法完成各种统计功能

聚合函数

聚合函数面向一组数据,对数据进行聚合运算后返回单一的值

mysql聚合函数基本语法:select function(列) from表

常用聚合函数:

场景:查询播放次数最多的歌曲

复制代码

mysql> select song_name,max(playcount) from song_list; //错误查法

#selectsong_name,没有对应 playcount;

#注意聚合函数是对返回列来做处理的,此中放回列是所有歌曲;

mysql> select song_name,playcount from song_list order by playcount desc limit1;//正确

子查询方法:select song_name from song_list where playcount=(select max(playcount) fromsong_list);

复制代码

场景:显示每张专辑的歌曲列表。例如:

复制代码

mysql> select album,group_concat(song_name) from song_list group byalbum;+------------------+-------------------------------------------------+

| album | group_concat(song_name) |

+------------------+-------------------------------------------------+

| 1701 | 大象,定西 |

| Straight Shooter | Good Lovin‘Gone Bad,Weep No More,Shooting Star |

| 作品李宗盛 | 风柜来的人 |

| 红雪莲 | 红雪莲 |

+------------------+-------------------------------------------------+

复制代码

group_concat 连接的最长字符是1024,可以通过参数调整;

使用聚合函数做数据库行列转换:

预定义函数:

预定义函数面向单一值数据,返回一对一的处理结果(聚合函数可以理解成多对一)

预定义函数基本语法:select function(列) from 表;select * from 表 where 列 = function(value)

时间处理函数:

总结

order by

distinct

limit offset:

case when then else end

连接-join两种写法

子查询为什么不利于优化:优化器不能改变,驱动表,内层表;从而不能优化;驱动表一般表量较小,因其需要全表id;内层表,仅需要查找一个或几个索引;这就是jion后优化器工作

union:把不同表中相同字段聚合在一个结果集中

连表update,根据B表age值更新A表age:update a,b set a.age=b.age where a.id = b.id;

连表delete,根据B表name删除A表的数据:delete a from a,b where a.id=b.id and b.name=‘pw‘;

聚合函数:AVG(),COUNT(),COUNT(DISTNCT),MAX(),MIN(),SUM()常与 group by,order by连用;

group_concat()mysql特有

预定义函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
# 智慧旅游解决方案摘要 智慧旅游解决方案旨在通过新一代信息网络技术和装备,实现旅游服务、管理、营销和体验的智能化。该方案响应国家政策背景,如国家旅游局和工业信息化部的指导意见,以及国家发改委的发展规划,强调数字化、网络化、智能化在旅游业的应用,推动5G和移动互联网技术在旅游领域的创新应用。 方案的建设目标围绕“一个心、四个方面、五大平台”展开,即以智慧旅游数据心为核心,面向服务、管理、商务和营销构建智慧景区管理平台、智慧旅游服务平台、智慧旅游商务平台和智慧旅游营销平台。这五大平台将整合全域旅游资源,提升旅游设施,拓展旅游空间,融合旅游产业链,提升旅游服务,定制旅游产品,推进旅游改革。 建设内容涵盖了整体架构的构建,包括智慧服务、智慧管理、电子商务和智慧营销等方面。通过云计算、人工智能、大数据、物联网、5G等技术,实现“云-管-端”服务能力,打造集时间、空间、层次为一体的体验平台。此外,还包括智慧景区管理平台的多个子系统,如视频监控、应急指挥调度、流量监测、舆情监督、线路SOS一键呼救、GIS人车调度、停车场管理、语音广播、环境监测管理、多媒体发布、电子巡更以及指挥调度大屏建设等。 智慧旅游服务平台则包括自助票务系统、人脸识别、扫码购票、景区门户网站、机游、WIFI覆盖系统、数字全景VR、AI机器人、智慧座椅、智慧厕所等,旨在提升游客体验,实现景区的智能化管理和服务。通过这些服务,游客可以享受到便捷的购票、入园、导览和信息服务,同时景区管理者能够更有效地监控和管理景区运营。 智慧旅游商务平台则侧重于旅行社团队申报、电子商城、综合票务系统、分销管理系统、大会员系统和景区聚合支付系统,为旅游企业提供全面的商务服务和营销支持。这些平台和系统帮助旅游企业拓宽分销渠道,实现财务管理和订单管理,同时为游客提供便捷的支付和会员服务。 最后,智慧营销平台通过综合票务系统、分销管理系统、大会员系统和景区聚合支付系统,为旅游行业提供精准的营销工具和策略。这些工具和策略有助于整合旅游资源,拓宽销售渠道,提升游客体验,实现旅游业务的数字化和智能化。 智慧旅游解决方案通过这些综合性的技术和平台,不仅提升了游客的旅游体验,还为旅游行业的可持续发展提供了强有力的技术支持和数据驱动的决策依据。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值