发布日期:2023-10-30 04:21 点击次数:173
[[436443]]
全球好,我是安果!
责任中,咱们络续需要编写 SQL 剧本,对数据库进行增、删、改、查,很少会筹商到 Sql 性能优化
实质上,从性能角度筹商,有好多 Sql 要道字王人有它们各自的使用场景;淌若使用适宜,能大地面晋升后端作事的反应成果
皇冠体育代理底下以 Mysql 为例,摆设出几个比较实用的小 Tips
2. union、union all、orunion [all] 代表联接查询,即:将多个查询截止并吞起来成一个截止并复返
PS:union 联接查询针对每一个查询截止,必须保证列数量、列数据类型及查询规定一致
网站提供多样化博彩游戏赛事直播,同时还有博彩攻略技巧分享,用户能够更好地了解博彩知识提高博彩技巧,享受丰富博彩体验。皇冠hg86a
语法如下:
理事会听取了常务副会长兼秘书长孙炳刚对学会上半年在学术活动、科技创新、科技普及、人才培养与举荐、政产学研用、标准化、财务状况、秘书处建设等方面的工作进展汇报。报告全面总结了学会在第二届理事会、监事会带领下所开展的重点工作和取得的成绩,得到理事会的一致肯定。
# 以两张表的联接查询为例 # table_one:表一 # table_two:表二 # 表一中的查询字段:table_one_field1,table_one_fileld2... # 表二种的查询字段:table_two_field1,table_two_field2... # 贵重:表一、表二查询字段数量、字段类型、字段规定应该保握一致 select table_one_field1,table_one_fileld2... from table_one union [all] select table_two_field1,table_two_field2... from table_two;
其中,union、union all、or 三者的分离如下:
union表蛊卦后会期骗字段的规定进行排序,以此筛选掉重叠的数据行,临了再复返截止
因此,当数据量很大时成果很低
union all比拟 union,union all 在表蛊卦时不会删除重叠的数据行,径直复返表联接后的截止
因此,union all 履行成果要高好多,在不需要去重和排序时,更保举使用 union all
乐鱼彩票网 oror 用于 SQL where 子句中,SQL 剧本可读性更高,关联词它会引起全表扫描,根底不走索引查询
皇冠ABC盘是以凡俗情况下,欧博平台注册union [all] 查询会期骗索引进行查询,履行成果要高于 or;关联词当 or 条目中查询列疏浚,or 的履行成果要高于 union
3. group by + having、wheregroup by 分组查询,凭据一个或多个列对截止集进行分组,一般合营团聚函数使用
语法如下:
bet365是哪个国家的# 查询字段:多个查询字段 select 查询字段...,团聚函数... from table_one where 条目语句 group by 分组字段...having 分组条目; # 比如 select red_num1,count(red_num1) from dlt where create_at>='2021-11-01' group by red_num1;
其中,having 和 where 使用上有底下分离:
where在 group by 分组前履行,将查询截止按照条目过滤数据
需要贵重的是,where 无法与团聚函数沿路使用
移动支付 having只可合营 group by 使用,在分组之后履行,用于过滤知足条目的组
需要贵重的是,分组是一个耗时的操作,提倡在分组前使用 where 对数据进行一次过滤,然后再进行分组
比如,where 搭配 having 沿路使用
# 查询表dlt # 领先,使用where通过技能过滤数据 # 然后,使用字段red_num1+group by对数据进行分组 # 临了,使用having对分组后的数据再进行一次过滤 select red_num1,count(red_num1) from dlt where create_at>='2021-10-01' group by red_num1 having count(red_num1)>=2;4. exists、in
exists 用于 where 子句中,一般用于判断子查询中是否会复返数据,淌若复返的数据不为空,则为 True,不然为 False
太平洋在线官方网站(中国)有限公司皇冠客服飞机:@seo3687PS:exists 也不错搭配 not 使用,查询出不知足子查询语句的数据
语法如下:
网站常见问题解答-- exists使用 select * from 表一 where exists(select * from 表二 where 条目判断语句); -- not exists使用 select * from 表一 where not exists(select * from 表二 where 条目判断语句);
in 一样用于 where 子句中,筛选出某个表字段存在于多个值中的所罕有据
要道字 in 常见的 2 种使用姿首如下:
-- in 使用 -- 姿首一 select * from 表名 where 字段 in(过滤字段1,过滤字段2,过滤字段3...); -- 姿首二 select * from 表名1 where 字段1 in (select 字段2 from 表名2 where condition)
由于 SQL 作念子查询最优决议是小表运行大表,关于 in 来说是子查询表运行外在,当子查询表数据少于主表数据时保举使用
而 exists 是外在运行子查询表,因此当外在数据少于子查询表时更保举使用