前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL 碎碎念,你可能用不到但不能不知道的数据库技巧(2)

SQL 碎碎念,你可能用不到但不能不知道的数据库技巧(2)

作者头像
百里丶落云
发布2022-11-14 17:11:30
4790
发布2022-11-14 17:11:30
举报
文章被收录于专栏:享~方法享~方法

前言

古语有云,牙疼不是病,疼起来真要命.平时可能看起来不是很重要的内容,等到真正用到时候才是心急如焚. 本期讲解你可能不知道但是很实用的数据库技巧第二期.

大家好,这里是百里,SQL 碎碎念, 希望大家喜欢.

一、 领导是个强迫症,数据非要这么放

大家做bi时候可能会遇到有序,有规律的数据,我们这个时候ORDER BY 某个主键排序展示就好,但是是否有遇到过无序数据,或者领导非要某个排序展示呢.

百里就遇到过,只因为领导觉得这个单位他原来待过 (~ ̄(OO) ̄)ブ .

语法

代码语言:javascript
复制
select  字段1 ,字段2 ,字段3  
from 表   where 条件1 条件2
ORDER BY 
CHARINDEX(需要排序的字段, + '内容1,内容2,内容3,内容4')

实例

代码语言:javascript
复制
select  plantname,cc_type,all_qty  
from VIEW_TEXT a where a.docdate='2022-06-30' 
and cc_type='成型' and in_ex like '%合计%' 
ORDER BY CHARINDEX(plantname, + '一厂,二厂,自动化车间,防水车间,五厂,射出车间,八厂')
image.png
image.png

二、常用函数经常用,工作轻松就搞定

虽然现在很多后端都集成了sql ,只需要配置就可以实现自动实现ORM 但是,一些复杂内容仍然需要使用sql 来书写。

熟练使用常用函数,可以大大提升工作效率。

REPLACE()

替换函数

REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )

参数 ''string_replace1''

待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。

''string_replace2''

待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。

''string_replace3''

替换用的字符串表达式。string_replace3 可以是字符数据或二进制数据。

left() 左截断函数

LEFT (, )   返回character_expression 左起 integer_expression 个字符。

charindex() 查询位置函数

   CHARINDEX (<’substring_expression’>, )

返回字符串中某个指定的子串出现的开始位置。

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。 此函数不能用于TEXT 和IMAGE 数据类型。

stuff()

指定删除函数

--通过在第一个字符串 (abcde) 中删除从第二个位置(字符 b)开始的三个字符, --然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。

cast()和 conver() 数据类型转换函数 SELECT CAST('1' AS int),CONVERT(int,'1') SqlServer也会隐式转换,如:用字符串乘以一个整形, 整形优先级要大,SqlServer将自动将字符串转为整形 SELECT '1'2 显示转换安全点,不然出现莫名奇妙的错误都不好找 SELECT CAST('1*SET NOCOUNT ON' AS int)*2

三、小细节不要漏,查询速度直线升

大家都知道查询数据库是io 操作,但是你知道因为你的陋习,可能查询速度比别人慢了很多么。

  1. 大数据存临时表,增加对应索引。 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,通俗来讲索引就好比书本的目录,加快数据库的查询速度。
  2. 存储过程不要忘记,SET NOCOUNT ON 当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数;

转换为

  1. WITH NOLOCK()

当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能,据说能提升33%。

不过有一个弊端, 就是会产生脏读的风险。

今天的不开心就到此为止吧, 明天依旧光芒万丈~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、 领导是个强迫症,数据非要这么放
    • 语法
      • 实例
      • 二、常用函数经常用,工作轻松就搞定
      • 三、小细节不要漏,查询速度直线升
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档