SQL 注释符、运算符与通配符
时间:2010-06-07 来源:大方无隅
与任意单字符匹配
% 与包含一个或多个字符的字符串匹配
[ ] 与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。
[^] 与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。
例子:
• WHERE FirstName LIKE '_im' 可以找到所有三个字母的、以 im 结尾的名字(例如,Jim、Tim)。
• WHERE LastName LIKE '%stein' 可以找到姓以 stein 结尾的所有员工。
• WHERE LastName LIKE '%stein%' 可以找到姓中任意位置包括 stein 的所有员工。
• WHERE FirstName LIKE '[JT]im' 可以找到三个字母的、以 im 结尾并以 J 或 T 开始的名字(即仅有 Jim 和 Tim)
• WHERE LastName LIKE 'm[^c]%' 可以找到以 m 开始的、后面的(第二个)字母不为 c 的所有姓。
附:如果你想要查找包括 % 这个字符的字符串,你需要对%字符进行转义使oracle不再把它当作一个通配符来处理。想要达到这样的效果,你需要使用ESCAPE子句来使oracle明白你选择哪个字符作为转义字符,如下所示:
SELECT instructions
FROM cust_order
WHERE instructions LIKE '%\%%' ESCAPE '\';
使用\作为转义字符,返回instructions列的值中包含%字符的所有行。
SQL 注释符、运算符与通配符
4.5.1注释符(Annotation)
在Transact-SQL 中可使用两类注释符。
ANSI 标准的注释符“--” 用于单行注释;
与C语言相同的程序注释符号,即“/**/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。
4.5.2 运算符(Operator)
1 算术运算符
包括:+(加)、―(减)、(乘)、(除)、%(取余)
2 比较运算符
包括:>(大于)<(小于)、= (等于)、>=(大于等于)、<=(小于等于)、<>
(不等于)、!=(不等于)、!>(不大于)!<( 不小于)
其中!=、!>、!<不是ANSI标准的运算符。
3 逻辑运算符
包括:AND(与)、OR(或)、NOT(非)
4 位运算符
包括:按位与、|(按位或)、~(按位非)^(按位异或)
5 连接运算符 (sql server)
连接运算符“+”用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。其语法如下:
+
例4-7
use pangu
declare@startdate datetime
set@startdate=‘1/1/2000’
select‘Start Date:’+convert(varchar(12)@startdate)
--convert()函数用于转换数据类型,见4.8.4
运行结果如下:
Start Date:Jan 1 2000
例4-8:
use pangu
select‘月薪最高的员工是:‘+ e_name+’月薪为:‘+convert(varchar(10)e_wage
from employee
where e_wage=
(select max (e_wage)
from employee)
运行结果如下:
月薪最高的员工是:张三月薪为8000.00
(1 row (s) affected)
6 连接运算符 (oracle)
oracle 列别名 使用 双引号 特殊字符 区分 大小写 连接 运算符 字符串 || 双竖线
在列别名上使用双引号
输入并执行查询:
- Name 年度工资(加年终奖)
- --------------- ----------------------------
- SMITH 14600
- ALLEN 24200
说明:其中别名“Name”有大小写的区别,别名“年度工资(加年终奖) ”中出现括号,属于特殊符号,所以都需要使用双引号将别名引起。
连接运算符
sql语句可以使用包含数值运算的计算列,显示结果也是数值型的。我们也可以使用字符型的计算列,方法是在查询中使用连接运算。连接运算符是双竖线“||”。通过连接运算可以将两个字符串连接在一起。
在查询中使用连接运算。
输入并执行查询:
- SELECT ename||job AS "雇员和职务表" FROM emp;
输出结果为:
- 雇员和职务表
- -------------------
- SMITHCLERK
- ALLENSALESMAN
说明:在本例中,雇员名称和职务列被连接成为一个列显示。
在查询中可以使用字符和日期的常量,表示固定的字符串或固定日期。字符和日期的常量需要用单引号引起。下一个训练是作为上一个训练的改进。
在查询中使用字符串常量。
输入并执行查询:
- SELECT ename|| ' IS '||job AS "雇员和职务表" FROM emp;
输出结果为:
- 雇员和职务表
- -----------------------
- SMITH IS CLERK
- ALLEN IS SALESMAN
说明:本练习中将雇员名称、字符串常量“ IS ”和雇员职务3个部分连接在一起。 在Transact-SQL中运算符的处理顺序如下所示,如果相同层次的运算出现在一起时则处理顺序位从左到右。
括号 ()
位运算符 ~
算术运算符 *、/、%
算术运算符 +、-
位运算符 ^
位运算符 &
位运算符 |
逻辑运算符 NOT\
逻辑运算符 AND
逻辑运算符 OR
4.5.3 通配符Wildcard
% 代表0个或多个字符
_(下划线) 代表一个字符
[] 表示在某一范围内的字符
[^] 表示不在某一范围内的字符