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