首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

T-SQL基础(一)之简单查询

两值逻辑 与T-SQL中的大多数谓词不同,EXISTS使用两值逻辑(True/False),而不是三值逻辑; 在EXISTS( SELECT * FROM T_A WHERE Id=12)中,EXISTS...SQL Server引擎在优化查询时会忽略SELECT子句。所以,SELECT子句中的星号(*)对于性能没有任何负面影响。...FROM子句用于指定需要查询的数据源,WHERE语句对数据源中的数据做基于行的筛选。通常WHERE子句可以决定查询是否使用索引,及使用哪些索引,对于查询优化有着重要意义。...如,WHERE子句中的多个表达式的计算并没有确定的顺序。 CASE...WHEN... CASE表达式是标量表达式,返回一个符合条件的值。注意,CASE是表达式,不是语句,与COUNT类似。...内部查询的结果集被用于外部查询,称为子查询。

4.2K20

《T-SQL查询》读书笔记Part 1.逻辑查询处理知多少

一、关于T-SQL   T-SQL是ANSI和ISO SQL标准的MS SQL扩展,其正式名称为Transact-SQL,但一般程序员都称其为T-SQL。...(2)WHERE:根据在WHERE子句中出现的谓词对VT1中的行进行筛选。只有让谓词计算结果为TRUE的行,才会插入VT2中。   ...(2)WHERE阶段: WHERE C.city = 'Madrid'   在此阶段会去掉VT1中客户为MRPHS的行(因为其cityid不是Madrid),生成如下所示的VT2: ?...ON和WHERE的区别:WHERE对行的删除是最终的,而ON对行的删除并不是,因此步骤1-J3添加外部行时会再添加回来。此外,只有当使用外连接时,ON和WHERE才存在这种逻辑区别。    ...步骤5-2=>应用DISTINCT子句   此示例木有DISTINCT子句,故VT5-1没有变化。

