日期:2013-11-21  浏览次数:20449 次


查询中使用的函数

  在查询语句中,不只可查询表中列的值而且可以使用内部函数查询数据库中不同类型的信息。可以在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而使用浏览模式。