SQL SERVER 系列( 5 ) select 复杂查询 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
首先来说一下select的语法:
select 字段名列表 from 表名 [where=条件]
其中字段名列表指的是查询的字段名,表名是要查询的表,where条件是只查询满足条件的记录。
注意:1:如果是所有字段可用*表示
2:如果是所有记录,则可省略where条件
下面来看个实例,对其了解更深一步。
实例:在员工表中查看佟湘玉的年龄和性别
select 性别,年龄 from yuangong where 姓名='佟湘玉'
好了有了上面的基础我们来看看select复杂查询常结合的运算符。运算符是一些符号,它们能够用来执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较。下面为大家说说一些常用的运算符。
1:算术运算符:包括加(+)、减(—)、乘(*)、除(/)和取模(取余)(%)
2:字符型运算符:
3:关系型运算符:
4:逻辑字符型:
下面为大家详细的说明一下。
一:算术运算符
算术运算符:+、-、*(乘)、/(整除)、%(取余也叫取模)
先来对这几个符号熟悉熟悉一下。
select 100 + 200(结果300)
select 200 – 100 (结果100)
select 200 * 100 (结果20000)
select 200 / 100 (结果2)
select 123 % 10 (结果3)
对这几个运算符号有了一定的了解,下面来看个实例
实例:将yuangong表中所有人工资提升10%
update yuangong set 工资=工资+工资*0.1
二:字符型运算符
在这里引入了like +(用于模糊查询)
语法:
Select 字段名列表 from 表名 where 字段名 like’表达式’
表达式指:1:% (通配符)可以通配任意多个任意字符
2:_ (通配符)可以通配一个任意字符
3:[a-z] (通配符)通配从小写a到小写z的任一个字母
4:[^a-z] (通配符)通配除小写以外的任意字符
通过实例来进一步的了解。
实例:在yuangong表中查找姓李的员工记录
select * from yuangong where 姓名 like '郭%'
实例:在yuangong表中查找2005年参加工作的员工信息
select * from yuangong where 工作日期 like '%2005%'
实例:在yuangong表中查找二月份参加工作的员工信息
select * from yuangong where 工作日期 like '02%'
实例:显示yuangong表中邮政编码正确的员工信息
select * from yuangong where 邮政编码 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
实例:显示yuangong表中邮政编码含%的错误员工信息
select * from yuangong where 邮政编码 like '%[%]%'
或者select * from yuangong where 邮政编码 like '%!%%' escape'!'(这里的意思是说明!后面是个指定字符不是通配符)
字符型运算符就说这么多,继续下面的知识。
三:关系型运算符
关系型字符:>、<、>=(大于等于)、<=(小于等于)、<>或!=(不等于)
关系型运算符比较简单在这不多介绍了。
实例:显示yuangong表中年龄不等于20的
select * from yuangong where 年龄<>20
四:逻辑运算符
基本预算:“与” and用表示 参与运算条件全部真时,则结果为真
“或” or用表示 参与运算的条件只有一个真,结果为真
“非”not用表示 对现有条件取反
同上面一样我们用实例来详细的说明一下:
实例:显示yuangong表中年龄20以上的男同志信息
select * from yuangong where 年龄>20 and 性别='男'
实例:显示南京和河北的男同志信息
select * from yuangong where 性别='男' and 籍贯='南京' or 性别='男' and 籍贯='河北'
或者select * from yuangong where 性别='男' and (籍贯='南京' or 籍贯='河北')
常用的运算符大致就是上面所说的,下面再说说常与select结合的一些常用语法。
五: select 常结合的命令
① In
语法:
Where 字段名 in (字段值列表)
实例:显示籍贯是北京、河北、南京的员工的信息
select * from yuangong where 籍贯 in ('河北','北京','南京')
② between
语法:
Where 字段名 between 值1 and 值2
实例:显示年龄在20到30之间的员工的信息
select * from yuangong where 年龄 between 20 and 30
③ distinct
作用:相同输出值只显示一次
实例:显示yuangong表中的部门名称
select distinct 部门 from yuangong
④ top
作用:从第一记录开始显示n条
如:top1显示第一条,top2显示的二条
实例:显示yuangong表中的前3条记录
select top 3 * from yuangong
⑤ is null
在这里这个命令是用来处理空值
实例:显示yuangong表中邮政编码为空的员工信息
select * from yuangong where 邮政编码 is null
实例:显示yuangong表中邮政编码不为空的员工信息
select * from yuangong where not 邮政编码 is null
今天说的都是些常用的命令,会给我们管理数据库带来很多方便。此篇博文就到这了。
转载于:https://blog.51cto.com/guotiegang55/258754