left join on 查询

2191次阅读|112次收藏|501次赞

left join on 即左连接,把left join左边的表的记录全部找出来。这样连接的话,系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成你的结果。进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面。

优化SQL语句,提高数据库的访问性能

3109次阅读|161次收藏|503次赞

随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。

SQL语句的几个好习惯

1781次阅读|347次收藏|321次赞

sql 语句就是对数据库进行操作的一种语言,各种不同的数据库对SQL语言的支持与标准存在着细微的不同,SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。由于SQL语句的编写多样化,那么如何写出高效、易懂、易维护的SQL语句呢?下面介绍SQL语句的几个好习惯。

SQL中in和exists的区别

4045次阅读|271次收藏|10次赞

SQL中EXISTS检查是否有结果,判断是否有记录,返回的是一个布尔型(TRUE/FALSE), IN是对结果值进行比较,判断一个字段是否存在于几个值的范围中,exists主要用于片面的,有满足一个条件的即可, in主要用于具体的集合操作,有多少满足条件. in适合内外表都很大的情况,exists适合外表结果集很小的情况。

SQL中PIVOT 行列转换

51990次阅读|174次收藏|467次赞

T-SQL语句中,Pivot运算符用于在列和行之间对数据进行旋转或透视转换,PIVOT命令可以实现数据表的列转行,同时执行聚合运算,UNPIVOT则与其相反,实现数据的行转列。

SQL Union和Union All的用法和区别

3236次阅读|474次收藏|343次赞

SQL中UNION和Union All指令的目的是将两个SQL语句的结果合并起来。union和Union All只是将两个结果联结起来一起显示,并不是联结两个表。区别是:union是集合中的并集运算,即把所有的查询结果并集处理,而union all表示无论多条结果中有无重复都将各自的结果相加,而不删除其中重复部分。

SQL中的cast和convert的用法和区别

23690次阅读|299次收藏|98次赞

SQL中的cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。

SQL group by分组查询

52235次阅读|184次收藏|565次赞

在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析。创建分组是通过GROUP BY子句实现的。与WHERE子句不同,GROUP BY子句用于归纳信息类型,以汇总相关数据。GROUP BY的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

Sql的decimal、float、double类型的区别

61445次阅读|133次收藏|182次赞

decimal(numeric)、double、float(real) 都是SQL中的浮点类型的数据类型。FLOAT数值类型用于表示单精度浮点数值,DOUBLE数值类型用于表示双精度浮点数值,而decimal用法更灵活

SQL中Exists的用法

13321次阅读|200次收藏|242次赞

EXISTS 是SQL子查询中应用的比较多的,和SQL中的 In 子查询类似,EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False

SQL中patindex的用法

1669次阅读|337次收藏|425次赞

SQL中的patindex 返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。PATINDEX函数重要特点是支持搜索字符串中使用通配符进行查找。

select into from 和 insert into select 的用法和区别

93352次阅读|453次收藏|72次赞

Insert是T-sql中常用语句,但我们在开发中经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了

SQL Server中row_number的用法

29669次阅读|422次收藏|130次赞

ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号。

SQL Server中的临时表的用法

16092次阅读|187次收藏|378次赞

临时对象都以#或##为前缀,临时表是临时对象的一种,临时对象都存储在tempdb中。以#前缀的临时表为本地的,因此只有在当前用户会话中才可以访问,而##前缀的临时表是全局的,因此所有用户会话都可以访问。临时表以会话为边界,只要创建临时表的会话没有结束,临时表就会持续存在,当然用户在会话中可以通过DROP TABLE命令提前销毁临时表。

SQL中case when的用法

2808次阅读|137次收藏|444次赞

SQL中CASE表示计算条件列表并返回多个可能结果表达式之一。 CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。