T-SQL函数实战指南:从字符串到集合函数解析

需积分: 15 1 下载量 182 浏览量 更新于2024-07-28 收藏 1.29MB PDF 举报
"SQL Server函数实战教程,涵盖了T-SQL中的字符串函数、集合函数、数学函数及子查询的使用,旨在帮助DBA更好地管理和操作数据库。" 在SQL Server中,函数是进行数据处理和计算的重要工具。T-SQL,即Transact-SQL,是SQL Server的扩展,它提供了一系列内置函数,使数据库管理员(DBA)能够执行各种复杂的操作。以下是对这些关键函数类型的详细说明: 1. **T-SQL字符串函数**: - **截取字符串的值**:如`SUBSTRING()`函数,用于从字符串中提取指定长度或位置的部分。 - **修改字符串的值**:`REPLACE()`函数用于替换字符串中的特定字符或子串,而`STUFF()`函数可以在指定位置插入或删除字符。 - **转换字符串值**:`CONVERT()`和`CAST()`函数用于将一种数据类型转换为另一种。 - **获取字符串相关信息**:`LEN()`返回字符串的长度,`CHARINDEX()`查找子串的位置,`PATINDEX()`则用于模式匹配。 - **SOUNDEX分析**:`SOUNDEX()`函数根据发音规则对字符串进行编码,用于近音字搜索。 2. **T-SQL集合函数**: - **计算行数**:`COUNT()`函数统计行数,`COUNT(*)`包括所有行,`COUNT(column_name)`仅计算非空值。 - **操作分组数据**:`GROUP BY`语句配合集合函数如`SUM()`, `AVG()`, `MIN()`, `MAX()`,对分组数据进行聚合计算。 - **验证总和校验**:`CHECKSUM_AGG()`和`BINARY_CHECKSUM()`可用于校验数据的一致性。 - **获取统计数据**:`STDEV()`, `VAR()`, `PERCENTILE_CONT()`, `PERCENTILE_DISC()`等提供统计信息。 3. **T-SQL数学函数**: - **三角函数**:如`SIN()`, `COS()`, `TAN()`用于计算角度的三角函数值。 - **代数和数值函数**:`SQRT()`求平方根,`POWER()`计算幂,`ROUND()`和`FLOOR()`进行数值四舍五入和向下取整。 4. **T-SQL子查询**: - 子查询是嵌套在其他查询中的查询,可以用于比较、过滤或计算。例如,在`WHERE`子句中使用子查询来定义条件,或在`FROM`子句中创建临时结果集(称为派生表)。 了解并熟练掌握这些函数对于任何SQL Server数据库管理员都是至关重要的,它们能够提高数据处理效率,简化复杂的查询逻辑,同时在日常数据库管理和维护中发挥着不可替代的作用。通过实践和学习,DBA可以更有效地利用T-SQL的这些功能来优化数据库性能和数据处理能力。
316 浏览量
SQL SERVER 的函数1.字符串函数 长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) 返回字符串右边int_expr个字符 字符操作类 upper(char_expr) 转为大写 lower(char_expr) 转为小写 space(int_expr) 生成int_expr个空格 replicate(char_expr,int_expr)复制字符串int_expr次 reverse(char_expr) 反转字符串 stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从 start开始的length个字符用char_expr2代替 ltrim(char_expr) rtrim(char_expr) 取掉空格 ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符 字符串查找 charindex(char_expr,expression) 返回char_expr的起始位置 patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 2.数学函数 abs(numeric_expr) 求绝对值 ceiling(numeric_expr) 取大于等于指定值的最小整数 exp(float_expr) 取指数 floor(numeric_expr) 小于等于指定值得最大整数 pi() 3.1415926......... power(numeric_expr,power) 返回power次方 rand([int_expr]) 随机数产生器 round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入 sign(int_expr) 根据正数,0,负数,,返回+1,0,-1 sqrt(float_expr) 平方根 3.日期函数 getdate() 返回日期 datename(datepart,date_expr) 返回名称如 June datepart(datepart,date_expr) 取日期一部份 datediff(datepart,date_expr1.dateexpr2) 日期差 dateadd(datepart,number,date_expr) 返回日期加上 number 上述函数中datepart的 写法 取值和意义 yy 1753-9999 年份 qq 1-4 刻 mm 1-12 月 dy 1-366 日 dd 1-31 日 wk 1-54 周 dw 1-7 周几 hh 0-23 小时 mi 0-59 分钟 ss 0-59 秒 ms 0-999 毫秒 日期转换 convert() 4.系统函数 suser_name() 用户登录名 user_name() 用户在数据库中的名字 user 用户在数据库中的名字 show_role() 对当前用户起作用的规则 db_name() 数据库名 object_name(obj_id) 数据库对象名 col_name(obj_id,col_id) 列名 col_length(objname,colname) 列长度 valid_name(char_expr) 是否是有效标识符