Sql Server系列:运算符和表达式
运算符的一些符号,他们能够用于执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较。在SQL Server 2012中,运算符主要由以下6大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、连接运算符以及按位运算符。
1. 运算符
1.1> 算术运算符
算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是任何数值数据类型。
| 运算符 | 作用 |
|---|---|
| + | 加法运算 |
| - | 减法运算 |
| * | 乘法运算 |
| / | 除法运算,返回商 |
| % | 求余运算,返回余数 |
1.2> 比较运算符
比较运算符用来比较两个表达式的大小,表达式可以是字符、数字或日期数据,其比较结果是Boolean值。
| 运算符 | 含义 |
|---|---|
| = | 等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| <> | 不等于 |
1.3> 逻辑运算符
逻辑运算符可以把多个逻辑表达式连接起来测试,以获得其真实情况。返回带有TRUE、FALSE或UNKNOWN的Boolean数据类型。
| 运算符 | 含义 |
|---|---|
| ALL | 如果一组的比较都为TRUE,则返回TRUE。 |
| AND | 如果两个布尔表达式都为TRUE,则返回TRUE。 |
| ANY | 如果一组的比较中任何一个为TRUE,则返回TRUE。 |
| >BETWEEN | 如果操作数在某个范围之内,则返回TRUE。 |
| EXISTS | 如果子查询包含一些行,则返回TRUE。 |
| IN | 如果操作数等于表达式列表中的一个,则返回TRUE。 |
| LIKE | 如果操作数与一种模式相匹配,则返回TRUE。 |
| NOT | 对任何其他布尔运算符的值取反。 |
| OR | 如果两个布尔表达式中的一个为TRUE,则返回TRUE。 |
| SOME | 如果在一组比较中,有些为TRUE,则返回TRUE。 |
1.4> 连接运算符
加号(+)是字符串串联运算符,可以将两个或两个以上字符串合并成一个字符串。
1.5> 按位运算符
按位运算符在两个表达式之间执行位操作,这两个表达式可以为整数数据类型中的任何数据类型。
| 运算符 | 含义 |
|---|---|
| & | 位与 |
| | | 位或 |
| ^ | 位异或 |
| ~ | 数字非 |
2. 表达式
根据连接表达式的运算符进行分类,可以将表达式分为算术表达式、比较表达式、逻辑表达式、按位表达式和混合表达式等;根据表达式的作用进行分类,可以将表达式分为字段名表达式、目标表达式和条件表达式。
2.1> 字段名表达式
字段名表达式可以是单一的字段名或几个字段的组合,还可以是由字段、作用于字段的集合函数和常量的任意算术组成的运算表达式。主要包括数值表达式、字符表达式、逻辑表达式和日期表达式。
2.2> 目标表达式
目标表达式有4中构成方式:
(1)*:表示选择相应基表和视图的所有字段。
(2)<表名>.:表示选择指定的基表和视图的所有字段。
(3)集函数():表示在相应的表中按集函数操作和运算。
(4)[<表名>.]字段名表达式[,[<表名>.]<字段名表达式>]...:表示按字段名表达式在多个指定的表中选择。
2.3> 条件表达式
常用的条件表达式有以下6种:
(1)比较大小——应用比较运算符构成表达式。
(2)指定范围——(NOT)BETWEEN...AND...运算符查找字段值在或者不在指定范围内的记录。BETWEEN后面指定范围的最小值,AND指定范围的最大值。
(3)集合(NOT)IN——查询字段值属于或不属于指定集合内的记录。
(4)字符匹配——(NOT)LIKE查找字段值满足匹配字符串中指定的匹配条件的记录。匹配字符串可以是一个完整的字符串,也可以包含通配符“_”和“%”,“_”表示任意单个字符,"%"表示任意长度的字符串。
(5)空值IS(NOT) NULL——查找字段值(不)为空的记录。
(6)多重条件AND和OR。AND表达式用来查找字段值同时满足AND相连接的查询条件的记录。OR表达式用来查询字段值满足OR连接的查询条件中的任意一个的记录。AND运算符的优先级高于OR运算符。
Sql Server系列:运算符和表达式的更多相关文章
- SQL Server 系列文章快速导航(SWF版)
一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软S ...
- SQL Server系列文章目录
SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录
- sql server编写简洁四则运算表达式脚本实现计算批次功能(C#等其它编程语言也能直接用此通用表达式)
问题: 在数据库编程开发中,有时会遇到数据量比较大的情况,如果直接大批量进行添加数据.修改数据.删除数据,就会是比较大的事务,事务日志也比较大,耗时久的话会对正常操作造成一定的阻塞.虽不至于达到删库跑 ...
- SQL Server系列目录
一.SQL Server基础部分 1 数据库概念及规范化设计 1.1 数据库物理模式设计 1.2 Microsoft SQL Server Management Studio模板资源管理器 2 数据 ...
- Sql Server系列:嵌套查询
嵌套查询是指一个查询语句嵌套在另一个查询语句内部的查询.嵌套查询也就子查询,在SELECT子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或多个表.子查询中可以使用比较运 ...
- Sql Server系列:子查询
1 子查询概念 子查询是嵌套在另一个查询中的普通T-SQL查询.在有一个SELECT语句通过使用小括号创建子查询,作为另一个查询的部分数据或条件的基础. 子查询通常用于满足以下某个需求: ◊ 将一个查 ...
- SQL Server系列
这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找. SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的 ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- Sql Server系列:Transact-SQL变量
变量是Transact-SQL中由用户定义.可对其赋值并参与运算的一个实体,分为全局变量和局部变量.其中全局变量由系统自定义并维护,全局变量名称前面有@@字符,任何程序均可随时调用.局部变量名称前面有 ...
随机推荐
- bfrd collector性能排查
1.2.09上昨天timeout在18点23分-22点10分 2.检测2.17网卡流量,sar -f /var/log/sa/sa06 -n DEV,发现这段时间刚好是rxpck/s超过6400. ...
- 弱省互测#1 t3
题意 给出一棵n个点的树,求包含1号点的第k小的连通块权值和.(\(n<=10^5\)) 分析 k小一般考虑堆... 题解 堆中关键字为\(s(x)+min(a)\),其中\(s(x)\)表示\ ...
- Lession1 写在机器学习之前
机器学习从学习方式上来讲,可以分为两类: 监督学习(Supervised Learning),简而言之就是“有标签”学习 无监督学习(Unsupervised Learning),简而言之就是“无标签 ...
- Android 学习笔记之一 “Unable to establish loopback connection”
今天碰到一个错误:Unable to establish loopback connection,在网上找各种方法都解决不了,后来看一个帖子说是要关闭系统防火墙,尝试了下还是不行.最后是进任务管理器杀 ...
- PyCharm 代码完成/代码提示
因为python是动态语言,所以在有些情况ide会无法有效代码提示,见下: import sqlite3 conn = sqlite3.connect('d:/xxx.db') conn. #这里按 ...
- List<T>Find方法,FindAll方法,Contains方法,Equals方法
假如传入的T是一个类, List<MessageInfos> MessageInfos = new List<MessageInfos>(); MessageInfos= Me ...
- 【Telerik】弹出对话框RadWindow,确认删除信息
要做一个删除功能,但是删除前正常都要弹出对话框确认一下是否删除信息,防止误删信息.
- jQuery extend扩展String原型
jQuery.extend(String.prototype, { isPositiveInteger:function(){ return (new RegExp(/^[1-9]\d*$/).tes ...
- DBUtils 笔记
一.DBUtils介绍 apache 什么是dbutils,它的作用 DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作.可 ...
- 一台linux真实机实现多台Tomcat服务
一.事前准备 ü 确保linux并未安装tomcat (这里虚拟机测试) ü 下载jdk与tomcat ① jdk-6u18-ea-bin-b01-linux-i586-20_aug_2009.bin ...