数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
T-SQL 查询中使用的函数之系统函数

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

查询中使用的函数

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

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

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

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

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

l         日期函数。处理datetimesmalldatetime类型的数据;

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

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

一、系统函数

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

系统函数的一般语法:

select function_name ( argument[s] )

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

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

 

 

结果:

用户标示号

——

3

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

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

Select “用户名” = user_name(3)

结果:

用户名

——

zyf

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

select user_name()

结果:

用户名

——

dbo

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

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

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

l         数据库所有者的用户总是dbo,他的用户ID1

l         guest用户的ID2

 

系统函数表

函数名

参数

返回结果

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])

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

Isnull

(expression1,expression2)

管理日志段的最后机?值。Lastchance:在指定的数据库中创建一个最后机会值;当指定数据库的最后机会值被超过时返回1,否则返回0unsuspend:用以唤醒数据库中挂起的任务并且当最后机会值被超过时使用该机会值无效;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号。

User_name

([user_id])

返回与当前数据库的用户ID号相对应的用户名。如果没有提供参数user_id的值,则返回当前用户名。

Valid_name

(character_expression)

如果character_expression是无效的标识符(非法字符或长度超过了30),则返回0;否则返回非0数值

Valid_user

(server_user_id)

如果指定的ID号在Adaptive Server的至少一个数据库中有其对应的用户名或别名,则返回1;只有sa_rolesso_role角色的用户才可以使用该函数。

 

例子:

1、找出表titlestitle列的长度

slelect “标题长度”=col_length(“article”,”title”)

  结果:

  标题长度

  -----

  120

2、找出表articletitle列中数据的长度

  select length=datalength(title),title

  from article

  结果:

length    title

24          软透露其internet 策略

20                            A推出两种网络新软件

21                            IBM发布新版SYSTEMVIEW

3、查找所有作家的工资,如果工资为NULL值则替换成$10.00

   select isnull(salary,$10.00)

   from auths

结果:

——

120.00

100.00

110.00

10.00

4、查出系统表sysusers中的用户ID1的用户名

select name form sysusers

where name=user_name(1)

结果:

name

——

dbo

 




相关文章

相关软件