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

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

PIVOT运算符同样涉及前面介绍的三个逻辑处理阶段(分组、扩展和聚合)以及同样的透视转换元素,但使用的是不同的、SQL Server原生的语法。   ...(2)批处理:客户端应用程序发送到SQL Server的一组单条或多条T-SQL语句,SQL Server将批处理语句作为单个可执行的单元。 ?   ...8.2 流程控制   (1)IF...ELSE   这个大家应该都知道,但是需要注意的是:T-SQL使用的是三值逻辑,当条件取值为FALSE或UNKNOWN时,都可以激活ELSE语句块。...一般来说,如果按固定顺序一次处理一行的游标方式涉及到的数据访问要比基于集合的方式少得多,则使用游标会更加有效,前一篇提到的连续聚合就是这样的一个例子。   如何使用游标呢? ?   ...允许用字符串来动态构造T-SQL代码地一个批处理,接着再执行这个批处理,这种功能叫做动态SQL(Daynamic SQL)。

9K20

T-SQL基础(六)之可编程对象

批 批是一条或多条被客户端作为整体发送给SQL Server进行执行的T-SQL语句,SQL Server以GO命令来标识一个批的结束,注意,GO语句不能使用分号结尾。...SQL Server以批为单位进行词法、语法分析及语句执行等工作。一个批中的错误不会影响另一个批中语句的执行,因为不同的批在逻辑上彼此独立,不同批中包含的语句互相独立,彼此互不影响。...动态执行SQL SQL Server中可以使用两种方式来执行动态SQL:EXEC命令与sql_executesql存储过程。...EXEC EXEC是T-SQL提供的执行动态SQL的原始技术,接收一个字符串作为输入并执行字符串中的语句: USE WJChi; ​ EXEC('SELECT * FROM dbo.UAddress')...,但存储过程可以执行更为复杂的逻辑,可以有多个返回值。

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

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

    -- 二.使用T-SQL语句操作数据表 1.插入数据 insert [INTO] [列名] values # 可选 必须 可选 如果省略[列名],与表中字段的顺序保持一致...重置标识符列为0 不能用于含有外键约束的表 Truncate Table执行速度更快,用于清空大数据量表 在执行Truncate Table前要确保数据可删除 三.使用使用T-SQL语句查询数据 1...= 指定值包含的范围:between... and .…. 是否为空:isnull 模糊查询:like ,常与通配符%和_使用。...= 不等于 BETWEEN 指定值的包含范围(包含边界),使用 And 分隔开始值和结束值 IS [Not] NULL 指定是否搜索空值或非空值 LIKE 模糊查询,与指定字符串进行模式匹配 IN 是否在数据范围里面...3.逻辑表达式 用逻辑运算符将条件连接起来 运算结果是一个逻辑值 TRUE 或 FALSE 逻辑运算符 含义 AND 组合两个条件,并在两个条件都为True时取值为True OR 组合两个条件,并在两个条件之一为

    25020

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

    '; 注意字符串”D%”前缀字母N的使用,他代表National(国家),用来表示字符串是一个Unicode数据类型数据类型(NCHAR或NVARCHAR),而不是一个常规字符数据类型(CHAR...由于lastname属性的数据类型为NVARCHAR(40),所以字母N作为字符串前缀。 2) 运算符 T-SQL支持的比较运算符包括:=、>、=、、!=、!>和!的。 如果需要连接逻辑表达式,可以使用逻辑运算符:OR和AND。 T-SQL支持4个明显的算数运算符:+、-、*、/,以及%运算符。...函数CHOOSE(,,,…,),返回列表中指定索引的表达式。 NULL标记 T-SQL支持用于表示缺失值的NULL标记,并使用三值逻辑。...为了强制执行UNIQUE约束,标准SQL将NULL标记视为彼此不同。相反地,T-SQL在UNIQUE约束中认为NULL标记是相等的。

    1.8K20

    T-SQL基础(五)之增删改

    ROLLBACK -- or COMMIT SQL中有all-at-once operations(同时操作)的概念,即出现在同一逻辑处理阶段的所有表达式在同一时间进行逻辑计算。...,应按照SQL的执行顺序来,即:先FROM,后WHERE,最后再看UPDATE语句。...但,当目标表被外键约束引用时,即使引用表(父表)为空甚至外键被禁用,都不允许使用TRUNCATE操作。...我们可以通过创建一个虚拟表,带有指向生产表的外键(甚至可以禁止外键以防影响性能),依此来避免TRUNCATE误操作。 MERGE MERGE是标准的SQL语句,T-SQL对其进行了一定的扩展。...SQL Server Management插件——SQL Prompt在执行DELETE、UPDATE但没有带WHERE子句的T-SQL时会弹出提示框,可以防止误删、误更新操作。

    1.3K20

    T-SQL基础(五)之增删改

    ROLLBACK -- or COMMIT SQL中有all-at-once operations(同时操作)的概念,即出现在同一逻辑处理阶段的所有表达式在同一时间进行逻辑计算。...,应按照SQL的执行顺序来,即:先FROM,后WHERE,最后再看UPDATE语句。...但,当目标表被外键约束引用时,即使引用表(父表)为空甚至外键被禁用,都不允许使用TRUNCATE操作。...我们可以通过创建一个虚拟表,带有指向生产表的外键(甚至可以禁止外键以防影响性能),依此来避免TRUNCATE误操作。 MERGE MERGE是标准的SQL语句,T-SQL对其进行了一定的扩展。...SQL Server Management插件——SQL Prompt在执行DELETE、UPDATE但没有带WHERE子句的T-SQL时会弹出提示框,可以防止误删、误更新操作。

    1.1K30

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

    SQL表达式运算 谓词 SQL中谓词是指运算结果为True,False或Unknown的逻辑表达式。T-SQL中的谓词有IN,BETWEEN,LIKE等。...两值逻辑 与T-SQL中的大多数谓词不同,EXISTS使用两值逻辑(True/False),而不是三值逻辑; 在EXISTS( SELECT * FROM T_A WHERE Id=12)中,EXISTS...在使用NULL值时应注意以下几点: 将NULL与其它值进行比较,不管该值是否为NULL,结果均为Unknown 应使用IS NULL或IS NOT NULL来判断值是否为NULL INSERT未给列指定值则插入...几条建议: SQL中的关键字均使用大写字母 SQL语句均使用分号结尾 SQL中使用对象的完全限定名,如:DbName.dbo.TableName 查询语句执行顺序 SQL中查询语句的逻辑处理过程与实际查询过程...CASE表达式有两种使用方式: CASE后面带有列名 这种情况下,WHEN子句中只能使用标量或返回标量的表达式,这种形式称为简单格式。

    4.2K20

    那些年我们写过的T-SQL(上篇)

    本系列包含上中下三篇,内容比较驳杂,望大家耐心阅读: 那些年我们写过的T-SQL(上篇):上篇介绍查询的基础,包括基本查询的逻辑顺序、联接和子查询 那些年我们写过的T-SQL(中篇):中篇介绍表表达式、...才外,需要记住,在TSQL中使用三值谓词逻辑,逻辑表达式可以计算为TRUE、FALSE和UNKNOWN,而如果数据字段为空,需要使用IS [NOT] NULL判断。...的字符类型,并且在使用LIKE关键字时一定要谨慎,会造成很大的查询消耗,如果实在需要大量字符串的查询,考虑使用全文检索或选用其他类型数据库等解决方案 NOT, AND, OR 分别表示非、与、或的逻辑,...时间日期函数看起来比较简单,但在实际的使用中,由于不同的时间格式,往往会让人非常的困扰,毕竟那么多的API使用起来选择比较多,这儿将最常见的罗列了出来。...,第一个是NULL故障,在查询中存在NOT IN (某个子查询),如果这个子查询的结果集中存在NULL,则无论如何其外部查询的结果也是空结果集,仍然是3值逻辑的理解。

    3.2K100

    Oracle实操

    ANSIX3135-1992[ANS92]描述了一种增强功能的SQL,现在叫做SQL-92标准(也称为SQL2)。SQL-92包括模式操作,动态创建和SQL语句动态执行、网络环境支持等增强特性。...SQL Server 使用 ANSI SQL-92 的扩展集,称为 T-SQL,其遵循 ANSI 制定的 SQL-92 标准。...字符串大小写敏感 日期值格式敏感,缺省的日期格式是’DD-MON-RR‘ 查询条件中可以使用比较运算符 select * from emp where sal > 2900; select *...使用LIKE运算符执行模糊查询(通配查询) % 表示零或多个字符 _ 表示一个字符 对于特殊符号可使用ESCAPE 标识符来查找 用法举例 select * from emp where...OR: 把检索结果较多的条件放到后面 共计四种运算符:算术>连接>比较>逻辑 ?

    90340

    sql调用存储过程exec用法_sqlserver存储过程执行日志

    大家好,又见面了,我是你们的朋友全栈君。 一、【存储过程】 存储过程的T-SQL语句编译以后可多次执行,由于T-SQL语句不需要重新编译,所以执行存储过程可以 提高性能。...1、使用T-SQL语句创建存储过程 CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING...语句 [ end ] 2、使用存储过程 使用T-SQL中的EXECUTE(或EXEC)语句可以执行一个已定义的存储过程。...:如果 EXEC SP_XXX第二个,执行组合的命令字符串 -----------------------------------------------------------------------...exec proc_getstudent -- 2、创建带有参数的存储过程 if exists(select *from sysobjects where name='proc_Findstno_student

    3.5K10

    (译) 应该是目前最全面的比较

    MSSQL 中文:大小写敏感问题比较 PostgreSQL区分大小写来进行字符串比较。LOWER()函数允许用户将字符串转换为全小写以进行比较(还有类似的UPPER()函数)。...SQL Server SQL Server使用T-SQL,其查询语法类似于标准SQL。T-SQL还包括对字符串和数据处理、局部变量以及过程式编程的附加支持。...搜索是在列或文本数据类型(包括char,varchar,nchar,nvarchar,text,ntext,image,xml或varbinary(max)和FILESTREAM)上执行的,使用T-SQL...SQL Server使用T-SQL,其查询语法类似于标准SQL。T-SQL还包括对字符串和数据处理、局部变量以及过程式编程的附加支持。...预处理查询可以带有参数,这些参数可以保护查询免受SQL注入攻击。 SQL Server也支持参数化查询,它使用sp_executesql存储过程来执行参数化查询。

    3K20

    T-SQL语句的基本概念语法

    唯一约束(unique constraint):要求该列唯一,允许为空,但只能出现一个空值 检查约束(check constraint):某列取值范围、格式限制等,如有关年龄的约束 默认约束(default...,delete等sql语句时使用 特点:原子性(Atomicity):事务是一个完整的操作。...当该事务完成时,再下一个T-SQL语句又将启动一个新事务 自动提交事务:这是SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务,如果成功执行,则自动提交;如果错误,则自动回滚 索引...聚焦索引(clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个 非聚焦索引(non-clustered):非聚焦索引指定表的逻辑顺序,数据存储在一个位置,索引存储在另一个位置...,因为它们需要对索引进行更新 存储过程(Procedure)可以包含数据操纵语句、变量、逻辑、控制语句等 优点:执行速度更快       允许模块化程序设计       提高系统安全性

    1.4K20

    学习SQL Server这一篇就够了

    T-SQL全局变量作为函数引用。例如,@@ERROR返回执行的上一个T-SQL语句的错误号;@@CONNECTIONS返回自上次启动SQL Server以来连接或试图连接的次数。...比较运算符 :比较运算符又称关系运算符,其运算结果为逻辑值,可以为三种之一:TRUE、FALSE 及 UNKNOWN。...逻辑运算符 :逻辑运算符在SELECT语句的WHERE子句部分讲过,在此了解即可。 字符串联接运算符 :通过运算符“+”实现两个字符串的联接运算。...是指在SQL Server环境之外,使用编程语言(例如C++语言)创建的外部例程形成的动态链接库(DLL)。例如,EXEC xp_cmdshell ‘dir c:’ —-显示目录信息。 用户存储过程。...可以使用T-SQL语言编写,也可以使用CLR方式编写。本教程中常说的存储过程一般是指用T-SQL语言编写的存储过程,而使用CLR方式编写的存储过程称为CLR存储过程。

    6.2K30

    Table-values parameter(TVP)系列之一:在T-SQL中创建和使用TVP

    在这种方法中,服务端逻辑必须将这些独立的值组合到表变量中,或是临时表中进行处理。  ...(2) 将多个数据值捆绑到带限定符的字符串或是XML文档中,然后再将文本值传递到一个存储过程或语句中。      ...这种方式要求存储过程或语句中要有必要的数据结构验证和数据松绑的逻辑。   (3) 为多行数据的修改创建一系列独立的SQL语句。      ...表值参数具有两个主要部分:SQL Server 类型以及引用该类型的参数,若要创建和使用表值参数,请执行以下步骤:     (1) 创建表类型并定义表结构。          ...应用比较广泛的是在Browse Master的多行数据作为过滤条件时使用。                     利用TVP使得一次插入多项或Select多行变得大为简单。

    3K90

    浅谈 SQL Server 查询优化与事务处理

    6、全文索引:是一种特殊类型的基于标记的功能性索引,主要用于在大量文本中搜索字符串。...使用存储过程的优点就是: 1、模块化程序设计 2、执行速度快、效率高 3、减少网络流量 4、具有良好的安全性 存储过程分为两类:系统存储过程和用户自定义的存储过程 系统存储过程: 是一组预编译的T-SQL...使用 T-SQL 语句调用执行存储过程的语法: EXEC [UTE] 存储过程名 [参数值] EXEC为EXECUTE的简写 常用系统存储过程的用法: exec sp_databases...事务(一般用在银行交易这一方面,如转账) 是一个不可分割的工作逻辑单元 一组命令,要么都执行,要么都不执行 事务作为单个逻辑工作单元执行的一系列操作,一个逻辑单元必须具备四个属性:原子性、一致性、隔离性...查看锁: 使用sys.dm_tran_locks动态管理视图 使用Profiler来捕捉锁信息 死锁 死锁的本质是一种僵持状态,是由多个主体对资源的争用而导致的。

    2K50

    T-SQL教程_sql server 2008使用

    文章目录 T-SQL基础技术 基本语法格式 代码准备:(可以按照我的实例自行建立数据库) 1、投影查询 a、投影指定的列 b、投影全部列 c、修改查询结果的列标题 d、去掉重复行 2、选择查询 a.表达式比较...b.范围比较 c.模式匹配 d.空值使用 代码示例: 3、连接查询 a.连接谓词 b.以JOIN关键字指定的连接 (1)内连接 (2)外连接 4、统计计算 5、排序查询 6、子查询 T-SQL基础技术...T-SQL对数据库的查询使用SELECT语句,SELECT语句具有灵活的使用方式和强大的功能, SELECT语句的基本语法格式如下: 基本语法格式 SELECT select_list /* 指定要选择的列...d.空值使用 空值是未知的值,判定一个表达式的值是否为空值时,使用IS NULL关键字,语法格式如下: expression IS [ NOT ] NULL 代码示例: -- 2、【选择查询】 --...子句中使用比较运算符给出连接条件对表进行连接,将这种表示形式称为连接谓词表示形式。

    1.7K30

    SQL Server 2012学习笔记 (二) ----- SQL Server Transact-SQL

    运算符有几种类型,分别为:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、连接运算符。...、比较运算符) (5)^(按位异或)&(按位与)| (按位或) (6)NOT (7)AND (8)ALL ANY BETWEEN IN LIKE OR SOME(逻辑运算符) (9)=(赋值...在涉及模式匹配的字符串比较中使用%、_(下划线)、[ ]、[^]等通配符。   匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。...可以在涉及模式匹配的字符串比较(例如,LIKE 和 PATINDEX)中使用这些通配符。   在SQL中通常用LIKE关键字与通配符结合起来实现模糊查询。其中SQL支持的通配符如表所示。 ?...2)结束事务   当一个事务执行完成之后,要将其结束,以便释放所占用的内存资源,结束事务使用COMMIT语句。

    2.6K30

    数据库的总结

    ,用于大型的网站开发使用,它的配置、管理、系统维护成为了一种专门的技术,涉及到比较多的、系统的专业知识。...开头的命令,如:CreateTable、CreateView及Drop Table等等 94 3-2:T-SQL中的条件表达式和逻辑运算符 95 a.条件表达式 96 (1...语句完成时,可以使用事务保证其完整性(要不执行完成,否则,全不执行) 588 a.为什么需要事务(如:银行转账) 589 b.什么是事务 590 事务是作为单个逻辑工作单元执行的一系列操作...(安全性)、将多个物理数据表抽象为一个逻辑数据表(降低复杂度、简化数据库的结构) 629 b.如何创建视图 630 增加三级权限体系,下次可分配到视图和存储过程 631...,只执行一次、安全性P94页、最后可分配到存储过程 659 使用存储过程的几个优点: 660 (1)允许模块化程序设计(可理解所有方法使用,业务逻辑封装存储过程) 661

    4.1K40

    Oracle 数据库拾遗(二)

    = 等比较运算符,不能用 >、>= 等运算符,这是因为 ROWNUM 从自然数 1 开始,Oracle 认为 ROWNUM>n(n>1)这种条件是不成立的,因此使用 >、>= 等运算符是无法返回数据记录的...接下来我们主要介绍 PL/SQL 中的专用函数。 字符串函数 查找并替换字符串 字符串操作是 PL/SQL 中使用十分频繁的操作,常用的有字符串比较、返回字符串长度、查找和替换字符串等。...DUAL 表是 Oracle 中对所有用户可用的一个实际存在的表,这个表不能用来存储信息,在实际应用中仅用来执行 SELECT 语句。...NVL 在 SQL Server 中 MS T-SQL 中提供了一个函数 ISNULL 来判断一个字符串是否为空,Oracle PL/SQL 没有提供该函数,但使用了功能更为强大的函数来替代,即 NVL...由于 NVL 函数使用的频繁性,Oracle 又提供了 NVL 函数的衍生函数: NVL2 函数,其语法格式如下所示: NVL2(x, value1, value2) 该函数的功能是如果 x 非空,返回

    1.6K10

    LINQ to SQL集成到应用程序中需考虑的一些问题

    pageSize).Take(pageSize) 生成的T-SQL语句: SELECT [t2]....语句是利用TOP和嵌套子查询, 这种方法已经被证明是比较高效的做法(相比于临时表的做法), 所以完全有理由可以一试.到这里, List, IQueryable, IQueryable都没有任何问题....3、需要一个动态排序功能, 这里List的局限性出来了, 传统的做法可能需要用一个dynamic参数来传递需要排序的列然后到SP当中来执行, 但我们已经不打算使用SP了, 也没有动态sql语句, 所有的东西都是强类型的...首先List的话, 我们不知道到底哪个字段要排序, 如果使用字符串作为参数的话, 例如放一个string sortBy作为方法的参数, 那么在方法体内就需要做if…else或者switch的判断, 而且还要考虑倒序还是正序的排序要求...但是IQueryable不能跨assembly, 一旦跨了assembly的话, 你无法使用var来引用匿名类里面的property, 绑定到control是没有问题的, 但是客户端的动态查询却成了问题

    1.2K60
    领券