-
SQL中的开窗函数详解可代替聚合函数使用
在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次都要又到子查询,这样显得sql语句复杂难懂,给维护代码的人带来很大的痛苦,然而开窗函数出现了,曙光也来临了。如果要想更具体了解开窗函数,请看书《程序员的SQL金典》,开窗函数在mysql不能使用...
数据库操作教程 2022-09-23 18:25:37 -
SQLServer中的集合运算:UNION,EXCEPT和INTERSECT示例代码详解
SQLServer中的集合运算包括UNION(合并),EXCEPT(差集)和INTERSECT(相交)三种。集合运算的基本使用1.UNION(合并两个查询结果集,隐式DINSTINCT,删除重复行)--合并两个提取表/派生表(derivedtable),返回结果为:[a,b,c,d,e]SELECTFCFROM(VALUES('a'),('b'),('c'),('e'))Table1(FC)UNIONSELECTFCFROM(VALUES('a'),('b'),('c'),('d'))Table2(FC)2.UNIONALL(简单合并两个查询结果集,不删除重复行)--提取表/派生表(derivedtable)可以是多列,列名、顺序可以不同,但列数必须相同SELECT*FROM(VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('e','Elina'))Table1(FC,Name)UNIONALLSELECT*FROM(VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('d','David'))Ta...
数据库操作教程 2022-09-23 18:25:20 -
SQL Server中的约束(constraints)详解
目录一、约束的分类二、约束命名三、主键约束1、在创建表的时候创建主键约束。2、在已存在的表上创建主键约束3、复合主键的创建四、外键约束4.1、创建表的时候创建外键4.2、在已存在的表中添加一个外键4.3、级联动作五、唯一约束主键和唯一约束的区别:六、CHECK约束七、DEFAULT约束7.1在创建表时定义DEFAULT约束:7.2在已存在的表上添加DEFAULT约束:八、禁用约束8.1、在创建约束时,忽略检查之前的不满足数据8.2、临时禁用已存在的约束九、规则和默认值(已淘汰)9.1、规则9.2、默认值9.3确定哪个表和数据类型使用给定的规则或默认值十、系统视图一、约束的分类在SQLServer中,有3种不同类型的约束...
数据库操作教程 2022-09-23 18:22:44 -
SQL Server中的文件和文件组介绍
文件和文件组简介在SQLServer中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQLServer通过管理逻辑上的文件组的方式来管理文件...
数据库操作教程 2022-09-23 18:22:36 -
SQL Server中的数据类型详解
目录哪些对象需要数据类型一、整数数据类型1、bit2、tinyint3、smallint4、int(integer)5、bigint二、浮点数据类型1、real:近似数值型2、float[(n)]:近似数值型3、decimal[p[s]]4、numeric[p[s]]5、smallMoney货币型6、money货币型三、字符数据类型1、char[(n)]2、nchar[(n)]3、varchar[(n|max)]4、nvarchar[(n|max)]5、text6、ntext四、日期和时间数据类型1、datetime:日期和時間(1753-1-1日到9999-12-31)2、dateTime2(n):高精度的datetime类型(0001-01-01到9999-12-31)3、smalldatetime :精确到分钟,日期和時間。(1900-01-01到2079-06-06)不推荐...
数据库操作教程 2022-09-23 18:22:15 -
sql中的where、groupby和having用法解析
废话不多说了,直接给大家贴代码了,具体代码如下所示:--sql中的where、groupby和having用法解析--如果要用到groupby一般用到的就是“每这个字”例如说明现在有一个这样的表:每个部门有多少人就要用到分组的技术selectDepartmentIDas'部门名称',COUNT(*)as'个数'fromBasicDepartmentgroupbyDepartmentID--这个就是使用了groupby+字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID--DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;--如果不用count(*)而用类似下面的语法selectDepartmentID,DepartmentNamefromBasicDepartmentgroupbyDepartmentID--将会出现错误--选择列表中的列'BasicDepartment.DepartmentName'无效,因为该列没有包含在聚合函数或GROUPBY子句中。这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在GroupBy语句的后...
数据库操作教程 2022-09-23 18:21:59 -
SQL Server删除表中的重复数据
添加示例数据createtableStudent(IDvarchar(10)notnull,Namevarchar(10)notnull,);insertintoStudentvalues('1','zhangs');insertintoStudentvalues('2','zhangs');insertintoStudentvalues('3','lisi');insertintoStudentvalues('4','lisi');insertintoStudentvalues('5','wangwu');删除Name重复多余的行,每个Name仅保留1行数据1、查询表中Name重复的数据selectNamefromStudentgroupbyNamehavingcount(Name)>12、有唯一列,通过唯一列最大或最小方式删除重复记录检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行deletefromStudentwhereNamein(selectNamefromStudentgroupbyNamehavingco...
数据库操作教程 2022-09-23 18:21:24 -
关于SQLServer中bit类型字段增删查改的一些事
前言本文主要给大家介绍了关于SQLServer中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了。废话不多,直接上代码看结果就好了...
数据库操作教程 2022-09-23 18:21:17 -
SQL Server中的逻辑函数介绍
IIF:根据布尔表达式计算为true还是false,返回其中一个值。IIF是一种用于编写CASE表达式的快速方法...
数据库操作教程 2022-09-23 18:20:55 -
SQLServer中关于基数估计计算预估行数的一些方法探讨
关于SQLServer2014中的基数估计,官方文档OptimizingYourQueryPlanswiththeSQLServer2014CardinalityEstimator里有大量细节介绍,但是全部是英文,估计也没有几个人仔细阅读。那么SQLServer2014中基数估计的预估行数到底是怎么计算的呢?有哪一些规律呢?我们下面通过一些例子来初略了解一下,下面测试案例仅供参考,如有不足或肤浅的地方,敬请指教!下面实验测试的环境主要为SQLServer2014SP2(StandardEdition(64-bit))具体版本号为12.0.5000.0,如有在其它版本测试,后面会做具体说明...
数据库操作教程 2022-09-23 18:20:51 -
sql删除表中的重复记录
遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长)selectMIN(ID)asid,StructSN,Date,UserID,StarCount,COUNT(StructSN)ascfromT_Dor_StructStarwhereDate>='20160919'groupbyStructSN,Date,UserID,StarCounthavingCOUNT(StructSN)>1然后就可以直接删除,基本原理就是,找到重复记录的每一条记录,排除掉重复id最小的记录,删除剩余的重复记录。deletefromT_Dor_StructStarwhereIDin(selects.IDfromT_Dor_StructStars,(selectMIN(ID)asid,StructSN,Date,UserID,StarCount,COUNT(StructSN)ascfromT_Dor_StructStarwhereDate>='20160919'gro...
数据库操作教程 2022-09-23 18:19:38 -
深入浅析SQL中的groupby和having用法
一、sql中的groupby用法解析: GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。 作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理...
数据库操作教程 2022-09-23 18:19:03