T-SQL 查询中使用的函数之系统函数

** 查询中使用的函数 ** ** **

在查询语句中,不仅可查询表中列的值而且可以使用内部函数查询数据库中不同类型的信息。可以在 SELECT 列表, WHERE 子句和任何允许表达式的地方使用内部函数。这些函数都是 T-SQL 对 SQL 的扩展。 Adaptive Server 提供的内部函数可以分成以下几类:

l 系统函数。返回数据库中的信息;

l 字符串函数。用于处理字符串或字符串表达式;

l text 函数。用于处理 text 和 image 类型的数据;

l 数学类型。用于处理三角、几何以及其它数据处理的函数;

l 日期函数。处理 datetime 和 smalldatetime 类型的数据;

l 数据类型转换函数( convert )。用于将一种数据类型转换成另一种数据类型,也可将日期格式化成各种形式。

l 安全函数。返回安全服务和用户自定义角色的信息

一、 系统函数

系统函数从数据库返回特定的信息,它们中的大多数提供了查询系统表的简便方式。

系统函数的一般语法:

select function_name ( argument[s] )

系统函数可以用在选择项里、 where 子句里以及任何允许表达式存在的地方。例如:如果要查询“ zyf ”的用户标示号,则输入:

select “ 用户标示号 ” =user_id ( “zyf” )

结果:

用户标示号

——

3

** 一般来说,函数名表示里将返回什么样的信息。 **

User_name 用 ID 号作参数而返回用户的名字。如下,如果查询 ID 号为 3 的用户名

Select “ 用户名 ” = user_name(3)

结果:

用户名

——

zyf

找出当前用户的名字(也就是正在使用的用户名)

select user_name()

结果:

用户名

——

dbo

Adaptive Server 按照如下的规则处理用户标示符:

l 当系统管理员成为他使用的数据库的所有者时,其登陆用户 ID 被指定为 1 ;

l guest 用户的登陆用户 ID 总是 -1

l 数据库所有者的用户总是 dbo ,他的用户 ID 是 1 ;

l guest 用户的 ID 是 2

系统函数表

函数名

|

参数

|

返回结果

---|---|---

Col_name

|

(object_id,column_id[,database_id])

|

列名

Col_length

|

(object_name,column_name)

|

列的定义长度(使用 datalength 是查看实际数据的长度)

curunreservedpgs

|

(dbid,lstart,unreservedpgs)

|

磁盘片中的空闲页数。如果数据库是打开的,则该值来自于内存;如果数据库没有打开则该值来自于系统表 sysusages 中列 unreservedpgs

Data_pgs

|

(object_id,{doampg | ioampg})

|

被表 (doampg) 或索引 (ioampg) 使用的页数。该结果不包括内部结果使用的页数

Datalength

|

(expression)

|

返回 expression 的长度。 Expression 可以是列名也可以是字符串常量。如果是列名则返回列中实际数据的长度。

Db_id

|

([database_name])

|

数据库的 ID 号。数据库名必须为字符表达式,如果数据库名为字符常量,则必须用引号将其引起来。如果没有给出数据库名,则返回当前数据库的 ID 号

Db_name

|

([database_id])

|

数据库名。 Database_id 必须是数值表达式如果没有给出 database_id ,则返回当前数据库名。

Host_id

|

()

|

客户进程 ( 非 Adaptive Server 进程 ) 的当前主机名

Host_name

|

()

|

索引列名。如果 object_name 不是表名或视图名,则返回 NULL

Index_col

|

(object_name,index_id,key_#[,user_id])

|

当 expression1 为 NULL 时,用 expression2 的值来代替 expression1 的值。表达式的值必须可隐式地转化,否则必须使用 convert 函数

Isnull

|

(expression1,expression2)

|

管理日志段的最后机?值。 Lastchance :在指定的数据库中创建一个最后机会值;当指定数据库的最后机会值被超过时返回 1 ,否则返回 0 ; unsuspend :用以唤醒数据库中挂起的任务并且当最后机会值被超过时使用该机会值无效; reserve :返回要成功地转储指定大小的一个事务日志时所需的自由日志页的数目。

Lct_admin

|

({{“lastchance”|”logfull”|”unsuspend”}

,database_id}|

“reserve”

,log_pages})

|

分配给表或索引的页数

Reserved_pgs

|

(object_id,{doampg|ioampg})

|

表中行数的估计值

Rowent

|

(doampg)

|

数据库对象 ID 号

Object_id

|

(“objname”)

|

数据库对象名

Object_name

|

(obj_id)

|

从表 syslogins 中返回服务器用的 ID 号,如果没有给出参数 server_user_name 的值则返回当前用户的服务器 ID 号

Suser_id

|

([server_user_name])

|

返回服务器用户名,服务器用户的 ID 号存储在表 syslogins 中,如果没有给出参数 server_user_id 的值,则返回当前用户名。

Tsequal

|

(timestamp,timestamp2)

|

在浏览模式下,比较 timestamp 的值以阻止提交那些被修改过的值。 Timestamp 是被浏览行的时间标志; timestamp2 是存储行的时间标志。该函数允许用户不调用 db_library 而使用浏览模式。

Used_pgs

|

(object_id,doampg,ioampg)

|

由表和聚簇索引使用的列数

User

|

|

用户名

User_id

|

([user_name])

|

用户的 ID 号。报告当前数据库中的用户 ID 号,如果没有给出参数 user_name, 返回当前用户的 ID 号。

<TD style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0

Published At
Categories with 数据库类
comments powered by Disqus