-
SQL中遇到多条相同内容只取一条的最简单实现方法
SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别,这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。如下:表timeand针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种1、selecttime,max(total)astotal,namefromtimeandgroupbytime;//取记录中total最大的值或selecttime,min(total)astotal,namefromtimeandgroupbytime;//取记录中total最小的值上述两种方案都有个缺点,就是无法区分name字段的内容,所以一般用于只有两条字段或其他字段内容完全一致的情况2、select*fromtimeandasawherenotexists(select1fromtimeandwherea.time=timeanda.total<total);此中方案排除了方案1中name字段不准确的问题,取的是total最大的值上面的例子中是只有一个字段不相同,假如有两个字段出现...
数据库操作教程 2022-09-23 16:43:55 -
SQLServer2016正式版安装配置方法图文教程
安装SQLServer2016正式版今天终于有时间安装SQLServer2016正式版,下载那个安装包都用了一个星期安装包可以从这里下载:http://www.itellyou.cn/https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh442898.aspx安装环境hyper-v虚拟机Windows2012R2数据中心版打开安装包可以看到现在SQL引擎功能和SSMS已经独立分开安装了只支持64位功能选择里多出来的RServer,但是RServer需要联网或者自己下载下来,这是坑爹的地方之一,它没有集成在SQLServer2016安装包里服务器配置这里添加了“执行卷维护任务”特权,建议勾选,以前需要在组策略管理器里设置的,方便了很多。而启动板应该是计算机首次连接到服务器时安装到计算机上的一个小应用程序...
数据库操作教程 2022-09-23 16:43:53 -
基于Python的SQLServer数据库实现对象同步轻量级
缘由日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话,就会会存在相当一部分反复的手工操作...
数据库操作教程 2022-09-23 16:43:44 -
sqlserver编写archive通用模板脚本实现自动分批删除数据
博主做过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,肯定是一开始的话用最简单的一个delete语句,然后由于部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢而且影响系统的正常使用。然后就对delete语句进行按均匀数据量分批delete的改写,这样的话,原来的删除一个表用一个语句,就可能变成几十行,如果archive的表有十几个甚至几十个,那我们的脚本篇幅就非常大了,增加了开发和维护的成本,不利于经验比较少的新入职同事去开发archive脚本,也容易把注意力分散到所谓分批逻辑中...
数据库操作教程 2022-09-23 16:43:38 -
mybatiscollection多条件查询的实现方法
mybatiscollection多条件查询的实现方法前言:业务需要通过mybatis查询返回嵌套集合,嫌多次查询太麻烦,用自带的高级查询解决问题,下边是代码,已测试通过。说下自己的理解,就是一个主查询结果集里面嵌套了子查询的结果集,可以是多个子查询,每个子查询的条件从主查询结果集中获取,返回值各自定义...
数据库操作教程 2022-09-23 16:43:37 -
SQLServer实现跨库跨服务器访问的方法
前言我们经常会遇到一个数据库要访问另一个数据库,或者一台服务器要访问另一台服务器里面的数据库。那么这个如何实现的呢?相信看完这篇文章你就懂了!同一台服务器跨库访问实现1.首先创建两个数据库CrossLibraryTable1,CrossLibraryTable2--创建CrossLibraryTable1脚本:usemaster--打开master数据库,一般的创建语句都在master中执行.goifexists(select*fromsysdatabaseswherename='CrossLibraryTable1')dropdatabaseCrossLibraryTable1/*检查有没有这个数据库,如果有就删除它...
数据库操作教程 2022-09-23 16:43:26 -
SQLServer通过withas方法查询树型结构
一、withas公用表表达式 类似VIEW,但是不并没有创建对象,WITHAS公用表表达式不创建对象,只能被后随的SELECT语句,其作用: 1.实现递归查询(树形结构) 2.可以在一个语句中多次引用公用表表达式,使其更加简洁二、非递归的公共表达式 可以是定义列或自动列和selectinto效果差不多--指定列withwithTmp1(code,cName)as(selectid,NamefromClassUnis)select*fromwithTmp1--自动列withwithTmp2as(select*fromClassUniswhereAuthor='system')select*fromwithTmp2三、递归的方式 通过UNIONALL连接部分。通过连接自身whitas创建的表达式,它的连接条件就是递归的条件...
数据库操作教程 2022-09-23 16:43:03 -
Mysql8.0.17安装教程【推荐】
1.因为系统重装又双叒叕开始了装myql数据库下载安装包 https://dev.mysql.com/downloads/mysql/2.解压到你想安装的地方3.解压完是没有图红色框中的文件的需要你配置my.ini文件data文件夹是等会儿自动生成的4.配置环境变量右键我的电脑----属性下图顺序然后点击确定。5.win+R输入cmd打开命令行cd打开安装位置输入mysqld--initialize-insecure-----初始化数据库,并设置默认root密码为空这时候那个data文件夹就会出来了等待一会儿...
数据库操作教程 2022-09-23 16:42:58 -
sqlserver通过脚本进行数据库压缩全备份的方法【推荐】
问题:生产环境的数据库可能比较大,如果直接进行全备而不压缩的话,备份集就会占用了大量磁盘空间。给备份文件的存放管理带来不便...
数据库操作教程 2022-09-23 16:42:49 -
sqlserver编写通用脚本实现获取一年前日期的方法
问题: 在数据库编程开发中,有时需要获取一年前的日期,以便以此为时间的分界点,查询其前后对应的数据量。例如:1.想查询截止到一年前当天0点之前的数据量,以及一年前当天0点开始到现在的数据量...
数据库操作教程 2022-09-23 16:42:48 -
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