26. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(2)

  • 符:

在Transact-SQL 语言中可使用两种注释符:行注释和块注释。

行注释符为“--”,这是ANSI 标准的注释符,用于单行注释。

块注释符为“/*…*/”,“/*”用于注释文字的开头,“*/”用于注释文字的末尾。块注释符可在程序中标识多行文字为注释。

 

  • T-SQL 运算符:

算术运算:+、-、x、/、%

比较运算:>、<、=、>=、<=、 <>、!=、!>、!<

逻辑运算:and、or、not

位运算:&、|、~ 、^

连接运算:+

一元运算:+、—、~

1)、算术运算符:

算术运算符用来在两个表达式上执行数学运算,这两个表达式可以是任意两个数字数据类型的表达式。算术运算符包括+(加)、-(减)、*(乘)、/(除)、%(模)五个。

在Transact-SQL 中,“+”包含了三个方面的意义:

表示正号,即在数值前添加“+”号表示该数值是一个正数。

表示算术运算的加号,能将数值类型的两个数据相加。

连接两个字符型或binary 型的数据,这时的“+”号叫做字符串串联运算符。

%(mod):即取余数的意思

例:select 11 % 6

2)、赋值运算符

T-SQL 中只有一个赋值运算符,即(=)。赋值运算符使我们能够将数据值指派给特定的对象。另外,还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。例如,下面的代码创建了@MyCounter 变量。然后赋值运算符将@MyCounter 设置成一个由表达式返回的值。

例:declare @mycounter int

set @mycounter = 1

select@mycounter

3)、比较运算符

比较运算符用来测试两个表达式是否相同。除了textntext image 数据型的表达式外,比运算符可以用于所有的表达式。比较运算符的符号及其含义如表所示:

运算 符 含 义

=等于

>大于

<小于

>=大于等于

<=小于等于

<>不等于

Between在指定范围内

!=不等于(非SQL-92 标准)

!<不小于(非SQL-92 标准)

!>不大于(非SQL-92 标准)

例:在Demo_DB 数据库中TimeRecords 表中,查询clock_id 等于105,sign_time 时间在

2011-06-13 至2011-06-15 之内的clock_id,emp_id, join_id, depart_id, card_id,sign_time 记录.

selectclock_id,emp_id , join_id, depart_id, card_id, sign_time

from TimeRecords

whereclock_id = ‘105‘

andsign_time >= ‘2011-06-13‘

andsign_time <= ‘2011-06-15‘

或者:

selectclock_id,emp_id , join_id, depart_id, card_id, sign_time

from TimeRecords

whereclock_id = ‘105‘

andsign_time between ‘2011-06-13‘ and ‘2011-06-15‘

虽然两者都可等到相同的结果,但一般在生产环境中,建议不要使用between,因为在查询语句中使用between语句时,需要全表执行一次查询运算,会增加CPU运算时间及语句执行时间.

比较运算符的结果是布尔数据类型,它有三种值:TRUE、FALSE 和NULL。那些返回布尔数据类型的表达式被称为布尔表达式。和其他SQL Server 数据类型不同,不能将布尔数据类型指定为表列或变量的数据类型,也不能在结果集中返回布尔数据类型。

当SET ANSI_NULLS 为ON 时,带有一个或两个NULL 表达式的运算符返回NULL。

当SET ANSI_NULLS 为OFF 时,上述规则同样适用,只不过如果两个表达式都为NULL,那么等号运算符返回TRUE。例如,如果SET ANSI_NULLS 是OFF,那么NULL=NULL就返回TRUE。

在WHERE 子句中使用带有布尔数据类型的表达式,可以筛选出符合搜索条件的行,也可以在流控制语言语句(例如 IF和 WHILE)中使用这种表达式。

4)、位运算符

位运算符在两个表达式之间执行位操作,这两个表达式可以是任意两个整型数据类型的表达式。位运算符的符号及其定义如表所示:

运算 符 含 义

&(按位AND) 按位与(两个操作数)

|(按位OR) 按位或(两个操作数)

^(按位互斥OR) 按位异或(两个操作数)

~(按位NOT) 按位取反(一个操作数)

位运算符的操作数可以是整型或二进制字符串数据类型中的任何数据类型(但image

数据类型除外),此外,两个操作数不能同时是二进制字符串数据类型中的某种数据类型

例:定义一个局部变量@tb,并设置别名为TABLE,并指定参数sex字段类型为bit,参数num2字段类型为int.

DECLARE@tb TABLE (sex bit ,num2 INT)

INSERTINTO @tb SELECT 1,1

INSERTINTO @tb SELECT 0,2

INSERTINTO @tb SELECT 1,3

INSERTINTO @tb SELECT 1,4

