-
小米正式开源SQL智能优化与改写工具SOAR
近日,小米正式宣布开源SOAR。截至今日,该项目已经获得了350个「star」以及44个「fork」(GitHub项目地址:https://github.com/XiaoMi/soar)SOAR简介SOAR,即SQLOptimizerAndRewriter,是一款SQL智能优化与改写工具,由小米运维DBA团队出品SOAR体系架构SOAR主要由语法解析器,集成环境,优化建议,重写逻辑,工具集五大模块组成...
数据库操作教程 2022-09-23 16:42:41 -
SQLServer视图的讲解
在初期的工作中,要做一个系统登录验证,翻阅同事做的登录验证,发现同事们做用户名验证时,查的结果集来自一个视图,之前也弄过视图,但很少去仔细看过有关方面的详细知识,于是特意百度谷歌了一下,总结如下知识:视图,是基于SQL语句的结果集的可视化表。从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据...
数据库操作教程 2022-09-23 16:42:39 -
sql中时间以5分钟半个小时任意间隔分组的实现方法
开发中遇到过问题就是对时间以半个小时分钟分组,如统计08:00-08:30的人数,08:30-09:00的人数,貌似sql中没有这样的函数吧,直接从数据库里查出来,在java里分组也太low了吧想到方法1自定义函数,自己实现时间的半个小时转换,统计时调用函数CREATEFUNCTION`date_half_hour_format`(in_dateTIMESTAMP)RETURNSTIMESTAMPBEGINDECLAREout_dateTIMESTAMP;DECLAREs_dateVARCHAR(255);DECLAREs_minuteVARCHAR(2);DECLAREint_minuteINT;SETs_minute=SUBSTRING(in_date,15,2);SETint_minute=CAST(s_minuteASSIGNED);IFint_minute<=29THENSETint_minute=0;SETs_date=CONCAT(LEFT(in_date,14),'0',int_minute);ELSESETint_minute=30;SETs_date=CONC...
数据库操作教程 2022-09-23 16:42:39 -
sqlserver使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
问题:在数据库脚本开发中,有时需要生成一堆连续数字或者日期,例如yearlyreport就需要连续数字做年份,例如dailyreport就需要生成一定时间范围内的每一天日期。而自带的系统表master..spt_values存在一定的局限性,只是从0到2047(验证脚本:select*frommaster..spt_valuesbwhereb.type='P'),也不能直接生成连续日期...
数据库操作教程 2022-09-23 16:42:36 -
SQLServer四个系统表的知识讲解
SQLSERVER中有四个系统表master,model,msdb,tempdb.这四个表有什么用?一般DB使用中我们开发人员很少去关注这四个表。但是这四个表个人感觉很重要,掌握一些基本的知识会对自己有好处,于是我记录下来...
数据库操作教程 2022-09-23 16:42:34 -
sqlserver之datepart和datediff应用查找当天上午和下午的数据
DATEPART()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。DATEDIFF()函数返回两个日期之间的时间差...
数据库操作教程 2022-09-23 16:42:30 -
SQLServer三种锁定模式的知识讲解
sqlserver锁定模式有三种:共享(S锁),更新(U锁),排他(X锁);S锁是共享锁,如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据...
数据库操作教程 2022-09-23 16:42:30 -
SQLServer中的数据类型隐式转换问题
写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类。这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题...
数据库操作教程 2022-09-23 16:42:30 -
sqlserver2008调试存储过程的完整步骤
前言SQLSERVER2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本。非常不方便...
数据库操作教程 2022-09-23 16:42:28 -
sqlserver中错误日志errorlog的深入讲解
一.概述SQLServer将某些系统事件和用户定义事件记录到SQLServer错误日志和MicrosoftWindows应用程序日志中。这两种日志都会自动给所有记录事件加上时间戳...
数据库操作教程 2022-09-23 16:42:27 -
SQLServer游标的介绍与使用
游标概念数据库操作中我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案...
数据库操作教程 2022-09-23 16:42:24 -
行转列之SQLSERVERPIVOT与用法详解
在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表:WEEK_INCOME(WEEKVARCHAR(10),INCOMEDECIMAL)我们先插入一些模拟数据:INSERTINTOWEEK_INCOMESELECT'星期一',1000UNIONALLSELECT'星期二',2000UNIONALLSELECT'星期三',3000UNIONALLSELECT'星期四',4000UNIONALLSELECT'星期五',5000UNIONALLSELECT'星期六',6000UNIONALLSELECT'星期日',7000一般我们最经常使用的查询是查询一周中每天或某几天的收入,例如查询周一至周日全部的收入:SELECTWEEK,INCOMEFROMWEEK_INCOME得到如下的查询结果集:WEEK INCOME星期一 &nbs...
数据库操作教程 2022-09-23 16:42:24