SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换、函数转换

create database lianxi831  --创建数据库
go
use lianxi831  --引用数据库
go
create table xs  --插入表格
(
code int not null,  --写入内容
name varchar(10),
cid varchar(18),
banji varchar(10),
yufen decimal(18,2),
shufen decimal(18,2),
yingfen decimal(18,2),
)
go
insert into xs values(1,‘张三‘,‘370322199101011234‘,‘一班‘,80,70,60,‘男‘)  --写入内容
insert into xs values(1,‘李四‘,‘370322199102011234‘,‘一班‘,81,71,61,‘女‘)
insert into xs values(1,‘王五‘,‘370322199103011234‘,‘一班‘,82,72,62,‘男‘)
insert into xs values(1,‘赵六‘,‘370322199104011234‘,‘一班‘,83,73,63,‘女‘)
insert into xs values(1,‘张三三‘,‘370322199105011234‘,‘二班‘,70,60,50,‘男‘)
insert into xs values(1,‘李四四‘,‘370322199106011234‘,‘二班‘,71,61,51,‘女‘)
insert into xs values(1,‘王五五‘,‘370322199107011234‘,‘二班‘,72,62,52,‘男‘)
insert into xs values(1,‘赵六六‘,‘370322199108011234‘,‘二班‘,73,63,53,‘女‘)
insert into xs values(1,‘张三张‘,‘370322199109011234‘,‘三班‘,60,50,40,‘男‘)
insert into xs values(1,‘李四李‘,‘370322199110011234‘,‘三班‘,61,51,41,‘女‘)
insert into xs values(1,‘王五王‘,‘370322199111011234‘,‘三班‘,62,52,42,‘男‘)
insert into xs values(1,‘赵六赵‘,‘370322199112011234‘,‘三班‘,63,53,43,‘女‘)
go
select *from xs
alter table xs add [xingbie]char(10) --添加列
go
select *from xs
alter table xs drop column [xingbie] --删除列
select *from xs

--模糊查询 like
select *from xs where name like‘%李%‘
select *from xs where name like‘王_‘
select *from xs where name like‘_[张三,李四,王五]‘
--排序 order by
select *from xs order by yufen asc
select *from xs order by yufen desc
select top 2*from xs where name like‘%王%‘ order by yingfen desc

--聚合函数
--平均值
select AVG(yufen) from xs where banji=‘一班‘
--求个数
select COUNT(*)from xs where banji=‘三班‘
--最大值
select MAX(yufen)from xs
--最小值
select MIN(yufen)from xs
--求和
select SUM(yufen) from xs where banji=‘二班‘

--分组 group by
select banji from xs group by banji
select banji,count(*)from xs where yufen>60 group by banji order by COUNT(*) desc
--having 只能跟在group by 后边
select banji,count(*)from xs where yufen>60 group by banji having COUNT(*)>2

--数学函数
--绝对值
select ABS(-8)

--取上线 、下线
select CEILING(3.14)
select FLOOR(3.14)

--几次方
select POWER(2,3)

--平方
select SQUARE(4)

--平方根
select SQRT(4)

--四舍五入,逗号之后代表小数点后有几位
select ROUND(25.52,1)

--字符串函数

--字符串转换为编码
select ASCII(‘a‘)
--只转换开头
select ASCII(‘abc‘)
--编码转化为字符串
select CHAR(97)

--查看第一次出现的索引号 返回值为0,表示没有找到
select CHARINDEX(‘cd‘,‘abcdefg‘)

--字符串的拼接
select ‘a‘+‘b‘+‘c‘

--从前面截取多少个长度 后面截取多少个长度
select LEFT(‘abcdef‘,2)
select RIGHT(‘abcdef‘,2)

--计算字符串的长度 前面的长度计算,后面的长度不算
select LEN(‘ abc‘)

--转换为大写 转换为小写
select UPPER(‘abc‘)
select LOWER(‘ABC‘)

--去掉前边的空格 去掉后边的空格
select LTRIM(‘ a‘)
select RTRIM(‘ a ‘)

--返回首次出现字符的索引
select PATINDEX(‘%abc%‘,‘abcdefg‘)

--替换 第一个位置填写要替换的内容的位置,第二个位置填写要更换的内容,第三个位置填写更换后的内容
select REPLACE(name,‘张三‘,‘三张‘)from xs

--复制 需要复制的内容,复制的次数
select REPLICATE(‘ABC‘,2)

--翻转字符串
select REVERSE(‘abc‘)

--打印空格
select ‘a‘+space(5)+‘b‘

--STR 将小数转化为字符串
--参数一是原字符处,参数二是字符串的长度,参数三是j截取的小数点后的长度,小数点占有一个长度
select STR(2222.22,5,1)

--STUFF 插入字符串
--参数一是原字符串,参数二是索引从第几位开始,参数三是向后删除几位,参数四是插入的字符串
select STUFF(‘123abc‘,4,3,‘hello‘)

--SUBSTRING 从指定的字符串中截取指定的长度
--参数一是原字符串,参数二是截取字符串开始的索引,参数三是截取的长度
select SUBSTRING(‘abcdefg‘,3,1)

--时间日期函数
--系统常量,直接返回一个值
select @@DATEFIRST

--DATEADD 参数一是增加的项,参数二是增加的量,参数三是增加的基准
select DATEADD(YEAR,8,‘2016-8-8‘)
select DATEADD(MONTH,8,‘2016-8-8‘)
select DATEADD(DAY,8,‘2016-8-28‘)

--DATEDIFF 计算两个日期的时间间隔
select DATEDIFF(YEAR,‘2008-8-8‘,‘2016-8-31‘)
select DATEDIFF(MONTH,‘2008-8-8‘,‘2016-8-31‘)
select DATEDIFF(DAY,‘2008-8-8‘,‘2016-8-31‘)

--DATENAME 返回指定的的时间类型
select DATENAME(DAY,‘2008-8-8‘)
select DATENAME(WEEK,‘2016-2-1‘) --今年的第几周
select DATENAME(WEEKDAY,‘2016-8-31‘)

--DATEPART 等同于DATENAME,区别是datename返回的是字符串,datepart返回的是int类型
select DATEPART(WEEKDAY,‘2016-8-31‘) --1是星期天,7是星期六

--返回一个整数,返回该日期的年、月、日
select year(‘2016-8-31‘)
select month(‘2016-8-31‘)
select day(‘2016-8-31‘)

--获取本地时间
select GETDATE() --不需要参数
--获取系统的精确时间
select SYSDATETIME()

--判断时间日期格式是否正确
select ISDATE(‘2008-8-31‘) --正确返回1,错误返回0

--数据、函数转换转换
--cast (as前边写原数据类型,as后边写转化后的数据类型)
select CAST(123 as varchar(20))--值类型转化为字符串类型
--convent
select CONVERT(int,‘123‘) --前边写转化后的数据类型,后边写转化前的数据

时间: 2024-10-13 16:22:13

SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换、函数转换的相关文章

sql server模糊查询、分组

一.系统函数 1.convert(类型[length] ,表达式[,样式]) 2.isnull(表达式,默认值) 字符函数:  len() 长度  ltrim()|rtrim()去除左右空格  right()|left()截取右边或左边字符  substring():按位置和长度截取 日期函数:  dateadd()  日期加操作  dateDiff()  两个日期差  getdate()  获取当前系统日期  datepart() 获取日期中一部分 二.模糊查询  like '模式'    只

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

SQL的模糊查询

SQL的模糊查询 在进行数据库查询时,有完整查询和模糊查询之分.一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来.另外

转载 50种方法优化SQL Server数据库查询

原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷

优化SQL Server数据库查询方法

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优

SQL Server数据库查询速度慢的原因和解决方法

问 SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

理解SQL Server的查询内存授予(译)

此文描述查询内存授予(query memory grant)在SQL Server上是如何工作的,适用于SQL 2005 到2008. 查询内存授予(下文缩写为QMG)是用于存储当数据进行排序和连接时的临时中间数据行.查询在实际执行前需要先请求保留内存,所以会存在一个授予的动作. 这样的好处是提高查询的可靠性和避免单个查询占用所有的内存. SQL Server在收到查询时,会执行3个被定义好的步骤来返回用户所请求的结果集. 1.生成编译计划.它包括各种逻辑指令,如怎么联接数据行. 2.生成执行计

【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在64位的机器上,通过访问接口:OracleProvide for OLE DB,来实现. 1.机器环境和软件环境 操作系统是:windows 7旗舰版 64位,SQL Server 20008R2  64  位,Oracle 11g 11.2.0.1.0   64 位. 2.ORACLE环境的设置 连接orac

【转】Sql Server参数化查询之where in和like实现之xml和DataTable传参

转载至: http://www.cnblogs.com/lzrabbit/archive/2012/04/29/2475427.html 在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值参数,这里做一个补充 文章导读 方案5使用xml参数 方案6 使用表值参数TVP,DataTable传参 6种实现方案总结 方案5 使用xml参数 对sql server xml类型参数不熟悉的