select* from @tb

SELECTsex,‘~sex‘=~sex,‘sex^‘=sex^1, num2 FROM @tb

执行结果:

5)、逻辑运算符

逻辑运算符用来对某个条件进行测试,以获得其真实情况。逻辑运算符和比较运算符一样,返回带有TRUE 或FALSE 值的布尔数据类型。逻辑运算符的符号及其含义如表所示:

运算 符 含 义

ALL如果一系列的比较都为TRUE,那么就为TRUE

AND如果两个布尔表达式都为TRUE,那么就为TRUE

ANY如果一系列的比较中任何一个为TRUE,那么就为TRUE

BETWEEN如果操作数在某个范围之内,那么就为TRUE

EXISTS如果子查询包含一些行,那么就为TRUE

IN如果操作数等于表达式列表中的一个,那么就为TRUE

LIKE如果操作数与一种模式相匹配,那么就为TRUE

NOT对任何其他布尔运算符的值取反

OR如果两个布尔表达式中的一个为TRUE,那么就为TRUE

SOME如果在一系列比较中,有些为TRUE,那么就为TRUE

三个运算符的级别为NOTANDOR

6)、一元运算符

一元运算符只对一个表达式执行操作,这个表达式可以是数字数据类型中的任何一种数据

类型,如表所示:

运算 符 含 义

+(正) 数值为正

- (负) 数值为负

~(按位 NOT) 返回数字的补数

运算符的运算顺序:

l 括号: ()

l 位运算符: ~

l 算术运算符:*、/、%

l 算术运算符:+、-

l 位运算符:^

l 位运算符:&

l 位运算符:|

l 逻辑运算符:NOT

l 逻辑运算符:AND

l 逻辑运算符:OR

时间: 2024-10-13 07:03:45

26. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(2)的相关文章

【MYSQL】update/delete/select语句中的子查询

update或delete语句里含有子查询时,子查询里的表不能在update或是delete语句中,如含有运行时会报错:但select语句里含有子查询时,子查询里的表可以在select语句中. 如:把总成绩小于100的学生名称修改为天才 select stu_id from score group by stu_id having sum(grade)<100; #查询总成绩小于100的学生IDupdate students set name='天才' where id in (select s

SQL嵌套SELECT语句的用法-

SQL嵌套SELECT语句是很常见的SQL语句,下面就为您详细介绍SQL嵌套SELECT语句的语法,并附相关示例,供您参考学习之用. 嵌套SELECT语句也叫子查询,一个SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回. 1.单行子查询 :单行子查询是指子查询的返回结果只有一行数据.当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=,

在 SQL Server 数据库的 WHERE 语句中使用子查询

这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Server Management Studio和AdventureWorks2012数据库的.读者可以阅读我的SQL Server使用入门学习使用这些免费的工具. 在WHERE语句中使用子查询 在WHERE语句中使用子查询是非常常见的.常见的用法是用EXISTS或IN测试存在性.在某些情况下重新考虑查询语

SQL SERVER SELECT语句中加锁选项的详细说明 [转]

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果. 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明. 功能说明: NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“

SQL主、外键,子查询

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自

【Oracle】SQL 中Select语句完整的执行顺序

SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5.使用having子句筛选分组: 6.计算所有的表达式: 7.select 的字段: 8.使用order by对结果集进行排序. SQL语言不同于其他编程语言的最明显特征是处理代码的顺序.在大多数据库语言中,代码按编码顺序被处理.但在SQL语句中,第一个被处理的子句式FROM,而不是

sql中select语句详解及用途

SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] sel

基本SQL,SELECT语句

SQL 语言大小写不敏感. SQL 可以写在一行或者多行 关键字不能被缩写也不能分行 各子句一般要分行写. 使用缩进提高语句的可读性. select语句 例如表:SCOTT.EMP select * from SCOTT.EMP where comm > sal; *代表通配符.表示所有列 select sal,comm from scott.emp where ename = 'WARD' ; 注意:ename是字符串所以注意其大小写. select *  from scott.emp whe

SQL的select语句

SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL SELECT 语法 SELECT 列名称 FROM 表名称 以及: SELECT * FROM 表名称 注释:SQL 语句对大小写不敏感.SELECT 等效于 select. SQL SELECT 实例 如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:

sql中select语句的逻辑执行顺序

下面是SELECT语句的逻辑执行顺序: FROMONJOINWHEREGROUP BYWITH CUBE or WITH ROLLUPHAVINGSELECTDISTINCTORDER BYTOP MICROSOFT指出,SELECT语句的实际物理执行顺序可能会由于查询处理器的不同而与这个顺序有所出入. GROUP BY和HAVING 不能使用别名,就是因为他们先于select执行.