国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

T-SQL 查詢中使用的函數之系統函數

2024-07-21 02:07:31
字體:
來源:轉載
供稿:網友

查詢中使用的函數

  在查詢語句中,不僅可查詢表中列的值而且可以使用內部函數查詢數據庫中不同類型的信息。可以在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號。

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_role或sso_role角色的用戶才可以使用該函數。

 

例子:

1、找出表titles中title列的長度

slelect “標題長度”=col_length(“article”,”title”)

  結果:

  標題長度

  -----

  120

2、找出表article中title列中數據的長度

  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中的用戶id為1的用戶名

select name form sysusers

where name=user_name(1)

結果:

name

——

dbo

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永嘉县| 新巴尔虎左旗| 光山县| 河池市| 共和县| 南岸区| 甘泉县| 进贤县| 城固县| 三门峡市| 西平县| 福海县| 三穗县| 常熟市| 白玉县| 曲水县| 天气| 彩票| 宜宾市| 虎林市| 通州区| 九寨沟县| 华容县| 七台河市| 杭锦旗| 阿坝县| 昌黎县| 襄城县| 奇台县| 鹤壁市| 乐都县| 西林县| 桐乡市| 响水县| 安溪县| 鹤岗市| 墨玉县| 墨脱县| 哈密市| 高邮市| 徐州市|