1.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)「建议收藏」

    T-SQL支持4个明显的算数运算符:+、-、*、/,以及%运算符。 注意,在T-SQL中,涉及两个操作数的标量表达式的数据类型,是按两个数据类型优先级中的较高优先级确定的。...NULL标记 T-SQL支持用于表示缺失值的NULL标记,并使用三值逻辑。TRUE、FALSE和UNKNOWN,T-SQL遵循这方面的标准。...注意,对于分组和排序,两个NULL表示被视为相等。...遗憾的是,SQL Server不支持短路,它基于标准SQL的同事操作概念,SQL Server可以按任意顺序自由处理WHERE子句中的表达式。...例如,CASE表达式中的WHEN子句的计算顺序是有保证的,可以按如下方式修改: SELECT col1, col2 FROM dbo.T1 WHERE CASE WHEN col1 = 0

    1.8K20

    T-SQL教程_sql server 2008使用

    T-SQL语言中最重要的部分是它的查询功能,查询语言用来对已经存在于数据库中的数据按 照特定的行、列、条件表达式或者一定次序进行检索。...*/ FROM table_source /* FROM子句,指定表或视图 */ [ WHERE search_condition ] /* WHERE子句,指定查询条件 */ [ GROUP...子句实现,WHERE子句给出查询条件,该子句必须紧跟FROM子句之后。...----------------------------------------------- 结果可以自行测试,内容过多,我就不往这放了 3、连接查询 a.连接谓词 在SELECT语句的WHERE子句中使用比较运算符给出连接条件对表进行连接...b.以JOIN关键字指定的连接 T-SQL扩展了以JOIN关键字指定连接的表示方式,使表的连接运算能力有了增强。JOIN连接在FROM子句的中指定。

    1.7K30

    SQLServer中的CTE通用表表达式

    开发人员正在研发的许多项目都涉及编写由基本的 SELECT/FROM/WHERE 类型的语句派生而来的复杂 SQL 语句。...其中一种情形是需要编写在 FROM 子句内使用派生表(也称为内联视图)的 Transact-SQL (T-SQL) 查询。...对于初学者来说,可以在 T-SQL 批处理、用户自定义函数、存储过程、触发器或视图中创建并使用 CTE。 CTE 仅能被紧随其后的语句所引用。...每个 CTE 都可以被紧随其后的 CTE 所引用,形成层接的构建关系。CTE 定义后面的数据操作语言 (DML) 语句也可引用 WITH 子句中定义的任何 CTE。...这个终止子句负责确保递归算法最后将终止,并弹出了递归调用堆栈。若无此子句,您的代码最终将无限循环下去。   CTE 可从两个方面帮助处理终止子句。首先是一个隐式终止子句,当递归成员返回零记录时出现。

    3.9K10

    T-SQL学习笔记(索引贴)

    没有涉及高级话题 适合有一点T-SQL知识 但想深入了解T-SQL的人看 我觉得例子有很大的借鉴意义 如果对哪篇文章有疑问, 可以在文章下留言 我会尽快回复的 真诚的希望能和朋友们讨论也希望高人多批评...begin和end    4:两种case语句   5:循环   http://www.cnblogs.com/liulun/articles/1359567.html 二:简单的增 删 改 查和一些相关子句...   1:update    2:insert    3:select    4:delete    5:where子句   6:order by子句   7:distinct关键字   8:group...by 聚集函数 和 having子句   http://www.cnblogs.com/liulun/articles/1343417.html 三:复杂一点的查询   1:inner join   ...中常用的函数 http://www.cnblogs.com/liulun/articles/1346212.html T-SQL学习笔记CHM版 https://files.cnblogs.com

    53410

    《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    相信很多人在笔试或面试的时候被问到如何通过SQL实现行转列或列转行的问题,可能很多人当时懵逼了,没关系,下面我们通过例子来理解。   ...(4)使用T-SQL PIVOT运算符进行透视转换   自SQL Server 2005开始引入了一个T-SQL独有的表运算符-PIVOT,它可以对某个源表或表表达式进行操作、透视数据,再返回一个结果表...为了灵活而有效地处理分组集,SQL Server 2008引入了几个重要的新功能(他们都是GROUP BY的从属子句,需要依赖于GROUP BY子句):   (1)GROUPING SETS从属子句   ...(2)CUBE从属子句   CUBE子句为定义多个分组集提供了一种更简略的方法,可以把CUBE子句看作是用于生成分组的幂集。...AS newphone, deleted.address AS oldaddress, inserted.address AS newaddress;   以上MERGE语句使用OUTPUT子句返回被修改过的行的新旧版本的值

    9K20

    为什么SQL语句Where 1=1 and在SQL Server中不影响性能

    实际上在T-SQL语句的书写过程中经常犯得错误就是得出一个很窄的结论,然后教条式的奉若圣经,对于T-SQL领域来说,在网上经常可以看到所谓的优化守则,随便在网上搜了一些摘录如下: 不要有超过5个以上的表连接...对出现在where子句中的字段加索引 避免在索引列上使用函数或计算,在where子句中,如果索引是函数的一部分,优化器将不再使用索引而使用全表扫描 在insert和update维表时都加上一个条件来过滤维表中已经存在的记录...比如说访问一行数据,如果是编程语言实现,就需要指定连接数据的方式,打开数据,按某个方式取出数据,最后还要关闭连接,而在SQL Server中,T-SQL仅仅是定义如何去获取所需的数据,而无需考虑实现细节...图1中从T-SQL到具体返回数据经历了多个步骤,每一个步骤又存在大量的规则。...这里我们举例,假如表中有100万行数据,where a=1的数据有1万条,where b=1的数据有1万条,则A和B的选择性都是1/100=0.01,在Where中A And B联合的估计行数则变为0.01

    2K30

    《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    (3)关于TOP子句:T-SQL独有关键字   ① 可以使用PERCENT关键字按百分比计算满足条件的行数 SELECT TOP (1) PERCENT orderid, orderdate, custid...(4)关于OVER子句:为行定义一个窗口以便进行特定的运算   OVER子句的优点在于能够在返回基本列的同时,在同一行对它们进行聚合;也可以在表达式中混合使用基本列和聚合值列。   ...子句中指定错误的查询条件。   ...这是因为对于所有的外部行,因为它们在o.orderdate列上的取值都为NULL,所以WHERE子句中条件o.orderdate='20070212'的计算结果为UNKNOWN,因此WHERE子句会过滤掉所有的外部行...换句话说:一个行能够被返回,仅当这个行在第一个输入的集合中至少出现过一次,而且在第二个集合中一次也没出现过。

    2K51

    Windows server 2016——SQL server T-SQL查询语句

    视频教程:T-SQL查询语句教程 ---- 介绍 SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。...一.SQL简介 1.SQL和T-SQL SQL (结构化查询语言) 关系数据库的标准语言 非过程化语言 统一的语言 T-SQL是Transact-SQL的缩写,是SQL在Microsoft SQL Server...T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。...employee (3)Delete和Truncate table区别 条件删除 记录事物日志 重置标识符列 外键约束 Delete 使用where子句按条件删除 是,数据可以恢复 否 可以用于含有外键约束的表...指定查询条件 [GROUP BY group_by_expression] 指定查询结果的分组条件 [HAVING search_conditions] 指定分组搜索条件,与GROUP BY子句一起使用

    25020

    除了会排序,你对ORDER BY的用法可能一无所知!

    从返回的消息中我们可以看到,重命名后的City并不能被WHERE识别,所以才会报“列名'City'无效”的提示。...从上面的几个测试示例的结果中,可以得出我们的结论是正确的:ORDER BY子句是唯一能重用列别名的一步。...五、T-SQL中表表达式加了TOP可以使用ORDER BY 我们从第四点的报错信息中可以看到:在另外还指定了 TOP、OFFSET 或 FOR XML是可以使用ORDER BY的。 ?...因为T-SQL中带有ORDER BY的表表达式加了TOP后返回的是一个没有固定顺序的表。...因此,在这种情况下,ORDER BY子句只是为TOP选项定义逻辑顺序,就是下面这个逻辑子句 SELECT TOP 3 * FROM Customers ORDER BY 城市 结果如下: ?

    2.3K30

    SQL中order by的高级用法

    城市='广州' 结果如下: 2、WHERE后面使用列别名的情况 SELECT 姓名 AS Name, 地址 AS Address, 城市 AS City FROM Customers WHERE City...='广州' 执行结果如下: 从返回的消息中我们可以看到,重命名后的City并不能被WHERE识别,所以才会报“列名'City'无效”的提示。...五、T-SQL中表表达式加了TOP可以使用ORDER BY 我们从第四点的报错信息中可以看到:在另外还指定了 TOP、OFFSET 或 FOR XML是可以使用ORDER BY的。 这又是为什么呢?...AS City FROM (SELECT TOP 3 * FROM Customers ORDER BY 城市) Customers ORDER BY ID,Name,Address 结果如下: 因为T-SQL...因此,在这种情况下,ORDER BY子句只是为TOP选项定义逻辑顺序,就是下面这个逻辑子句 SELECT TOP 3 * FROM Customers ORDER BY 城市 结果如下: 而不保证结果集的排列顺序

    15210

    T-SQL进阶:超越基础 Level 2:编写子查询

    By Gregory Larsen, 2016/01/01 (首次发布于: 2014/01/29) 关于系列 本文属于进阶系列:T-SQL进阶:超越基础 跟随Gregory Larsen的T-SQL DML...进阶系列,其涵盖了更多的高级方面的T-SQL语言,如子查询。...WHERE子句中子查询的示例 有时你想根据SELECT语句的结果来驱动WHERE子句条件。 当您在WHERE子句中的SELECT语句时,此SELECT语句实际上是一个子查询。...子查询可以被认为是返回一组记录的查询,因此它可以像FROM表一样在FROM子句中使用。 清单7中的查询显示了我如何在FROM子句中使用子查询。...当子查询用于FROM子句时 当IN子句中使用子查询时 当表达式中使用子查询时 当子查询与比较运算符一起使用时 问题3: 在WHERE子句中使用一个子查询的Transact-SQL语句总是比不包含子查询(

    6K10

    重学 SQL(一)

    目前流行的关系型数据库有: MySQL SQL Server Oracle PostgreSQL 需要注意: 虽然 SQL 已经被 ANSI 组织定义为标准,不幸地是,各个不同的数据库对标准的 SQL...例如,Oracle 把自己扩展的 SQL 称为 PL/SQL,Microsoft 把自己扩展的 SQL 称为 T-SQL。...condition] ORDER BY [column_name]; 其中 FROM 子句、WHERE 子句和 ORDER BY 子句都是可选的,并且顺序不能变。...我们把每个子句分别写在一行在复杂查询中是十分有用的。 SELECT 子句 我们可以使用 * 返回全部列,或者单独指定希望返回的列名列表。 我们还可以对列进行算数运算,使用 AS 对某列指定别名。...子句 WHERE 子句用于过滤我们的结果集,我们在 WHERE 子句中可以使用比较运算符,不等于使用符号表示为 !

    1.1K20
    领券