设为首页 加入收藏

TOP

SqlServer数据库使用(二)
2014-11-23 22:14:30 来源: 作者: 【 】 浏览:39
Tags:SqlServer 数据库 使用
返回-1
Sqrt Sqrt(4)结果返回“2” 开平方

系统函数
函数名 示例 函数功能
Convert Convert(varchar(10),123)结果返回“123” 装换数据类型
DataLength DataLength('12中国')结果返回6 返回任何数据类型的字节数。“中国”包含4个字节,“12”包含两个字节,所以返回6.

开发过程中对于日期的操作:例如获得昨天、前天的数据。
SQL语句如下: select * from table_name where pudoctime>=SUBSTRING( Convert(varchar(20),DateAdd(DD,-1,GETDATE()),120),1,10)

模糊查询
在SQL Server中,通过使用通配符来实现LIKE运算,通配符“%”,“_”,“[]”。
注意:只有char、varchar和text类型的数据才能使用LIKE运算符和通配符。

1、“%”通配符:表示任意字符的匹配,且不计字符的多少。
(1)开头、结尾匹配
开头匹配(以字母“c”开头的所有数据):SELECT * FROM table_name WHERE COLUMN LIKE 'c%'
结尾匹配(以字母“c”结尾的所有数据):SELECT * FROM table_name WHERE COLUMN LIKE '%c'

(2)中间匹配
以“c”开头,以“b”结尾的所有数据:SELECT * FROM table_name WHERE COLUMN LIKE 'c%b'

(3)两端匹配
查询出包含字母“c”的所有数据:SELECT * FROM table_name WHERE COLUMN LIKE '%c%'

注意:“%”匹配一个或多个字符。

2、”_“通配符:”_“统配符的功能与”%“基本相同,只是它仅表示任意一个字符(区别)的匹配。若需要表示两个字符的匹配,则使用两个”_“通配符,即写成”_ _“。
(1)匹配一个字符
示例:从表中查询名称(name)为”t_fu“("_"代表任意一个字符)的所有数据,SQL语句如下:
SELECT * FROM table_name where name LIKE 't_fu' 匹配字符串有(tafu,tbfu,tcfu.....)

(2)匹配多个字符
查询名称(name)为3个字符的数据SQL语句如下:
SELECT * FROM table_name where name LIKE '_ _ _'
注意:"_"只能匹配一个字符。

(3)"_"与"%"的综合应用
在模糊查询过程中,经常需要"_"和"%"一起使用才能完成查询功能。
示例:查询名称(name)第二个字母为"c"的所有数据,SQL语句如下:
SELECT * FROM table_name where name LIKE '_c%'

3、"[]"通配符:"[]"通配符用于指定一系列的字符,只要满足这些字符其中之一且出现在"[]"通配符的位置的字符串就满足查询条件
(1)、各种通配符可以组合使用,必须自习分析它所表示的匹配条件

匹配条件列表
查询条件 匹配条件
LIKE '5[%]' 5%
LIKE '[_]n' _n
LIKE '[a-f]'                        a,b,c,d,e,f
LIKE '[[]' [
LIKE '[]]' ]
LIKE 'abc[def]' abcd,abce,abcf
LIKE 'abc[_]d%' adbc_d...(省略号表示可以有任意字符)
LIKE 'a[^a]d%' 不能为aad...([^]表示不能取[]内的字符)

示例:
查询名称(name)中包含"_"的所有数据:SELECT * FROM table_name WHERE name LIKE '%[_]%'
查询名称(name)中最后一个字符为"a","b","f","g"的所有数据:SELECT * FROM table_name WHERE name LIKE '%[a,b,f,g]'
查询名称(name)中最后一个字符不为"a","b","f","g"的所有数据:SELECT * FROM table_name WHERE name LIKE '%[^a,b,f,g]'

IN运算符
若只需要满足多个条件中的一个查询条件,则可以使用IN运算符。IN运算符允许根据一行记录中是否有一列包括在一系列值之中而选择改行。
所有的条件罗列在IN运算符之后,并以园括号括起来,各个条件之间使用逗号分开。
示例:
查询ID为1、3或4的数据:SELECT * FROM table_name WHERE ID IN (1,3,4)
注意:
在大多数情况下,OR运算符与IN运算符可以实现相同的功能。
示例:SELECT * FROM talbe_name WHERE ID=1 OR ID=3 OR ID=4

二者的结果完全一致,都是返回多条数据记录。但是,与OR运算符相比,IN运算符具有以下两个优点:
(1)当选择条件很多时,采用IN运算符将十分简捷,只需要在括号中用逗号间隔后一次罗列即可,运行效率高于OR运算符。
(2)IN运算符后面所列的条件可以是另一条SELECT语句,即子查询。

BETWEEN运算符
在WHERE子句中,可以采用BETWEEN运算符在两个值之间进行比较筛选。
1、用于数字类型数据比较
查询年龄(age)在6~10之前的数据:SELECT * FROM table_name WHERE age BETWEEN 6 AND 10
2、用于时间日期比较
查询日期(bridate)在"1952-01-01"到"1954-01-01"之间的数据:SELECT * FROM table_name WHERE bridate BETWEEN '1952-01-01' AND '1954-01-01'
注意:BETWEEN运算符筛选包含头和尾。例如数字类型比较,数据会包含6和10

聚合函数(不能做为WHERE条件)
函数名称 函数功能
SUM 返回选取结果集所有值的和
MAX 返回选取结果集中所有值的最大值
MIN 返回选取结果集中所有值的最小值
AVG 返回选取结果集中所有值的平均值
COUNT 返回选取结果集中行的数目

使用实例:SELECT SUM(COLUMN) FROM table_name

分组查询
GROUP BY子句
原理:先通过GROUP BY后面的字段进行分组,合并相同的项。留下唯一的项,再执行SELECT后面的聚合函数。
SELET 后面只能有GROUP BY包含字段和聚合函数。

1、SELECT 后一个聚合函数情况
示例:从订单表Orders中查询各个员工最早的订单时间(OrderDate)。员工ID为(EmployeeID)
SELECT EmployeeID,min(OrderDate) FROM table_name GROUP BY EmployeeID
原理:当执行时首先在表中查询员工ID(EmployeeID),然后将相同的ID合并为一个。当所有的ID都唯一时,这时便开始通过聚合函数获得
员工的最早订单时间。

2、SELECT 后多个聚合函数情况
示例:从订单表Orders中查询各个员工最早的订单时间(OrderDate)和购买最便宜的价格(price)。员工ID为(EmployeeID)
SELECT EmployeeID,min(OrderDate),min(price) FROM table_name GROUP BY EmployeeID
原理:当执行时首先在表中查询员工ID(EmployeeID),然后将相同的ID合并为一个。当所有的ID都唯一时,这时便开始通过聚合函数获得
员工的最早订单时

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLSERVER服务启动失败 下一篇多线程下不重复读取SQLServer表的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: