SQL Server 2008 R2 常用系统函数学习
/*******************************************
* 聚合函数
*******************************************/ SELECT AVG(id) AS Average
FROM school AS s --返回组中各值的平均值 * SELECT COUNT(id)
FROM school AS s --返回组中的项数 * SELECT COUNT_BIG(id)
FROM school AS s --返回组中的项数 * SELECT MAX(id)
FROM school AS s --返回表达式的最大值 * SELECT MIN(id)
FROM school AS s --返回表达式的最小值 * SELECT SUM(id)
FROM school AS s --返回表达式中所有值的和或仅非重复值的和 * SELECT VAR(id)
FROM school AS s --返回给定表达式中所有值的方差 * SELECT VARP(id)
FROM school AS s --返回给定表达式中所有值的总体方差 * /*******************************************
* 配置函数
*******************************************/ SELECT CONNECTIONPROPERTY('net_transport') AS 'Net transport'
,CONNECTIONPROPERTY('protocol_type') AS 'Protocol type'
--返回连接属性的属性值 * SELECT @@DBTS --返回当前数据库的当前timestamp数据类型的值。此时间戳在数据库中保证是唯一的 * SELECT @@LANGUAGE --返回当前所用语言的名称 * SELECT @@LOCK_TIMEOUT --返回当前会话的当前锁定超时设置(毫秒) 没有设置则返回-1 * SELECT @@MAX_CONNECTIONS --返回允许同时进行的最大用户连接数 * SELECT @@MAX_PRECISION --按照服务器中的当前设置,返回decimal 和numeric 数据类型作用的精度级别 * SELECT @@NESTLEVEL --返回当前存储过程执行的嵌套级别(初始值为 0) * SELECT @@OPTIONS --返回有关当前 SET 选项的信息 * SELECT @@REMSERVER --返回远程SQL Server 在登录记录中显示的名称 * SELECT @@SERVERNAME --返回本地SQL Server的名称 * SELECT @@SERVICENAME --返回目前用于运行SQL Server的注册表项的名称 * SELECT @@SPID --返回当前用户进程的服务器进程标识符 * SELECT @@TEXTSIZE --返回SET语句中的TEXTSIZE选项的当前值 * SELECT @@VERSION --返回当前安装的SQL Server的日期、版本和处理器类型 * /*******************************************
* 游标函数
*******************************************/ SELECT @@CURSOR_ROWS --返回连接上打开的上一个游标中的当前限定行的数目 * SELECT CURSOR_STATUS('LOCAL、GLOBAL 或 VARIABLE' ,'游标名称或变量') --一个标量函数,它允许存储过程的调用方确定该存储过程是否已为给定的参数返回了游标和结果集 * SELECT @@FETCH_STATUS --返回针对连接当前打开的任何游标发出的上一条游标FRTCH语句的状态 * /*******************************************
* 日期和时间函数
*******************************************/ SELECT CURRENT_TIMESTAMP --返回当前日期和时间 * /*
* 参数1:时间日期的样式
* 参数2:增量
* 参数3:datetime 时间日期表达式
* */
SELECT DATEADD(DAY ,1 ,CURRENT_TIMESTAMP) --根据给指定日期增加的时间间隔,返回新的datetime值 * /*
* 参数1:时间日期的样式
* 参数2:datetime 开始时间日期表达式
* 参数3:datetime 结束时间日期表达式
* */
SELECT DATEDIFF(DAY ,CURRENT_TIMESTAMP ,DATEADD(DAY ,1 ,CURRENT_TIMESTAMP)) --返回跨两个指定日期的日期和时间边界数 * /*
* 参数1:时间日期的样式
* 参数2:datetime 时间日期表达式
* */
SELECT DATENAME(DAY ,CURRENT_TIMESTAMP) --返回表示指定日期的指定日期部分的字符串
SELECT DATEPART(DAY ,CURRENT_TIMESTAMP) --返回表示指定日期的指定日期部分的整数 SELECT DAY(CURRENT_TIMESTAMP) --返回表示指定日期的"日"日期部分的整数
SELECT GETDATE() --返回当前的系统日期和时间 *
SELECT GETUTCDATE() --返回表示当前UTC时间的datetime值 * IF ISDATE(2018-01-13)>0
BEGIN
PRINT N'Is date'
END
ELSE
BEGIN
PRINT N'Not date'
END
--确定输入表达式是否为有效的日期 * SELECT MONTH(CURRENT_TIMESTAMP) --返回表示指定日期的"月"日期部分的整数 SELECT SYSDATETIME() --返回当前数据库系统时间戳作为datetime(7)值 *
SELECT SYSDATETIMEOFFSET() --返回当前数据库系统时间戳作为datetimeoffset值,其中保留了数据库时区偏移量 *
SELECT SYSUTCDATETIME() --返回当前数据库系统时间戳(UTC)作为datetime2(7)值 * SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(),'-08:00') --将datetimeoffset值从保留的时区偏移量更改为新值
/*SELECT Todatetimeoffset(表达式(datetime),时区(varchar)) --将本地datetime值和时区偏移量转换为保留了给定时区偏移量的datetimeoffset */ SELECT YEARCURRENT_TIMESTAMP) --返回表示指定日期的"年"日期部分的整数 * /*******************************************
* 数学函数
*******************************************/ SELECT ABS(-100) --返回给定数值表达式的绝对值(正数) * SELECT CEILING(100.21) --返回大于等于给定数值表达式的最小整数 * SELECT FLOOR(99.21) --返回小于等于给定数值表达式的最大整数 * SELECT PI() --返回PI的常量值(3.1415926...) * SELECT RAND() --返回0-1之间的随机浮点值 * SELECT ROUND(9.26543,2) --返回数值表达式,舍入到指定的长度或精度 * SELECT SIGN(-9.39) --返回给定表达式的正号(+1)、零(0)或符号(-1) * SELECT POWER(2,3) --返回给定表达式的指定幂的值 * SELECT SQRT(2.55) --返回给定表达式的平方根 * SELECT SQUARE(3) --返回给定表达式的平方 * /*******************************************
* 元数据函数
*******************************************/ SELECT COL_LENGTH('dbo.school' , 'name') --返回定义的列的长度(字节) * SELECT COL_NAME(OBJECT_ID('dbo.school'),2) --返回数据库列的名称 * SELECT COLUMNPROPERTY(OBJECT_ID('dbo.school'),'name','PRECISION') --返回该列的定义长度 --返回列参数或过程参数的属性值 * SELECT DATABASEPROPERTYEX('schools', 'IsAutoShrink') AS AUTO_SHRINK_Status ,
DATABASEPROPERTYEX('schools', 'Collation') AS Collation,
DATABASEPROPERTYEX('schools', 'Edition') AS Edition,
DATABASEPROPERTYEX('schools', 'ServiceObjective') AS ServiceObjective,
DATABASEPROPERTYEX('schools', 'MaxSizeInBytes') AS MaxSizeInBytes --返回数据库和属性名称的属性值 * SELECT DB_NAME() --返回数据库名称 * SELECT INDEX_COL('dbo.school',1,1) --返回索引列名称 * SELECT OBJECT_ID('school') --返回对象标识号 * 例如获取表的标识号 GO
ALTER PROCEDURE pro_test
AS
PRINT @@PROCID --返回当前过程的存储过程标识符 *
GO
EXECUTE pro_test SELECT TYPEPROPERTY('tinyint', 'PRECISION') --返回数据类型的属性值 当前返回数据类型的精度和位数 * /*******************************************
* 其他函数
*******************************************/ SELECT APP_NAME() --返回当前会话的应用程序名称 * SELECT CAST(123 AS NVARCHAR) --通过表达式将一种数据类型显式转换为另外一种数据类型 * SELECT COALESCE(NULL,NULL,123,NULL) --返回其参数中第一个非NULL表达式 * SELECT CONVERT(NVARCHAR(20),123) --通过表达式将一种数据类型显式转换为另外一种数据类型 * SELECT CURRENT_USER --返回当前用户名 * SELECT DATALENGTH(CONVERT(NVARCHAR(11),55555)) --返回用于表示表达式的字节数 * PRINT @@ERROR --返回执行的上一个Transact-SQL语句的错误号 * SELECT AVG(ISNULL(id,0)) FROM dbo.school AS s --ISNULL 将NULL替换为指定的替换值 * PRINT ISNUMERIC('1223A') --确定表达式是否为有效的数值类型 * SELECT NULLIF('AA','AA') --如果两盒指定的表达式等价,则返回null,如果不等价则返回第一个表达式 * SELECT @@ROWCOUNT --返回受上一语句影响的行数 * SELECT STATS_DATE(OBJECT_ID('school'),1) --返回上次更新指定索引的统计信息的日期 * PRINT SYSTEM_USER --返回当前会话的系统用户名(登录名) * PRINT @@TRANCOUNT --返回当前连接的活动事务数 * /*******************************************
* 安全函数
*******************************************/ SELECT HAS_DBACCESS('schools') --指示当前用户是否有权限访问指定的数据库 * SELECT ORIGINAL_DB_NAME() --返回原始数据库名称 * SELECT SUSER_SID('sa') --返回登录名的安全标识号 * SELECT USER --返回用户的数据库名称 * SELECT USER_ID() --返回用户数据库标识号 * SELECT USER_NAME() --根据给定的标识号,返回用户的数据库用户名 * /*******************************************
* 字符串函数
*******************************************/ SELECT ASCII('HGFADSA') --返回字符表达式中最左侧的字符的ASCII代码值 * SELECT CHAR(77) --将整数ASCII码转换为字符 * SELECT CHARINDEX('AF','DSAFGGASAK',2) --返回字符串中指定表达式的开始位置 * SELECT DIFFERENCE('a','b') --以整数返回两个字符表达式的SOUNDEX值之差 SELECT LEFT('ABCDEFG',5) --返回字符表达式中最左侧指定数目的字符 * SELECT LEN('ABCDEFG') --返回给定字符串表达式的字符数 * SELECT LOWER('HNISADA') --返回将大写字符转换为小写字符的字符表达式 * SELECT LTRIM(' DDD') --返回删除了前导空格之后的字符表达式 * SELECT NCHAR(77) --返回具有给定整数代码的Unicode字符 * SELECT PATINDEX('%en_ure%', 'please ensure the door is locked') --返回指定表达式中模式第一次出现的开始位置 类似like * SELECT QUOTENAME('abc()def'); --返回为成为有效的SQL Server分隔标识符而添加的了分隔符的Unicode字符串 结果:[abc()def] * SELECT REPLACE('abcdefg','cd','ab') --用第三个表达式替换第一个表达式中出现的所有的第二个表达式 * SELECT REPLICATE('abc',10) --按指定次数重复字符表达式 * SELECT REVERSE('abcdefg') --返回字符表达式的逆向表达式 * SELECT RIGHT('456abc',4) --返回字符表达式右侧指定数目的字符 * SELECT RTRIM('adfsa ff ') --返回截断了所有尾随空格之后的字符串表达式 * SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') --返回由四个字符表示得SOUNDEX代码 SELECT SPACE(4) --返回由重复空格组成的字符串 * SELECT STR(456) --返回从数值表达式转换而来的字符表达式 * SELECT STUFF('abcdef', 2, 3, 'ijklmn') --删除指定长度的字符,并在指定的起点处插入另一组字符 * SELECT SUBSTRING('MYNAME',3,4) --返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分 * SELECT UNICODE('iojodsa') --返回表达式第一个字符的Unicode整数值 * SELECT UPPER('fdsFSA') --返回将小写字符转换为大写字符的字符表达式 * /*******************************************
* 系统统计函数
*******************************************/ SELECT @@CONNECTIONS --返回SQL Server自上次启动以来尝试的连接数 * SELECT @@CPU_BUSY --返回SQL Server自上次启动以来CPU的工作时间(毫秒) * SELECT @@IDLE --返回SQL Server自上次启动以来的空闲时间(毫秒) * SELECT @@IO_BUSY --返回SQL Server自上次启动以来在执行I/O操作上花费的时间(毫秒) * SELECT @@PACK_RECEIVED --返回 SQL Server 自上次启动后从网络读取的输入数据包数 * SELECT @@PACK_SENT --返回SQL Server自上次启动以来写入网络的输出数据包数 * SELECT @@PACKET_ERRORS --返回自上次启动 SQL Server 后在 SQL Server 连接上发生的网络数据包错误数 * SELECT @@TIMETICKS --返回每个时钟周期的微秒数 * SELECT @@TOTAL_ERRORS --返回 SQL Server 自上次启动以来发生的磁盘读/写错误数 * SELECT @@TOTAL_READ --返回SQL Server 自上次启动以来发生的磁盘读取次数 * SELECT @@TOTAL_WRITE --返回SQL Server 自上次启动以来发生的磁盘写入次数 * /*******************************************
* 文本和图像函数
*******************************************/ ALTER TABLE t1 (c1 int, c2 text);
EXEC sp_tableoption 't1', 'text in row', 'on';
INSERT INTO t1(c1,c2)VALUES('', 'This is text.');
GO
BEGIN TRAN;
DECLARE @ptrval VARBINARY(16);
SELECT @ptrval = TEXTPTR(c2) --返回对应于text、ntext或image列的文本指针值
FROM t1
WHERE c1 = 1;
READTEXT t1.c2 @ptrval 0 5; --读取文本 目标对象为ti.c2 文本指针为 @ptrval 文本读取开始位置为0 读取长度为5
COMMIT; SELECT * FROM t1 AS t
SQL Server 2008 R2 常用系统函数学习的更多相关文章
- SQL Server 2008 R2——学习/练习/错误/总结/搜集
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- SQL Server 2008 R2 企业版 MSDN原版
经网友建议,提供常用试验用资源.以下软件或系统仅为完成本博客内的各种实验而提供下载. 所有软件.系统均为该软件发布方提供的原版文件,未经任何修改.破解等操作.使用目的仅限于学习.测试及实验,符合国家相 ...
- SQL Server 2008 R2 的版本和组件
SQL Server 2008 R2 的版本和组件 SQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005 SQL Server 2012 ...
- SQL Server 2008 R2 性能计数器详细列表(三)
原文:SQL Server 2008 R2 性能计数器详细列表(三) SQL Server,Deprecated Features 对象: 监视指定为不推荐使用的功能: SQL Server Depr ...
- SQL Server 2008 R2 性能计数器详细列表(四)
原文:SQL Server 2008 R2 性能计数器详细列表(四) SQL Server Latches 对象: 监视称为闩锁的内部 SQL Server 资源锁.通过监视闩锁来确定用户活动和资源使 ...
- ASP .Net Core 在 CentOS8 ARM 下连接 SQL Server 2008 R2(Hypervisor)
本文主要记录在 ARM 系统下无法连接SQL Server 2008 R2 的解决过程. 解决方案是使用 ODBC 的方式连接数据库,进行操作. 手上有公司的华为鲲鹏云计算 ARM 架构的 CentO ...
- SQL Server 2000向SQL Server 2008 R2推送数据
[文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...
- SQL Server 2008 R2的发布订阅配置实践
纸上得来终觉浅,绝知此事要躬行.搞技术尤其如此,看别人配置SQL SERVER的复制,发布-订阅.镜像.日志传送者方面的文章,感觉挺简单,好像轻轻松松的,但是当你自己去实践的时候,你会发现还真不是那么 ...
- SQL Server 2008 R2——使用计算列为表创建自定义的自增列
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
随机推荐
- [py]python __file__ 与argv[0]
http://andylin02.iteye.com/blog/933237 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__ ...
- (转)fabric 一个链码如何调用另一个链码
使用开发模式测试 可以使用~/hyfa/fabric-samples/chaincode-docker-devmode/启动fabric,具体过程略 用同一个链码注册2个服务 root@2ee7b51 ...
- js中实现IE的打印预览
HTML中添加:<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 widt ...
- MySQL操作数据库--与MySQL零距离接触1-7
第一章 1-7操作数据库 数据库是一个集合:表 索引等. MySQL语句规范: 关键字与函数名称全部大写 数据库名称.表名称.字段名称全部小写 SQL语句必须以分号结尾 语法结构: {}: ...
- Mybatis select、insert、update、delete 增删改查操作
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML ...
- cocos2d-x JS 四人麻将中的服务器位置与客户端位置转换相关
前言:在写各类游戏编程中,都会遇到一个问题,就是位置问题,服务端的位置是与客户端的位置是不同的,这中间需要进行一个转化,客户端一套代码运行,不管是任何人登陆,该位置始终都是在屏幕正下方,所以这样就要进 ...
- linux----------wdcp(是一款集成的linux环境)中的各种坑。
1.刚买的空间客服给安装了wdcplinux,结果上去一看PHP是5.2版本的,这不是搞笑嘛.然后就有了下面的升级: 复制这条命令回车然后敲Y就可以: wget http://soft.itbulu. ...
- css属性 background
background 在一个声明中设置所有的背景属性. background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动. background-color 设置元素的背景颜 ...
- Linux MySQL数据库文件同步及数据库备份
Mysql数据库链接 mysql -uroot -p -hdatacenter.jiaofukeyan.com -P33069 1.文件同步 rsync -avz --delete root@(需要同 ...
- PLSQL oracle32位 oracle64 安装区别及注意问题
一.先明确几个概念: 1.PLSQL 只有32位的. 2.oracle 客户端 分别有32.64位,一般使用32位. 3.oracle 服务端 分别有32.64位,一般老的服务器使用32位,新的服务器 ...