??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产一区二区三区av性色,久热精品视频在线免费观看,久久精品视频在线看http://www.aygfsteel.com/plpa/articles/2918.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 06:07:00 GMThttp://www.aygfsteel.com/plpa/articles/2918.htmlhttp://www.aygfsteel.com/plpa/comments/2918.htmlhttp://www.aygfsteel.com/plpa/articles/2918.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2918.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2918.html
ȝ首页  视频下蝲  书籍下蝲  软g下蝲  论坛交流  虚拟L  站内搜烦  |站地图  |站律师  q告合作
  豆豆首页 - 在线教程 - ???/A> - Mssql - 基础教程 最大的中文IT资源|?/MARQUEE>
   
字符串函敎ͼ二)
作者:unknown 更新旉Q?005-03-17  
 


8、系l函?/SPAN>
pȝ函数用于获取有关计算机系l、用戗数据库和数据库对象的信息。系l函数可以让用户在得C息后Q用条件语句,Ҏ(gu)q回的信息进行不同的操作。与其它函数一P可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用pȝ函数?

·APP_NAMEQ)
APP_NAMEQ) 函数语法如下Q?BR> APP_NAMEQ)
APP_NAMEQ) 函数q回当前执行的应用程序的名称。其q回值类型ؓnvarchar Q?28Q?BR>
  ?-77Q?/STRONG> 试当前应用E序是否为SQL Server Query Analyzer


·COALESCEQ)
COALESCEQ) 函数语法如下Q?BR>COALESCE Q?lt;expression> [Q?...n]Q?BR>COALESCEQ) 函数q回众多表达式中W一个非NULL 表达式的倹{如果所有的表达式均为NULLQ?则COALESCEQ) 函数q回NULL 倹{COALESCEQ) 函数{效于下面的CASE 语句Q?

CASE
WHEN Qexpression1 IS NOT NULLQ?THEN expression1
?BR>WHEN QexpressionN IS NOT NULLQ?THEN expression
ELSE NULL

  ?-78Q?


·COL_LENGTHQ)
COL_LENGTHQ) 函数语法如下Q?BR> COL_LENGTH Q?lt;'table_name'>Q?<'column_name'>Q?BR>COL_LENGTHQ) 函数q回表中指定字段的长度倹{其q回gؓINT cd?BR>
  ?-79Q?/STRONG>


·COL_NAMEQ)
COL_NAMEQ) 函数语法如下Q?BR> COL_NAME Q?lt;table_id>Q?<column_id>Q?BR>COL_NAMEQ) 函数q回表中指定字段的名Uͼ卛_名。其q回gؓSYSNAME cd。其中table_id 和column_id 都是INT cd的数据,函数用table_id 和column_id 参数来生成列名字W串。关于如何获得table_id 和column_idQ?请参见OBJECT_IDQ) 函数?BR>
  ?-80Q?/STRONG>



·DATALENGTHQ)
DATALENGTHQ) 函数语法如下Q?BR>DATALENGTH Q?lt;expression>Q?BR>DATALENGTHQ) 函数q回数据表达式的数据的实际长度。其q回值类型ؓINT。DATALENGTHQ) 函数对VARCHAR?VARBINARY?TEXT?IMAGE?NVARCHAR和NTEX {能存储变动长度数据的数据类型特别实用。NULL 的长度ؓNULL?BR>
  ?-81Q?/STRONG>


· DB_IDQ)
DB_IDQ) 函数语法如下Q?BR>DB_ID Q['database_name']Q?BR>DB_IDQ) 函数q回数据库的~号。其q回gؓSMALLINT cd。如果没有指定database_nameQ?则返回当前数据库的编受?BR>
  ?-82Q?/STRONG>



·DB_NAMEQ)
DB_NAME() 函数语法如下Q?BR>DB_NAME (database_id)
DB_NAME() 函数q回数据库的名称.其返回值类型ؓNVARCHAR (128). database_id是SMALLINT cd的数?如果没有指定database_id, 则返回当前数据库的名U?

  ?-83:


· FORMATMESSAGE()
FORMATMESSAGE() 函数语法如下:
 FORMATMESSAGE (<message_number>, <param_value>[, ...n])
FORMATMESSAGE() 函数用于从系l信息表sysmessages 中挑选一条现存的信息,
再将其格式{换ؓ用户需要的形式.其功能类gRAISERROR 命o,不同的是RAISERROR命o立即打印Z?而FORMATMESSAGE() 函数q回~辑q的信息l调用它的程?其返回值类型ؓNVARCHAR.
其中message_number 是存储在sysmessages pȝ表中的信息ID ?param_value 是在信息中用的参数.最多可使用20 个参?
FORMATMESSAGE() 函数查找使用当前语言q_语言的信?如果没有本地语言的信?则用U.S. English 版本语言的信?

  ?-84: 假定有一个编号ؓ10001 的信息存储在sysmessages 表中,此信息的内容?The Length of rows %column_name in %table_name is %column_num.".FORMATMESSAGE() 函数用值myColumn?myTable ?0 分别替代上述参数?结果存储在变量@test1 ?E序如下:
declare @test1 varchar (100)
select @test1 = formatmessage (10001, 'myColumn', 'myTable', 20)

·GETANSINULL()
GETANSINULL() 函数语法如下:
 GETANSINULL() (['database_name'])
GETANSINULL() 函数q回当前数据库默认的NULL ?其返回值类型ؓINT.GETANSINULL() 函数对ANSI I值NULL q回1; 如果没有定义ANSI I?则返?.

  ?-85:
select getansinull ('pangu')
q行l果如下:
------
1

·HOST_ID()
HOST_ID() 函数语法如下:
 HOST_ID()
HOST_ID() 函数q回服务器端计算机的名称.其返回值类型ؓNCHAR.

  ?-86:
declare @hostID char (8)
select @hostID = host_id()
print @hostID
q行l果如下:
-606771

·HOST_NAME()
HOST_NAME() 函数语法如下:
 HOST_NAME()
HOST_NAME() 函数q回服务器端计算机的名称.其返回值类型ؓCHAR (8).

?-87:
declare @hostNAME nchar (20)
select @hostNAME = host_name()
print @hostNAME

q行l果如下:
XUJIN

·IDENTITY()
IDENTITY() 函数语法如下:
IDENTITY (<data_type>[, seed, increment]) [AS column_name])
IDENTITY() 函数只在SELECT...INTO 语句中?用于插入一个identity column列到新表?其返回值类型与data_type 的类型相?

其中:
data_type 指定数据cd.data type 是INTEGER 或DECIMAL cȝ数据cd.Seed指定identity column 的初?即第一个?Increment 指定增加一个记录时,记录的identity column 值应在前记录的基上增加的?seed 和increment 的缺省gؓ1.column_name 是所插入的identity column 的列?虽然AS column_name 为可选项,但由于函数在表中插入了一个新?所以必L定列?如果不用AS column_name 选项,可以使用以下两种方式来指定列?
(1) select identity (int, 1, 1) as column_name
into newtable
from oldtable
(2) select column_name = identity (int, 1, 1)
into newtable
from oldtable
有关identity column 的信?请参?理数据库表"中的"列属?章节.

·IDENT_INCR()
IDENT_INCR() 函数语法如下:
 IDENT_INCR ('table_or_view')
IDENT_INCR() 函数q回表中标识性字Didentity column 的增?若无此字D?则返回NULL ?其返回值类型ؓNUMERIC.

  ?-88:


·IDENT_SEED()
IDENT_SEED() 函数语法如下:
IDENT_SEED (<'table_or_view'>)
IDENT_SEED() 函数q回表中标识性字Didentity column 的初?若无此字D?则返回NULL ?其返回值类型ؓNUMERIC.

  ?-89:


·INDEX_COL()
INDEX_COL() 函数语法如下:
INDEX_COL (<'table_name'>, <index_id>, <key_id>)
INDEX_COL() 函数q回表内索引识别码ؓindex_id 的烦引的名称,q找出组成该索引的列l合中第key_id 个列?其返回值类型ؓNCHAR.

 ?-90:



·ISDATE()
ISDATE() 函数语法如下:
ISDATE (<expression>)
ISDATE() 函数判断所l定的表辑ּ是否为合理日?如果是则q回1, 不是则返?.

  ?-91Q?/STRONG>



·ISNULL()
ISNULL() 函数语法如下:
ISNULL (<check_expression>, <replacement_value>)
ISNULL() 函数表辑ּ中的NULL 值用指定值替?如果check_expresssion 不是NULL, 则返回其原来的?否则,q回replacement_value 的?

提醒Q?/STRONG>reaplacement_value的数据类型应与chech_expresssion一?

  ?-92:


·ISNUMERIC()
ISNUMERIC() 函数语法如下:
 ISNUMERIC (<expression>)
ISNUMERIC() 函数判断所l定的表辑ּ是否为合理的数?INTEGER?FLOATING POINT NUMBER?MONEY 或DECIMAL cd),如果是则q回1, 不是则返?.

提醒Q?/STRONG>查MONEY型数据时Q应先用CONVERT()函数其转换为数值型或字W型?BR>
  ?-93Q?/STRONG>



·NEWID
NEWID() 函数语法如下:
 NEWID()
NEWID() 函数q回一个UNIQUEIDENTIFIER cd的数?此函C用计机的网卡的Ethernet 地址加上l由CPU Clock 产生的数字而得到其q回?׃|卡的Ethernet地址是全球惟一?在未来近一癑ֹ内不会生产出相同Ethernet 地址的网?,因而函数所产生的数字也是惟一?

  ?-94:


·NULLIF()
NULLIF() 函数语法如下:
 NULLIF (<expression1>, <expression2>)
NULLIF() 函数在expression1 与expression2 相等时返回NULL ?若不相等时则q回expression1 的?其返回值类型与expression1 相同.expression1 与expression2 应ؓ同类的数据类?

  ?-95:


·OBJECT_ID()
OBJECT_ID() 函数语法如下:
 OBJECT_ID (<'object_name'>)
OBJECT_ID() 函数q回数据库对象的~号.其返回值类型ؓINT.

  ?-96:


提醒Q?/STRONG>当指定一个时表的表名时,其表名的前面必须加上临时数据库名"tempdb"Q如Qselect object_id("tempdb..#mytemptable").

·OBJECT_NAME()
OBJECT_NAME() 函数语法如下:
 OBJECT_NAME (<object_id>)
OBJECT_NAME() 函数q回数据库对象的名称.其返回值类型ؓNCHAR.

  ?-97:


·PARSENAME()
PARSENAME() 函数语法如下:
 PARSENAME (<'object_name '>, <object_piece>)
PARSENAME() 函数q回一个数据库对象完整名称中的特定部分(对象名称或数据库拥有者名U或数据库名U或服务器名U?.其返回值类型ؓNCHAR.
 其中object_piece 为INT cd,其取值如?
  对象名称Object name;
  数据库拥有者名UOwner name;
  数据库名UDatabase name;
  服务器名UServer name.
 如果object_name 或object_piece 为NULL, 则返回NULL ?

  ?-98:


·PERMISSIONS()
PERMISSIONS() 函数语法如下:
 PERMISSIONS ([object_id [, 'column_name']])
PERMISSIONS() 函数用于获取当前用户Ҏ(gu)一对象的存取权限或Ҏ(gu)一命o的执行权?其返回gؓ一?2 位的bitmap ?其中?6 位表C目前用户对象的存取权限讑֮??6 位表C用h否可以开放此对象的权限给其它?
如果不指定object_id, 则函数返回目前用L命o执行权限的bitmap ?使用column_name 选项可以得到表的列权?各权限D?-10 ?-12.

 有关PERMISSIONS() 函数使用Ҏ(gu),我们在以后的章节分别讲q?

·STATS_DATE()
STATS_DATE() 函数语法如下:
 STATS_DATE (<table_id>, <index_id>)
STATS_DATE() 函数q回最新的索引l计日期.其返回值类型ؓDATETIME.

  ?-99:


·SUSER_SID()
SUSER_ SID() 函数语法如下:
 SUSER_SID (['login_name'])
SUSER_SID() 函数Ҏ(gu)用户d名返回用LSID (Security Identification Number,安全帐户??其返回值类型ؓINT. 如果不指定login_name, 则返回当前用LSID?

  ?-100:


·SUSER_SNAME()
SUSER_SNAME() 函数语法如下:
 SUSER_SNAME ([server_user_sid])
SUSER_SNAME() 函数Ҏ(gu)SID 可回用Ld?如果没有指定server_user_sid,则返回当前用Ld?其返回值类型ؓNCHAR.

  ?-101:


·USER_ID()
USER_ID() 函数语法如下:
 USER_ID (['user_name'])
USER_ID() 函数Ҏ(gu)用户数据库的用户名返回用L数据库ID ?其返回值类型ؓINT. 如果没有指定user_name, 则返回当前用L数据库ID ?

  ?-102:


·USER_NAME()
USER_NAME() 函数语法如下:
 USER_NAME ([user_id])
USER_NAME() 函数Ҏ(gu)用户的数据库ID 可回用L数据库用户名.其返回值类型ؓNCHAR. 如果没有指定user_id, 则返回当前数据库的用户名.

  ?-103:


9、TEXT 和IMAGE 函数
·TEXTPTR()
TEXTPTR() 函数语法如下:
 TEXTPTR (<column>)
TEXTPTR() 函数q回一个指向存储文本的W一个数据库늚指针.其返回值是一个VARBINARY (16) cd的二q制字符?如果数据cd为TEXT?NTEXT 或IMAGE的列没有赋予初?则TEXTPTR() 函数q回一个NULL 指针.

  ?-104:


·TEXTVALID()
TEXTVALID() 函数语法如下:
 TEXTVALID (<'table.column'>, <text_ pointer>)
TEXTVALID() 函数用于查指定的文本指针是否有效.如果有效,则返?; 无效,则返?. 如果列未赋予初?则返回NULL ?

  ?-105:



10、NILADIC 函数
NILADIC 函数q回一个用h旉戛_?q类函数均不带参?NILADIC 函数l常被定义ؓCREATE 或ALERT TABLE 语句中DEFAULT U束的一部分,可参?理数据库表"章节.主要的NILADIC 函数如下:

·CURRENT_TIMESTAMP
CURRENT_TIMESTAMP 函数语法如下:
 CURRENT_TIMESTAMP
CURRENT_TIMESTAMP 函数q回当前的日期和旉,{同于GETDATE() 函数.q回值类型ؓDATETIME.

  ?-106:


·CURRENT_USER
CURRENT_USER 函数语法如下:
 CURRENT_USER
CURRENT_USER 函数与USER_NAME() 函数功能相同,q回当前用户的数据库用户?q回值类型ؓSYSNAME.

  ?-107:


·SESSION_USER
SESSION_USER 函数语法如下:
 SESSION_USER
SESSION_USER 函数{同于USER_NAME() 函数,q回当前用户的数据库用户?q回值类型ؓNCHAR.

·SYSTEM_USER
SYSTEM_USER 函数语法如下:
 SYSTEM_USER
SYSTEM_USER q回当前pȝ的用户名.如果用户是以Windows NT 认证方式dSQL Server ?则会q回Windows NT 的登录名;如果用户是以SQL Server 认证方式d?则返回SQL Server 中的用户?

  ?-108:


·USER
USER 函数语法如下:
 USER
USER 与系l函数USER_NAME() 的功能相?q回当前用户的数据库用户?q回值类型ؓCHAR.

  ?-109:


11、用戯定义函数
从SQL Server 2000 开?用户可以自定义函C.在SQL Server 2000 中用戯定义函数是作Z个数据库对象来管理的,可以使用企业理?Enterprise Manager) 或Transact-SQL 命o来创建、修攏V删?其具体方法请参见W?3 ?游标、视囑֒自定义函?.

本章介绍了Transact-SQL 语言的基本概?及其使用Ҏ(gu).Transact-SQL 语言需要大量的实践,才能熟练q用.本章及以后的SQL 语法基本上都是标准的ANSI SQL 兼容语法,在其它数据库?如ORACLE?SYBASE?INFORMIX?FOXPRO {?大部分语句均可套?

 
上一?/A>      目录      下一?/A>
来源Qunknown
加入收藏 | 我要投稿 | 我要打印 | 我有疑问 | 错误报告| 关闭H口
 
?/TD> 本站相关教程
企业理器的环境
启动与关闭服务器
注册服务?/A>
q接与断开服务?/A>
sql 服务器配|?/A>
对象的SQL 脚本
调用SQL Server 工具和向?/A>
企业理器的常见用?/A>
?/TD> |络相关链接
暂时未有相关文章
 
 
 
?/TD>


]]>
字符串函敎ͼ一Q?/title><link>http://www.aygfsteel.com/plpa/articles/2917.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 06:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2917.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2917.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2917.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2917.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="BORDER-BOTTOM: #ff99ff 1px dashed" align=middle height=50><STRONG class=f16>字符串函敎ͼ一Q?/STRONG></TD></TR> <TR> <TD align=middle height=40>作者:unknown 更新旉Q?005-03-17 </TD> <TD style="BORDER-RIGHT: #ff99ff 1px solid" vAlign=top rowSpan=6> </TD></TR> <TR> <TD height=40> </TD></TR> <TR> <TD> <TABLE class=pagefont cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <P><BR>字符串函数对二进制数据、字W串和表辑ּ执行不同的运。此cdC用于CHAR、VARCHAR?BINARY?和VARBINARY 数据cd以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。常用的字符串函数有Q?BR><BR><span id="wmqeeuq" class=style2>1、字W{换函?/SPAN><BR>有以下几U字W{换函敎ͼ<BR>·ASCIIQ)<BR>ASCIIQ) 函数q回字符表达式最左端字符的ASCII 码倹{ASCIIQ) 函数语法如下Q?BR><IMG height=31 src="http://www.ddvip.net/database/mssql/index1/img/34.GIF" width=302><BR><BR>  <STRONG>?-40Q?/STRONG><BR><IMG height=82 src="http://www.ddvip.net/database/mssql/index1/img/35.GIF" width=560><BR><IMG height=82 src="http://www.ddvip.net/database/mssql/index1/img/36.GIF" width=278><BR><BR><STRONG>提醒Q?/STRONG>在ASCIIQ)函数中,U数字的字符串可不用‘’括hQ但含其它字W的字符串必ȝ‘’括h使用Q否则会出错?BR><BR>·CHARQ)<BR>CHARQ) 函数用于ASCII 码{换ؓ字符。其语法如下Q?BR><IMG height=28 src="http://www.ddvip.net/database/mssql/index1/img/37.GIF" width=288><BR>如果没有输入0 ~ 255 之间的ASCII 码|CHARQ) 函数会返回一个NULL 倹{?BR><BR>  <STRONG>?-41Q?/STRONG><BR><IMG height=145 src="http://www.ddvip.net/database/mssql/index1/img/38.GIF" width=361><BR><BR>·LOWERQ)<BR>LOWERQ) 函数把字W串全部转换为小写,其语法如下:<BR>   <IMG height=27 src="http://www.ddvip.net/database/mssql/index1/img/39.GIF" width=304><BR><BR>  <STRONG>?-42Q?/STRONG><BR><IMG height=143 src="http://www.ddvip.net/database/mssql/index1/img/40.GIF" width=284><BR><BR>·UPPERQ)<BR>UPPERQ) 函数把字W串全部转换为大写,其语法如下:<BR> <IMG height=27 src="http://www.ddvip.net/database/mssql/index1/img/41.GIF" width=309><BR><BR>  <STRONG>?-43Q?/STRONG><BR><IMG height=133 src="http://www.ddvip.net/database/mssql/index1/img/42.GIF" width=307><BR><BR>·STRQ)<BR>STRQ) 函数把数值型数据转换为字W型数据Q其语法如下Q?BR>STR Q?lt;float _expression>[Qlength[Q?<decimal>]]Q?BR>  自变量length 和decimal 必须是非负|length 指定q回的字W串的长度,decimal 指定q回的小C数。如果没有指定长度,~省的length gؓ10Q?decimal ~省gؓ0?数位数大于decimal 值时QSTRQ) 函数其下一位四舍五入。指定长度应大于或等于数字的W号位数+数点前的位?数点位?数点后的位数。如?lt;float _expression>数点前的位数超q了指定的长度,则返回指定长度的?”?BR><BR>  <STRONG>?-44Q?/STRONG><BR><IMG height=131 src="http://www.ddvip.net/database/mssql/index1/img/43.GIF" width=560><BR><BR><span id="wmqeeuq" class=style2>2、去I格函数</SPAN><BR>ȝ格函数有如下两种Q?BR>·LTRIMQ)<BR>LTRIMQ) 函数把字W串头部的空格去掉,其语法如下:<BR>  LTRIM Q?lt;character _expression>Q?BR><BR>  <STRONG>?-45Q?/STRONG><BR><IMG height=143 src="http://www.ddvip.net/database/mssql/index1/img/44.GIF" width=163><BR><BR>·RTRIMQ)<BR>RTRIMQ) 函数把字W串N的空格去掉,其语法如下:<BR>  RTRIM Q?lt;character _expression>Q?BR><BR>  <STRONG>?-46Q?/STRONG><BR><IMG height=145 src="http://www.ddvip.net/database/mssql/index1/img/45.GIF" width=174><BR><BR><STRONG>提示Q?/STRONG>在许多情况下Q往往需要得到头部和N都没有空格字W的字符Ԍq时可将上两个函数嵌套用?<BR><BR>  <STRONG>?-47Q?/STRONG><BR><IMG height=133 src="http://www.ddvip.net/database/mssql/index1/img/46.GIF" width=304><BR><BR><span id="wmqeeuq" class=style2>3、取子串函数</SPAN><BR>取子串函数如下所C:<BR>·LEFTQ)<BR>LEFTQ) 函数q回部分字符Ԍ其语法如下:<BR>  LEFT Q?lt;character_expression>Q?<integer_expression>Q?BR>  LEFTQ) 函数q回的子串是从字W串最左边起到Winteger_expression 个字W的部分。若integer_expression |则返回NULL 倹{?BR><BR>  <STRONG>?-48Q?/STRONG><BR><IMG height=135 src="http://www.ddvip.net/database/mssql/index1/img/47.GIF" width=205><BR><BR>·RIGHTQ)<BR>RIGHTQ) 函数q回部分字符Ԍ其语法如下:<BR>  RIGHT Q?lt;character_expression>Q?<integer_expression>Q?BR>  RIGHTQ) 函数q回的子串是从字W串双Winteger_expression 个字Wv到最后一个字W的部分。若integer_expression |则返回NULL 倹{?BR><BR>  <STRONG>?-49Q?/STRONG><BR><IMG height=137 src="http://www.ddvip.net/database/mssql/index1/img/48.GIF" width=214><BR><BR>·SUBSTRINGQ)<BR>SUBSTRINGQ) 函数q回部分字符Ԍ其语法如下:<BR>  SUBSTRING Q?lt;expression>Q?<starting_ position>Q?lengthQ?BR>  SUBSTRINGQ) 函数q回的子串是从字W串左边Wstarting_ position 个字Wvlength个字W的部分。其中表辑ּ可以是字W串或二q制串或含字D名的表辑ּ。SUBSTRINGQ)函数不能用于TEXT 和IMAGE 数据cd?BR><BR>  <STRONG>?-50Q?/STRONG><BR><IMG height=214 src="http://www.ddvip.net/database/mssql/index1/img/49.GIF" width=460><BR><BR><span id="wmqeeuq" class=style2>4、字W串比较函数</SPAN><BR>字符串比较函数如下所C:<BR>·CHARINDEXQ)<BR>CHARINDEXQ) 函数q回字符串中某个指定的子串出现的开始位|,其语法如下:<BR>  CHARINDEX Q?lt;’substring_expression?gt;Q?<expression>Q?BR>  其中substring _expression 是所要查扄字符表达式,expression 可ؓ字符串也可ؓ列名表达式。如果没有发现子Ԍ则返? 倹{此函数不能用于TEXT 和IMAGE 数据cd?BR><BR>  <STRONG>?-51Q?/STRONG><BR><IMG height=131 src="http://www.ddvip.net/database/mssql/index1/img/50.GIF" width=272><BR><BR>  <STRONG>?-52Q?/STRONG><BR><IMG height=209 src="http://www.ddvip.net/database/mssql/index1/img/51.GIF" width=241><BR><BR>·PATINDEXQ)<BR>PATINDEXQ) 函数q回字符串中某个指定的子串出现的开始位|,其语法如下:<BR>  PATINDEX Q?lt;?substring _expression%?gt;Q?<column_ name>Q?BR>  其中子串表达式前后必L癑ֈ号?”否则返回gؓ0?BR><BR>  <STRONG>?-53Q?/STRONG><BR><IMG height=131 src="http://www.ddvip.net/database/mssql/index1/img/52.GIF" width=474><BR><BR>  与CHARINDEXQ) 函数不同的是QPATINDEXQ) 函数的子串中可以使用通配W,且此函数可用于CHAR?VARCHAR 和TEXT 数据cd?BR><BR>  <STRONG>?-54Q?/STRONG><BR><IMG height=268 src="http://www.ddvip.net/database/mssql/index1/img/53.GIF" width=321><BR><BR>·SOUNDEXQ)<BR>SOUNDEXQ) 函数q回一个四位字W码Q其语法如下Q?BR>  SOUNDEX Q?lt;character _expression>Q?BR>  SOUNDEXQ) 函数character _expression 转换? 个字W的声音码。其中第一个码为原字符串的W一个字W,W二到第四个字符则ؓ数字Q是该字W串的声韛_母所对应的数字,但是忽略了除首字母外的串中的所有元韛_?。SOUNDEXQ) 函数可用来查扑֣音相似的字符丌Ӏ但SOUNDEX 函数Ҏ(gu)字和汉字均只q回0 倹{?BR><BR>  <STRONG>?-55Q?/STRONG><BR><IMG height=135 src="http://www.ddvip.net/database/mssql/index1/img/54.GIF" width=560><BR><BR>·DIFFERENCEQ)<BR>DIFFERENCEQ) 函数q回由SOUNDEXQ) 函数q回的两个字W表辑ּ的值的差异。其语法如下Q?BR>  DIFFERENCE Q?lt;character_expression1>Q?<character_expression2>Q?BR>  值的差异是用0?1?2?3?4 来表C的Q含义如下:<BR>  0--两个SOUNDEXQ) 函数q回值的W一个字W不?BR>  1--两个SOUNDEXQ) 函数q回值的W一个字W相?BR>  2--两个SOUNDEXQ) 函数q回值的W一、二个字W相?BR>  3--两个SOUNDEXQ) 函数q回值的W一、二、三个字W相?BR>  4--两个SOUNDEXQ) 函数q回值完全相?BR><BR>  <STRONG>?-56Q?/STRONG><BR><IMG height=150 src="http://www.ddvip.net/database/mssql/index1/img/55.GIF" width=560><BR><BR><span id="wmqeeuq" class=style2>5、字W串操作函数</SPAN><BR>字符串操作函数如下所C:<BR>·QUOTENAMEQ)<BR>QUOTENAMEQ) 函数q回被特定字W括h的字W串Q其语法如下Q?BR>QUOTENAME Q?lt;’character_expression?gt;[Q?quote_ character]Q?BR>其中quote_ character 标明括字W串所用的字符Q如“‘”、“(”、“[?{,~省gؓ“[]?BR><BR>  <STRONG>?-57Q?/STRONG><BR><IMG height=136 src="http://www.ddvip.net/database/mssql/index1/img/56.GIF" width=364><BR><BR>·REPLICATEQ)<BR>REPLICATEQ) 函数q回一个重复character_expression 指定ơ数的字W串Q其语法如下Q?BR>REPLICATE Qcharacter_expression integer_expressionQ?BR>如果integer_expression gؓ负|则REPLICATEQ) 函数q回NULL 丌Ӏ?BR><BR>  <STRONG>?-58Q?/STRONG><BR><IMG height=137 src="http://www.ddvip.net/database/mssql/index1/img/57.GIF" width=357><BR><BR>·REVERSEQ)<BR>REVERSEQ) 函数指定的字符串的字符排列序颠倒,其语法如下:<BR>REVERSE Q?lt;character_expression>Q?BR>其中character_expression 可以是字W串、常数或一个列的倹{?BR><BR>  <STRONG>?-59Q?/STRONG><BR><IMG height=132 src="http://www.ddvip.net/database/mssql/index1/img/58.GIF" width=286><BR><BR>·REPLACEQ)<BR>REPLACEQ) 函数q回被替换了指定子串的字W串Q其语法如下Q?BR>REPLACE Q?lt;string_expression1>Q?<string_expression2>Q?<string_expression3>Q?BR>REPLACEQ) 函数用string_expression3 替换在string_expression1 中的子串string_expression2?BR><BR>  <STRONG>?-60Q?/STRONG><BR><IMG height=132 src="http://www.ddvip.net/database/mssql/index1/img/59.GIF" width=296><BR><BR>·SPACEQ)<BR>SPACEQ) 函数q回一个有指定长度的空白字W串Q其语法如下Q?BR>SPACE Q?lt;integer_expression>Q?BR>如果integer_expression gؓ负|则SPACEQ) 函数q回NULL 丌Ӏ?/P> <P>  <STRONG>?-61Q?/STRONG><BR><IMG height=128 src="http://www.ddvip.net/database/mssql/index1/img/60.GIF" width=233><BR><BR>·STUFFQ)<BR>STUFQ)函数用另一子串替换字符串指定位|、长度的子串Q其语法如下Q?BR>STUFF Q?lt;character_expression1>Q?<start_ position>Q?<length>Q?lt;character_expression2>Q?BR>如果起始位置或长度gؓ负,或者v始位|大于character_expression1 的长度,则STUFFQ) 函数q回NULL 倹{如果length 长度大于character_expression1 的长度,则character_expression1 只保留首字符?/P> <P>  <STRONG>?-62Q?/STRONG><BR><IMG height=115 src="http://www.ddvip.net/database/mssql/index1/img/61.GIF" width=560> <BR><BR><span id="wmqeeuq" class=style2>6、数据类型{换函?/SPAN><BR>在一般情况下QSQL Server 会自动完成数据类型的转换Q例如,可以直接字W数据类型或表达式与DATATIME 数据cd或表辑ּ比较当表辑ּ中用了INTEGER?SMALLINT或TINYINT ӞSQL Server 也可INTEGER 数据cd或表辑ּ转换为SMALLINT数据cd或表辑ּQ这UCؓ隐式转换。如果不能确定SQL Server 是否能完成隐式{换或者用了不能隐式转换的其它数据类型,需要用数据类型{换函数做昑ּ转换了。此cd数有两个Q?<BR>·CASTQ)<BR>CASTQ) 函数语法如下Q?BR>CAST Q?lt;expression> AS <data_ type>[ length ]Q?BR><BR>·CONVERTQ)<BR>CONVERTQ) 函数语法如下Q?BR>CONVERT Q?lt;data_ type>[ length ]Q?<expression> [Q?style]Q?<BR><BR><STRONG>提醒Q?</STRONG>1、data_type为SQL Serverpȝ定义的数据类型,用户自定义的数据cd不能在此使用?BR>2、length用于指定数据的长度,~省gؓ30?BR>3、把CHAR或VARCHARcd转换如INT或SAMLLINTq样的INTEGERcd、结果必L带正P+Q或负号Q?Q的数倹{?BR>4、TEXTcd到CHAR或VARCHARcd转换最多ؓ8000个字W,即CHAR或VARCHAR数据cd是最大长度?BR>5、IMAGEcd存储的数据{换到BINARY或VARBINARYcdQ最多ؓ8000个字W?BR>6、把整数D{换ؓMONEY或SMALLMONEYcdQ按定义的国家的货币单位来处理,如h民币、美元、英镑等?BR>7、BITcd的{换把非零D{换ؓ1Qƈ仍以BITcd存储?BR>8、试图{换到不同长度的数据类型,会截短{换值ƈ在{换值后昄?”,以标识发生了q种截断?BR><BR>  <STRONG>?-63Q?/STRONG><BR><IMG height=130 src="http://www.ddvip.net/database/mssql/index1/img/62.GIF" width=524><BR><BR>  <STRONG>?-64Q?/STRONG><BR><IMG height=105 src="http://www.ddvip.net/database/mssql/index1/img/63.GIF" width=560><BR><BR>  <STRONG>?-65Q?/STRONG><BR><IMG height=257 src="http://www.ddvip.net/database/mssql/index1/img/64.GIF" width=560><BR><IMG height=30 src="http://www.ddvip.net/database/mssql/index1/img/65.GIF" width=229><BR><BR>用CONVERTQ) 函数的style 选项能以不同的格式显C日期和旉。style 是将DATATIME 和SMALLDATETIME 数据转换为字W串时所选用的由SQL Server pȝ提供的{换样式编P不同的样式编h不同的输出格式。如?-8 所C?BR><IMG height=420 src="http://www.ddvip.net/database/mssql/index1/img/66.GIF" width=560><BR><BR>  <STRONG>?-66Q?/STRONG><BR><IMG height=126 src="http://www.ddvip.net/database/mssql/index1/img/67.GIF" width=560><BR><BR><span id="wmqeeuq" class=style2>7、日期函?/SPAN><BR>日期函数用来操作DATETIME 和SMALLDATETIME cd的数据,执行术q算。与其它函数一P可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用日期函数。其使用Ҏ(gu)如下Q?BR> 日期函数参数Q其中参C数应不同的函数而不同?BR><BR>·DAYQ)<BR>DAYQ) 函数语法如下Q?BR>DAY Q?lt;date_expression>Q?BR>DAYQ) 函数q回date_expression 中的日期倹{?BR><BR>  <STRONG>?-67Q?/STRONG><BR><IMG height=127 src="http://www.ddvip.net/database/mssql/index1/img/68.GIF" width=342><BR><BR>在上例中QDAYQ) 函数使用整数g参数Q系l从1900 q? ? 日v往后数指定整数?1Q?天再q回其日期?BR><BR>·MONTHQ)<BR>MONTHQ) 函数语法如下Q?BR>MONTH (<date_expression>)<BR>MONTHQ) 函数q回date_expression 中的月䆾倹{?BR><BR>  <STRONG>?-68Q?/STRONG><BR><IMG height=128 src="http://www.ddvip.net/database/mssql/index1/img/69.GIF" width=363><BR><BR>与DAYQ) 函数不同的是QMONTHQ) 函数的参Cؓ整数Ӟ一律返回整数?Q即SQL Server 认ؓ其是1900 q? 月?BR><BR>  <STRONG>?-69Q?/STRONG><BR><IMG height=102 src="http://www.ddvip.net/database/mssql/index1/img/70.GIF" width=265><BR><BR>·YEARQ)<BR>YEARQ) 函数语法如下Q?BR>YEAR Q?lt;date_expression>Q?BR>YEARQ) 函数q回date_expression 中的q䆾倹{?BR><BR>  <STRONG>?-70Q?/STRONG><BR><IMG height=132 src="http://www.ddvip.net/database/mssql/index1/img/72.GIF" width=347><BR><BR><STRONG>提醒Q?/STRONG>在用日期函数时Q其日期值应?753q到9999q之_q是SQL Serverpȝ所能识别的日期范围Q否则会出现错误?BR><BR>  <STRONG>?-71Q?/STRONG><BR><IMG height=137 src="http://www.ddvip.net/database/mssql/index1/img/73.GIF" width=560><BR><BR>·DATEADDQ)<BR>DATEADDQ) 函数语法如下Q?BR>DATEADD Q?lt;datepart>Q?<number>Q?<date>Q?BR>DATEADDQ) 函数q回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart?在日期函Cl常被用,它用来指定构成日期类型数据的各组Ӟ如年、季、月、日、星期等。其取值如?-9 所C:<BR><IMG height=318 src="http://www.ddvip.net/database/mssql/index1/img/74.GIF" width=501><BR><BR>  <STRONG>?-72Q?/STRONG><BR><IMG height=55 src="http://www.ddvip.net/database/mssql/index1/img/75.GIF" width=560><BR><IMG height=107 src="http://www.ddvip.net/database/mssql/index1/img/76.GIF" width=455><BR><BR>·DATEDIFFQ)<BR>DATEDIFFQ) 函数语法如下Q?BR>DATEDIFFQ) Q?lt;datepart>Q?<date1>Q?<date2>Q?BR>DATEDIFFQ) 函数q回两个指定日期在datepart 斚w的不同之处,即date2 过date1的差距|其结果值是一个带有正负号的整数倹{针对不同的datepartQ?DATEDIFFQ)函数所允许的最大差距g一P如:datepart 为second ӞDATEDIFFQ) 函数所允许的最大差距gؓ68Q?qdatepart 为millisecond ӞDATEDIFFQ) 函数所允许的最大差距gؓ24 ?0 时30 ?3 U?47 毫秒?BR><BR>  <STRONG>?-73Q?/STRONG> 查询在本单位工作? q以上的员工的姓名和所在的部门Q结果按在本单位工作的时间长短排序?BR><IMG height=315 src="http://www.ddvip.net/database/mssql/index1/img/77.GIF" width=403><BR><BR>·DATENAMEQ)<BR>DATENAMEQ) 函数语法如下Q?BR>DATENAME Q?lt;datepart>Q?<dateQ?gt;<BR>DATENAMEQ) 函数以字W串的Ş式返回日期的指定部分此部分。由datepart 来指定?BR><BR>  <STRONG>?-74Q?/STRONG> 查询工资大于{于7000 的员工的姓名、部门编受工资和q入单位的年份,l果按工资高低降序排列?BR><IMG height=84 src="http://www.ddvip.net/database/mssql/index1/img/78.GIF" width=560><IMG height=315 src="http://www.ddvip.net/database/mssql/index1/img/79.GIF" width=469><BR><BR>·DATEPARTQ)<BR>DATEPARTQ) 函数语法如下Q?BR>DATEPART Q?lt;datepart>Q?<date>Q?BR>DATEPARTQ) 函数以整数值的形式q回日期的指定部分。此部分由datepart 来指定?BR>DATEPART QddQ?dateQ?{同于DAY QdateQ?BR>DATEPART QmmQ?dateQ?{同于MONTH QdateQ?BR>DATEPART QyyQ?dateQ?{同于YEAR QdateQ?BR><BR>  <STRONG>?-75Q?/STRONG><BR><IMG height=317 src="http://www.ddvip.net/database/mssql/index1/img/80.GIF" width=486><BR><BR>·GETDATEQ)<BR>GETDATEQ) 函数语法如下Q?BR>GETDATEQ)<BR>GETDATEQ) 函数以DATETIME 的缺省格式返回系l当前的日期和时_它常作ؓ其它函数或命令的参数使用?BR><BR>  <STRONG>?-71Q?/STRONG><BR><IMG height=131 src="http://www.ddvip.net/database/mssql/index1/img/81.GIF" width=409><BR></P></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD align=middle height=40> </TD></TR></TBODY></TABLE><img src ="http://www.aygfsteel.com/plpa/aggbug/2917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 14:04 <a href="http://www.aygfsteel.com/plpa/articles/2917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>术?/title><link>http://www.aygfsteel.com/plpa/articles/2915.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 06:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2915.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2915.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2915.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2915.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="BORDER-BOTTOM: #ff99ff 1px dashed" align=middle height=50><STRONG class=f16>术函数</STRONG></TD></TR> <TR> <TD align=middle height=40>作者:unknown 更新旉Q?005-03-17 </TD> <TD style="BORDER-RIGHT: #ff99ff 1px solid" vAlign=top rowSpan=6> </TD></TR> <TR> <TD height=40> </TD></TR> <TR> <TD> <TABLE class=pagefont cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <P><BR>术函数可对数据cd为整型INTEGER?点型FLOAT?实型REAL?货币型MONEY和SMALLMONEY 的列q行操作。它的返回值是6 位小敎ͼ如果使用出错Q则q回NULL值ƈ昄警告信息。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用术函数。Transact-SQL 中的术函数见表4-7?BR><IMG height=252 src="http://www.ddvip.net/database/mssql/index1/img/27.GIF" width=560><BR><IMG height=497 src="http://www.ddvip.net/database/mssql/index1/img/28.GIF" width=560><BR><IMG height=241 src="http://www.ddvip.net/database/mssql/index1/img/29.GIF" width=560> <BR><BR>    <STRONG>?-37Q?/STRONG> 在同一表达式中使用SINQ)?ATANQ)?RANDQ)?PIQ)?SIGNQ)函数 <BR><BR><IMG height=27 src="http://www.ddvip.net/database/mssql/index1/img/30.GIF" width=518><BR><IMG height=92 src="http://www.ddvip.net/database/mssql/index1/img/31.GIF" width=560><BR><BR><BR>    <STRONG>?-38Q?/STRONG> 用CEILINGQ) 和FLOORQ) 函数q回大于或等于指定值的最整数值和于或等于指定值的最大整数倹{?BR><BR><IMG height=128 src="http://www.ddvip.net/database/mssql/index1/img/32.GIF" width=560><BR><BR>    <STRONG>?-39Q?nbsp;</STRONG>ROUNDQ) 函数的?BR><BR><IMG height=129 src="http://www.ddvip.net/database/mssql/index1/img/33.GIF" width=560><BR></P></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD align=middle height=40> </TD></TR></TBODY></TABLE><img src ="http://www.aygfsteel.com/plpa/aggbug/2915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 14:03 <a href="http://www.aygfsteel.com/plpa/articles/2915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据?l计函数http://www.aygfsteel.com/plpa/articles/2914.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 06:02:00 GMThttp://www.aygfsteel.com/plpa/articles/2914.htmlhttp://www.aygfsteel.com/plpa/comments/2914.htmlhttp://www.aygfsteel.com/plpa/articles/2914.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2914.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2914.html 数据?l计函数 作者:unknown 更新旉Q?005-03-17    


l计函数是在数据库操作中时常使用的函?又称为基本函数或集函?常用的统计函数如?-6 所C?



q些函数通常用在SELECT 子句中,作ؓl果数据集的字段q回的结果。在SELECT语句的SELECT 子句中用函数的语法如下Q?
    SELECT 函数名(列名1 ?Q,...函数名(列名nQ?/STRONG>
    FROM 表名

提醒Q?/STRONG>函数的对象或自变量必d括在圆括号内。如果函数需要一个以上的自变量,可用逗号隔开各个自变量?BR>
1、AVGQ)

    AVGQ) 函数q回有关列值的术q_倹{此函数只适用数值型的列。其语法如下Q?BR>
    ?-26Q?求各部门的^均工?BR>


    q行l果如下Q?BR>


2、COUNTQ)
    COUNTQ) 函数q回与选择表达式匹配的列中不ؓNULL 值的数据个数。COUNTQ)函数的语法如下:

    ?-27Q?计算企业的部门数?BR>

提醒Q?/STRONG>如果用COUNTQ)函数引用一个列名,则返回列值的个数?

    COUNTQ) 函数在计中重复计算了相同的倹{如果用了关键字DISTINCTQ?则COUNTQ) 函数p回行惟一值的个数?BR>    如果在SELECT 子句的列名位|上使用W号Q?Q, 即用COUNT Q?Q, 则指定了与SELECT 语句的判别式匚w的所有行QCOUNTQ)函数计字D늚行数Q包括ؓNULL值的行?BR>
    ?-28Q?列出员工于3 人的部门~号



3、MAXQ)
    MAXQ) 函数q回某一列的最大倹{此函数适用于数值型、字W型、和日期型的列。对于列gؓNULL 的列QMAXQ) 函数不将其列为对比的对象。其语法如下Q?BR>
    ?-29Q?求工资最高的员工姓名


4、MINQ)
    MINQ) 函数q回某一列的最倹{此函数适用于数值型、字W型、和日期型的列。对于列gؓNULL 的列QMINQ) 函数不将其列为对比的对象。其语法如下Q?BR>
    ?-30Q?求最资深的员工姓?BR>


5、SUMQ)
    SUMQ) 函数用来q回诸如列DL实体的d。此函数只适用于数值型的列Q不包括NULL 倹{其语法如下Q?BR>
    ?-31Q?求各部门的员工工资总额

    可以在一个语句中使用多个函数?BR>    ?-32Q?求员工工资的最大倹{最倹{^均?BR>


除了上述常用的函数外Q统计函数还有以下几U:

6、STDEVQ)
    STDEVQ) 函数语法如下Q?BR>
    STDEVQ) 函数q回表达式中所有数据的标准差(Statistical Standard DeviationQ。表辑ּ通常的某一数据cd为NUMERIC 的列Q或q似NUMERIC cd的列Q如MONEY cdQ但BIT cd除外Q。表辑ּ中的NULL 值将被忽略。其q回gؓFLOATcd?BR>

7、STDEVPQ)
    STDEVPQ) 函数语法如下Q?BR>
   STDEVPQ) 函数q回M标准差(Statistical Standard Deviation for The PopulationQ。表辑ּ及返回值类型同STDEVQ) 函数?BR>

8、VARQ)
    VARQ) 函数语法如下Q?BR>
    VARQ) 函数q回表达式中所有值的l计变异敎ͼStatistical VarianceQ?表达式及q回值类型同STDEVQ) 函数?BR>

9、VARPQ)
    VARPQ) 函数语法如下Q?BR>
    VARPQ) 函数q回M变异敎ͼStatistical Variance for The PopulationQ?表达式及q回值类型同STDEVQ) 函数?BR>

 

]]>
sql 其它命ohttp://www.aygfsteel.com/plpa/articles/2913.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 06:01:00 GMThttp://www.aygfsteel.com/plpa/articles/2913.htmlhttp://www.aygfsteel.com/plpa/comments/2913.htmlhttp://www.aygfsteel.com/plpa/articles/2913.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2913.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2913.html sql 其它命o 作者:unknown 更新旉Q?005-03-17    


    4.7.1 BACKUP
BACKUP 命o用于数据库内容或其事务处理日志备䆾到存储介质上QY盘、硬盘、磁带)。等SQL Server 7.0 以前的版本用的是DUMP 命o来执行此功能Q从SQL Server 2000P不再使用DUMP 命o。关于BACKUP 命o的详情请参见“数据备份与恢复”章节?BR>    4.7.2 CHECKPOINT
语法如下Q?BR>CHECKPOINT
CHECKPOINT 命o用于当前工作的数据库中被更改过的数据页data page 或日志页Qlog pageQ从数据~冲器(data buffer cacheQ中强制写入盘?BR>    4.7.3 DBCC
DBCC Database Base Consistency CheckerQ数据库一致性检查程序)命o用于验证数据库完整性、查N误、分析系l用情늭?BR>DBCC 命o后必d上子命oQ系l才知道要做什么。如DBCC CHECKALLOC 命o查目前数据库内所有数据页的分配和使用情况?BR>关于DBCC 命o的详情,请参见附录?/P>

    4.7.4 DECLARE
语法如下:
DECLARE {{ @local_variable data_type }
| { @cursor_variable_name CURSOR }
| { table_type_definition }
} [Q?..n]]
DECLARE 命o用于声明一个或多个局部变量、游标变量或表变量。在用DECLARE命o声明之后Q所有的变量都被赋予初值NULL。需要用SELECT 或SET命o来给变量赋倹{变量类型可为系l定义的或用户定义的cdQ但不能为TEXT、NTEXT、IMAGEcd。CURSOR 指名变量是局部的游标变量?BR>?-16
declare @x float @y datetime
select @x = pi @y = getdate
print @x
print @y
q行l果如下:
3.14159
Jun 17 2000 4:32PM
注意Q?/STRONG>如果变量为字W型Q那么在data_type表达中应指明
其最大长度,否则pȝ认ؓ光度ؓ1?BR>?-17
declare @x char @y char 10
select @x = '123' @y = 'data_type'
print @x
print @y
q行l果如下
1
data_type

    4.7.5 EXECUTE
EXECUTE 命o用来执行存储q程Q其具体用法请参见“存储过E”章节?nbsp;
     4.7.6 KILL
KILL 命o用于l止某一q程的执行,其具体用法请参见“存储过E”章节?BR>    4.7.7 PRINT
语法如下Q?BR>PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expression
PRINT 命o向客Lq回一个用戯定义的信息,xCZ个字W串Q最长ؓ255个字W)、局部变量或全局变量。如果变量g是字W串的话Q必d用数据类型{换函数CONVERTQ)Q将其{换ؓ字符丌Ӏ其中,string_expression 是可q回一个字W串的表辑ּ。表辑ּ的长度可以超q?000 个字W,但超q?000 的字W将不会昄?BR>?-18Q?BR>declare @x char 10 @y char 10
select @x = 'SQL' @y = 'Server'
print 'U技'
print @x + @y

q行l果如下Q?BR>U技
SQL Server

   4.7.8 RAISERROR
RAISERROR 命o用于在SQL Server pȝq回错误信息Ӟ同时q回用户指定的信息。其具体用法请参见“存储过E”章节?BR>    4.7.9 READTEXT
READTEXT 命o语法如下
READTEXT {table.column text_pointer offset size} [HOLDLOCK]
READTEXT 命o用于从数据类型ؓTEXT、NTEXT 或IMAGE 的列中读取数据。命令从偏移位置offset+1 个字Wvdsize 个字W,如果size ?Q?则会d4KB 的数据。其中text_pointer 是指向存储文本的W一个数据库늚指针Q它可以用TEXTPTRQ)函数来获取。关于TEXTPTR Q)函数的用请参见?.8.7 TEXT 和IMAGE 函数”。HOLDLOCK 选项用于锁定所d的数据直C输结束,q段旉内,其它用户只能d数据Q不能更Ҏ(gu)据?BR>?-19Q?BR>use pangu
declare @t_pointer varbinary Q?6Q?BR>select @t_pointer = textptr Qd_introQ?BR>from department
where d_name = '技术部'
readtext department.d_intro @t_pointer 0 42
q行l果如下Q?BR>d_intro
--------------------------------------------------------------------
q行技术研I与开发,提供最新的技术动态信?BR>Q? row QsQ?affectedQ?BR>
注意Q?/STRONG>如果数据列ؓ汉字Q则offset值应取o或其它偶敎ͼ如果用奇敎ͼ则会出现q

   4.7.10 RESTORE
RESTORE 命o用来数据库或其事务处理日志备䆾文g由存储介质回存到SQL Serverpȝ中。SQL Server 7.0 以前的版本用的是LOAD命o来执行此功能Q从SQL Server 2000P不再使用LOAD 命o。关于RESTORE 命o的详情,请参见“数据备份与恢复”章?BR>    4.7.11 SELECT
SELECT 命o可用于给变量赋值其语法如下Q?BR>SELECT {@local_variable = expression } [ ...n]
SELECT 命o可以一ơ给多个变量赋倹{当表达式expression 为列名时QSELECT 命o可利用其查询功能一ơ返回多个|变量中保存的是其q回的最后一个倹{如果SELECT命o没有q回|则变量g为其原来的倹{当表达式expression 是一个子查询Ӟ如果子查询没有返回值则变量被设为NULL?BR>?-20Q?BR>use pangu
declare @x char Q?0Q?BR>select @x = 'CPU'
select @x = d_name
from department
where dept_id = 9999
select @x
q行l果如下:
-----------------------
CPU
?-21:
use pangu
declare @x char 30
select @x = 'Main Board'
select @x = Qselect d_name
from department
where dept_id=9999Q?BR>select @x
q行l果如下
-----------------------
NULL

4.7.12 SET
SET 命o有两U用法:
1 用于l局部变量赋?BR>其语法如下:
SET { {@local_variable = expression} | { @cursor_variable =
{ @cursor_variable cursor_name
| { CURSOR
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR {READ ONLY
| UPDATE [OF column_name [ ...n]] } ] } } } }
其中的CURSOR {参数将在“游标”一章中讲述?BR>在用DECLARE 命o声明之后Q所有的变量都被赋予初值NULL?需要用SET 命o来给变量赋倹{但与SELECT 命o不同的是QSET 命o一ơ只能给一个变量赋倹{不q由于SET 命o功能更强Q且更严密,因此QSQL Server 推荐使用SET 命o来给变量赋倹{?/P>

?-22
declare @x char Q?0Q?BR>set @x = 'This is a SET command.'
select @x
q行l果如下
------------------------------
This is a SET command.
?-23
use pangu
declare @department_num int @x char Q?0Q?BR>set @department_num = select count Q?Q?BR>from departmentQ?BR>set @x = '部门数目'
print @x
select @department_num
q行l果如下
部门数目
-----------
7

2 用于讑֮用户执行SQL 命oQ时SQL Server 的处理选项讑֮
有以下几U设定方式:

  • SET 选项ON
  • SET 选项OFF
  • SET 选项?

关于此类SET 命o的详情,请参见附录?BR>语法如下
SHUTDOWN [WITH NOWAIT]
SHUTDOWN 命o用于停止SQL Server 的执?当用NOWAIT 参数ӞSHUTDOWN命o立即停止SQL ServerQ在l止所有的用户q程q对每一现行的事务发生一个回滚后Q退出SQL Server。当没有用NOWAIT 参数ӞSHUTDOWN 命o按以下步骤执行Q?BR>Q?Q?l止M用户dSQL Server?BR>Q?Q?{待未完成的Transact-SQL 命o或存储过E执行完毕?BR>Q?Q?在每个数据库中执行CHECKPOINT 命o
Q?Q?停止SQL Server 的执?BR>?-24
shutdown with nowait
q行l果如下Q?BR>------------------------------
Changed language setting to us_english.
Server shut down by request.
SQL Server is terminating this process.
停止SQL Server 的执行的Ҏ(gu)q有好几U,我们在“企业管理器EnterpriseManager?章节中介l?/P>

    4.7.14 WRITETEXT
语法如下Q?BR>WRITETEXT {table.column text_pointer} [WITH LOG] {data}
WRITETEXT 命o用于向数据类型ؓTEXT?NTEXT 或IMAGE 的列中读取数据。其中text_pointer 是指向存储文本的W一个数据库늚指针,它可以用TEXTPTRQ)来获取。关于TEXTPTR 函数的用请参见?.8.7 TEXT 和IMAGE 函数”。WOTH LOG选项用于记录所写入的数据。data 可ؓ文字或变量,其最大长度ؓ120KB。注意:WRITETEXT命o不能作用于视图?/P>

推荐使用UPDATETEXT 命o来修改TEXT、NTEXT 和IMAGE cd的数据。因为WRITETEXT 命o数据列的数据完全替换,而UPDATETEXT 命o可以只更Ҏ(gu)据列的一部分。关于UPDATETEXT 命o的用将在“数据库更新”章节中讲述?BR>?-25
declare @t_pointer binary Q?6Q?BR>use pangu
select @t_pointer = textptr d_intro
from department
where d_name = '技术部'
writetext department.d_intro @t_pointer 'q行技术研I与开发提供最新的技术动态信?

    4.7.15 USE
语法如下
USE {databasename}
USE 命o用于改变当前使用的数据库为指定的数据库。用户必L目标数据库的用户成员或目标数据库建有GUEST 用户账号Ӟ使用USE 命o才能成功切换到目标数据库?BR>

 

]]>
SQL 程控制命ohttp://www.aygfsteel.com/plpa/articles/2912.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 06:00:00 GMThttp://www.aygfsteel.com/plpa/articles/2912.htmlhttp://www.aygfsteel.com/plpa/comments/2912.htmlhttp://www.aygfsteel.com/plpa/articles/2912.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2912.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2912.html SQL 程控制命o 作者:unknown 更新旉Q?005-03-17    


Transact-SQL 语言使用的流E控制命令与常见的程序设计语acM主要有以下几U控制命令?BR>
4.6.1 IF…ELSE
其语法如下:
IF <条g表达?gt;
<命o行或E序?gt;
[ELSE [条g表达式]
<命o行或E序?gt;]
其中<条g表达?gt;可以是各U表辑ּ的组合,但表辑ּ的值必L逻辑值“真”或“假”。ELSE子句是可选的Q最单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条g成立时执行某D늨序,条g不成立时执行另一D늨序。如果不使用E序块,IF或ELSE只能执行一条命令。IF…ELSE可以q行嵌套?BR>
?-9
declare@x int,@y int,@z int
select @x=1,@y=2, @z=3
if@x>@y
  print'x>y' --打印字符?x>y'
else if@y>@z
print'y>z'
    else print'z>y'
q行l果如下
z>y
注意Q?/STRONG>在Transact-SQL中最多可嵌套32U?/P>

4.6.2 BEGIN…END
其语法如下:
BEGIN
<命o行或E序?gt;
END
BEGIN…END用来讑֮一个程序块Q将在BEGIN…END内的所有程序视Z个单元执行BEGIN…ENDl常在条件语句,如IF…ELSE中用。在BEGIN…END中可嵌套另外的BEGIN…END来定义另一E序块?/P>

4.6.3 CASE
CASE 命o有两U语句格?
CASE <q算?gt;
WHEN <q算?gt;THEN<q算?gt;
?
WHEN<q算?gt;THEN<q算?gt;
[ELSE<q算?gt;]
END

CASE
WHEN <条g表达?gt; THEN <q算?gt;
WHEN <条g表达?gt; THEN <q算?gt;
[ELSE <q算?gt;]
END
CASE命o可以嵌套到SQL命o中?BR>?-10Q调整员工工资,工作U别为?”的上调8%Q工作别ؓ?”的上调7%Q工作别ؓ?”的上调6%Q其它上?%?BR>use pangu
update employee
set e_wage =
case
when job_level = ??then e_wage*1.08
when job_level = ??then e_wage*1.07
when job_level = ??then e_wage*1.06
else e_wage*1.05
end
注意:执行CASE子句Ӟ只运行第一个匹配的子名?/P>

4.6.4 WHILE…CONTINUE…BREAK
其语法如?
WHILE <条g表达?gt;
BEGIN
<命o行或E序?gt;
[BREAK]
[CONTINUE]
[命o行或E序块]
END
WHILE 命o在设定的条g成立时会重复执行命o行或E序块。CONTINUE命o可以让程序蟩qCONTINUE 命o之后的语句,回到WHILE 循环的第一行命令。BREAK 命o则让E序完全跛_循环Q结束WHILE 命o的执行。WHILE 语句也可以嵌套?/P>

?-11:
declare @x int @y int @c int
?-11:
declare @x int, @y int, @c int
select @x = 1, @y=1
while @x < 3
begin
print @x --打印变量x 的?BR>while @y < 3
begin
select @c = 100*@ x+ @y
print @c --打印变量c 的?BR>select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
q行l果如下
1
101
102
2
201
202

4.6.5 WAITFOR
其语法如?
WAITFOR {DELAY <‘时间?gt; | TIME <‘时间?gt;
| ERROREXIT | PROCESSEXIT | MIRROREXIT}
WAITFOR 命o用来暂时停止E序执行Q直到所讑֮的等待时间已q或所讑֮的时间已到才l箋往下执行。其中‘时间’必MؓDATETIME cd的数据,如:?1:15:27’,
但不能包括日期各关键字含义如下:

  • DELAY 用来讑֮{待的时间最多可?4 时Q?
  • TIME 用来讑֮{待l束的时间点Q?
  • ERROREXIT 直到处理非正怸断;
  • PROCESSEXIT 直到处理正常或非正常中断Q?
  • MIRROREXIT 直到镜像讑֤p|?

?-12 {待1 时2 分零3 U后才执行SELECT 语句
waitfor delay ?1:02:03?BR>select * from employee

?-13Q等到晚?1 炚w8 分后才执行SELECT 语句
waitfor time ?3:08:00?BR>select * from employee

4.6.6 GOTO
语法如下Q?BR>GOTO 标识W?BR>GOTO 命o用来改变E序执行的流E,使程序蟩到标有标识符的指定的E序行再l箋往下执行。作转目标的标识W可为数字与字符的组合,但必M“:”结,如?2Q’或‘a_1Q’。在GOTO 命o行,标识W后不必跟“:”?BR>?-14 分行打印字符?’、?’、?’、?’、??BR>declare @x int
select @x = 1
label_1
print @x
select @x = @x + 1
while @x < 6
goto label_1

4.6.7 RETURN
语法如下
RETURN [整数值]
RETURN 命o用于l束当前E序的执行,q回C一个调用它的程序或其它E序。在括号内可指定一个返回倹{?BR>?-15
declare @x int @y int
select @x = 1 @y = 2
if x>y
return 1
else
return 2
如果没有指定q回|SQL Server pȝ会根据程序执行的l果q回一个内定|?BR>?-5 所C?BR>

如果q行q程产生了多个错误,SQL Serverpȝ返回绝对值最大的数|如果此时用户此时定义了返回|则以q回用户定义的倹{RETURN语句不能q回NULL倹{?BR>

 

]]>
SQL 变量http://www.aygfsteel.com/plpa/articles/2910.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 05:59:00 GMThttp://www.aygfsteel.com/plpa/articles/2910.htmlhttp://www.aygfsteel.com/plpa/comments/2910.htmlhttp://www.aygfsteel.com/plpa/articles/2910.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2910.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2910.html SQL 变量 作者:unknown 更新旉Q?005-03-17    


    Transact-SQL中可以用两U变量,一U是局部变量(Local VariableQ另外一U是全局变量QGlobal VariableQ?BR>
4.4.1 局部变?BR>局部变量是用户可自定义的变量,它的作用范围仅在E序内部。在E序中通常用来储存从表中查询到的数据,或当作程序执行过E中暂存变量使用。局部变量必M“@”开_而且必须先用DECLARE命o说明后才可用。其说明形式如下Q?BR>DECLARE @变量?变量cd [@变量?变量cd…]
其中变量cd可以是SQL Server 2000支持的所有数据类型,也可以是用户自定义的数据cd。DECLARE命o的详l用法请参见?.6其它命o”?BR>在Transact-SQL中不能像在一般的E序语言中一样用“变?变量值”来l变量赋倹{必M用SELECT或SET命o来设定变量的|其语法如下:
SELECT@局部变?变量?BR>SET @局部变?变量?BR>?-5Q声明一个长度ؓ10 个字W的变量“id”ƈ赋?BR>declare@id charQ?0Q?BR>select@id=?0010001?/P>

注意Q?/STRONG>可以在Select命o查询数据Ӟ在Select命o中直接将列Dl变量。例4-6:查询~号为?0010001”的员工和工资,其分别赋予变量name和wage?/P>

?-6
use pangu
declare@name charQ?0Q@wage money
select@name=e_nameQ@wage=e_wage
from employee
where emp_id='10010001'
select@name as e_nameQ@wage as e_wage
q行l果如下Q?BR>e_name e_wage
------------------------------ -----------
张三 8000.0000

注意Q?/STRONG>数据库语a和编E语a有一些关键字Q关键字是在某一一样下能够促某一操作发生的字W组合,为避免冲H和产生错误Q在命o表、列、变量以及其它对象时应避免用关键字。有关SQL Server的关键字请参见附录?BR>
4.4.2 全局变量
全局变量是SQL Serverpȝ内部使用的变量,其作用范围ƈ不局限于某一E序Q而是ME序均可随时调用全局变量通常存储一些SQL Server的配|设定值和效能l计数据。用户可在程序中用全局变量来测试系l的讑֮值或Transact-SQL命o执行后的状态倹{有关SQL Server 全局变量的详l情况请参见附录?/P>

注意Q?/STRONG>全局变量不是qLE序定义的,它们是在服务器定应义的。只能用预先说明及定义的变局变量。引用全局变量Ӟ必须以“@@”开头。局部变量的名称不能与全局变量的名U相同、否则会在应用中出错?/P>

 

]]>
注释W、运符与通配W?/title><link>http://www.aygfsteel.com/plpa/articles/2911.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 05:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2911.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2911.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2911.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2911.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="BORDER-BOTTOM: #ff99ff 1px dashed" align=middle height=50><STRONG class=f16>注释W、运符与通配W?/STRONG></TD></TR> <TR> <TD align=middle height=40>作者:unknown 更新旉Q?005-03-17 </TD> <TD style="BORDER-RIGHT: #ff99ff 1px solid" vAlign=top rowSpan=6> </TD></TR> <TR> <TD height=40> </TD></TR> <TR> <TD> <TABLE class=pagefont cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <P><BR><span id="wmqeeuq" class=style2>4.5.1 注释W(AnnotationQ?/SPAN><BR>在Transact-SQL 中可使用两类注释W?BR>ANSI 标准的注释符?-?用于单行注释Q?BR>与C语言相同的程序注释符P即?**/”。?*”用于注释文字的开_?/”用于注释文字的l尾Q可在程序中标识多行文字为注释?/P> <P><span id="wmqeeuq" class=style2>4.5.2 q算W(OperatorQ?/SPAN><BR>    1 术q算W?BR>包括Q?Q加Q、―(减)、(乘)、(除)?Q取余)<BR>    2 比较q算W?BR>包括Q?gt;Q大于)<Q小于)? Q等于)?gt;=Q大于等于)?lt;=Q小于等于)?lt;><BR>Q不{于Q?=Q不{于Q?>Q不大于Q?<Q?不小于)<BR>其中!=?>?<不是ANSI标准的运符?BR>    3 逻辑q算W?BR>包括QANDQ与Q、ORQ或Q、NOTQ非Q?BR>    4 位运符<BR>包括Q按位与、|Q按位或Q、~Q按位非Q^Q按位异或)<BR>    5 q接q算W?BR>q接q算W?”用于连接两个或两个以上的字W或二进制串、列名或者串和列的؜合体Q将一个串加入到另一个串的末。其语法如下Q?BR><expression1>+<expression2><BR>?-7<BR>use pangu<BR>declare@startdate datetime<BR>set@startdate=?/1/2000?BR>select‘Start DateQ?convertQvarcharQ?2Q@startdateQ?BR>--convertQ)函数用于转换数据cdQ见4.8.4<BR>q行l果如下Q?BR>Start DateQJan 1 2000<BR>?-8Q?BR>use pangu<BR>select‘月薪最高的员工是:? e_name+’月薪ؓQ?convertQvarcharQ?0Qe_wage<BR>from employee<BR>where e_wage=<BR>Qselect max Qe_wageQ?BR>from employeeQ?BR>q行l果如下Q?BR>月薪最高的员工是:张三月薪?000.00<BR>Q? row QsQ?affectedQ?BR>在Transact-SQL中运符的处理顺序如下所C,如果相同层次的运出现在一h则处理顺序位从左到右?/P> <UL> <LI>括号 Q) <LI>位运符 ~ <LI>术q算W?*?? <LI>术q算W?+? <LI>位运符 ^ <LI>位运符 & <LI>位运符 | <LI>逻辑q算W?NOT\ <LI>逻辑q算W?AND <LI>逻辑q算W?OR </LI></UL> <P><span id="wmqeeuq" class=style2>4.5.3 通配WWildcard</SPAN><BR>在SQL Server中可以用如?-4所C的通配W?BR><BR>?-4 Transact-SQL的通配W?BR><IMG height=88 src="http://www.ddvip.net/database/mssql/index1/img/37.jpg" width=519></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.aygfsteel.com/plpa/aggbug/2911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 13:59 <a href="http://www.aygfsteel.com/plpa/articles/2911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据?http://www.aygfsteel.com/plpa/articles/2906.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 04:16:00 GMThttp://www.aygfsteel.com/plpa/articles/2906.htmlhttp://www.aygfsteel.com/plpa/comments/2906.htmlhttp://www.aygfsteel.com/plpa/articles/2906.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2906.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2906.html


    Transact-SQL 语言中标准的SQL 语句畅通无?Transact-SQL 也有cM于SQL 语言的分c?不过做了许多扩充.Transact-SQL 语言的分cd?
      ·变量说明
      用来说明变量的命?
      ·数据定义语言(DDL,Data Definition Language)
      用来建立数据库、数据库对象和定义其列,大部分是以CREATE 开头的命oQ如QCREATE TABLE 、CREATE VIEW 、DROP TABLE {?BR>      ·数据操纵语言QDMLQData Manipulation LanguageQ?BR>      用来操纵数据库中的数据的命oQ如QSELECT?INSERT?UPDATE 、DELETE 、CURSOR{?BR>      ·数据控制语言QDCLQ?Data Control LanguageQ?BR>      用来控制数据库组件的存取许可、存取权限等的命令。如GRANT?REVOKE {?BR>      ·程控制语言QFlow Control LanguageQ?BR>      用于设计应用E序的语句如IF WHILE CASE {?BR>      ·内嵌函数
      说明变量的命令?BR>      ·其它命o
      嵌于命o中用的标准函数
    上述分类语言中,数据定义语言DDL?数据操纵语言DML 、数据控制语aDCL 分布在以后各章讲qͼ本章重点讨论变量说明、流E控制、内嵌函数和其它不好归类的命令?BR>



]]>
数据?http://www.aygfsteel.com/plpa/articles/2905.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 04:11:00 GMThttp://www.aygfsteel.com/plpa/articles/2905.htmlhttp://www.aygfsteel.com/plpa/comments/2905.htmlhttp://www.aygfsteel.com/plpa/articles/2905.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2905.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2905.html


    SQL 语言是一U介于关pMC关系演算之间的语aQ其功能包括查询、操Uc定义和控制4 个方面,是一个通用的、功能极强的关系数据库语a?BR>
4.1.1 SQL 概述
   
 SQL 语言?974 q由Boyce 和Chamberlin 提出的?975 q至1979 q_IBM 公司San Jose Research Laboratory 研制的关pL据库理pȝ原ŞpȝSystem R 实现了这U语a。由于它功能丰富Q语az,使用Ҏ(gu)灉|Q倍受用户和计机业界的青睐,被众多的计算机公司和软g公司采用。经q多q的发展QSQL 语言已成为关pL据库的标准语a?BR>
4.1.2 SQL 语言的组?/SPAN>
    SQL 语言主要׃下几部分l成:
     ·数据定义语言QDDLQData Definition LanguageQ;
     ·数据操纵语言QDMLQData Manipulation LanguageQ;
     ·数据控制语言QDCLQData Control LanguageQ;
     ·其它语言要素QAdditional Language ElementsQ?BR>    SQL 语句数目、种c较多、其M大约?0 条语句组成,如表4-1 所C?BR>


4.1.3 SQL 语句的结?/SPAN>
    所有的SQL 语句均有自己的格式,如图4-1 所C每条SQL 语句均由一个谓词(VerbQ开始,该谓词描q这条语句要产生的动作,如图4-1 中的SELECT 关键字。谓词后紧接着一个或多个子句QClauseQ子句中l出了被谓词作用的数据或提供谓词动作的详l信息。每一条子句由一个关键字开始,如图4-1 中的WHERE?BR>

4.1.4 常用的SQL 语句

    在用数据库时用得最多的是数据操U语aQData Manipulation LanguageQ?DML包含了最常用的核心SQL 语句Q即SELECT 、INSERT 、UPDATE 、DELETE?下面对以后章节中l常用到的SELECT 语句作简单介l(有关q些语句的具体语法请参见“数据查询:和“数据库更新”章节)
    单的SELECT 语句的语法如下:
      SELECT [ALL|DISTINCT] <目标表达?gt;[Q?lt;目标表达?gt;]...
      FROM <表或视图?gt;[, <表或视图?gt;]...
      [WHERE <条g表达?gt;]
      [GROUP BY <列名1> [HAVING <条g表达?gt;]]
      [ORDER BY <列名2> [ASC | DESC] ]
    整个SELECT 语句的含义是:Ҏ(gu)WHERE 子句的条件表辑ּ,从FROM 子句指定的基本表或视图中扑և满条g的元素组,再按SELECT 子句中的目标列表辑ּ选出元素l中的属性值Ş成结果表。如果有GROUP 子句Q则结果按<列名1>的D行分l,该属性列值相{的元素lؓ一个组Q每个组产生l果表中的一条记录。如果GROUP 子句带有HAVING 短语Q则只有满指定条g的组才予以输出。如果有ORDER 子句Q则l果表还要按<?>的值升序或降序排序。下面对SELECT 语句的常用Ş式D例说明?BR>
    ?-1Q查询所有员工的员工号和工资
use pangu
select emp_idQe_wage
from employee

q行l果如下Q?BR>emp_id e_wage
-------- ---------------------
10010001 8000.0000
......Q因数据太多故省略之Q?/P>

    ?-2Q查询表的全部数?/STRONG>
use pangu
select *
from employee

q行l果如下
emp_id e_name birthday job_level dept_id hire_date e_wage
-------- -------------------- --------------------------- --------- ------- ---------------------------
10010001 张三 1968-02-14 00:00:00.000 1 1001 1996-08-02 00:00:00.000 8000.0000
......

    ?-3Q查询工作别ؓ"2"的员工姓名,查询l果按部门分l?/STRONG>
use pangu
select e_nameQ?dept_id
from employee
where job_level = '2'
group by dept_id e_name

q行l果如下Q?BR>e_name dept_id
-------------------- -------
李四 1001
......

    以上是对SQL 语言的简单介l?Ҏ(gu)有接触过SQL 语言的读?看了q一节就入门了.我们在后面的章节中会用到更多cd的SQL 语句,Step By Step,(zhn)会成ؓSQL 高手?

  上一?/FONT>      目录      下一?/FONT>

]]>
数据库范?/title><link>http://www.aygfsteel.com/plpa/articles/2904.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 04:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2904.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2904.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2904.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2904.html</trackback:ping><description><![CDATA[构造数据库必须遵@一定的规则。在关系数据库中Q这U规则就是范式。范式是W合某一U别的关系模式的集合。关pL据库中的关系必须满一定的要求Q即满不同的范式。目前关pL据库有六U范式:W一范式Q?NFQ、第二范式(2NFQ、第三范式(3NFQ、第四范式(4NFQ、第五范式(5NFQ和W六范式Q?NFQ。满x低要求的范式是第一范式Q?NFQ。在W一范式的基上进一步满x多要求的UCؓW二范式Q?NFQ,其余范式以次cL。一般说来,数据库只需满W三范式Q?NFQ就行了。下面我们D例介l第一范式Q?NFQ、第二范式(2NFQ和W三范式Q?NFQ?BR><BR><span id="wmqeeuq" class=style2>3.4.1 W一范式Q?NFQ?/SPAN><BR>    在Q何一个关pL据库中,W一范式Q?NFQ是对关pL式的基本要求Q不满W一范式Q?NFQ的数据库就不是关系数据库?BR>    所谓第一范式Q?NFQ是指数据库表的每一列都是不可分割的基本数据,同一列中不能有多个|卛_体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间ؓ一对多关系。在W一范式Q?NFQ中表的每一行只包含一个实例的信息。例如,对于?-2 中的员工信息表,不能员工信息都攑֜一列中昄Q也不能其中的两列或多列在一列中昄Q员工信息表的每一行只表示一个员工的信息Q一个员工的信息在表中只出现一ơ。简而言之,W一范式是无重复的列? <P><span id="wmqeeuq" class=style2>3.4.2 W二范式Q?NFQ?/SPAN><BR>    W二范式Q?NFQ是在第一范式Q?NFQ的基础上徏立v来的Q即满W二范式Q?NFQ必d满W一范式Q?NFQ。第二范式(2NFQ要求数据库表中的每个实例或行必d以被惟一地区分。ؓ实现区分通常需要ؓ表加上一个列Q以存储各个实例的惟一标识。如<BR>?-2 员工信息表中加上了员工编Pemp_idQ列Q因为每个员工的员工~号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称Z关键字或主键、主码?BR>    W二范式Q?NFQ要求实体的属性完全依赖于d键字。所谓完全依赖是指不能存在仅依赖d键字一部分的属性,如果存在Q那么这个属性和d键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关pRؓ实现区分通常需要ؓ表加上一个列Q以存储各个实例的惟一标识。简而言之,W二范式是非主属性非部分依赖于主关键字?/P> <P><span id="wmqeeuq" class=style2>3.4.3 W三范式Q?NFQ?/SPAN><BR>    满W三范式Q?NFQ必d满W二范式Q?NFQ。简而言之,W三范式Q?NFQ要求一个数据库表中不包含已在其它表中已包含的非d键字信息。例如,存在一个部门信息表Q其中每个部门有部门~号Qdept_idQ、部门名U、部门简介等信息。那么在?-2<BR>的员工信息表中列出部门编号后׃能再部门名U、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NFQ也应该构徏它,否则׃有大量的数据冗余。简而言之,W三范式是属性不依赖于其它非d性?<BR></P><img src ="http://www.aygfsteel.com/plpa/aggbug/2904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 12:08 <a href="http://www.aygfsteel.com/plpa/articles/2904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据?http://www.aygfsteel.com/plpa/articles/2903.html噼里啪啦的世?/dc:creator>噼里啪啦的世?/author>Thu, 07 Apr 2005 04:07:00 GMThttp://www.aygfsteel.com/plpa/articles/2903.htmlhttp://www.aygfsteel.com/plpa/comments/2903.htmlhttp://www.aygfsteel.com/plpa/articles/2903.html#Feedback0http://www.aygfsteel.com/plpa/comments/commentRss/2903.htmlhttp://www.aygfsteel.com/plpa/services/trackbacks/2903.html
3.3.1 表(Table Q?BR>    数据库中的表与我们日常生zM使用的表格类|它也是由行(RowQ?和列QColumnQ组成的。图3-1 中黑底白字的部分UCؓ行,?-2 中黑底白字的部分UCؓ列。列由同cȝ信息l成Q每列又UCؓ一个字D,每列的标题称为字D名。行包括了若q列信息V一行数据称Z个或一条记录,它表达有一定意义的信息l合。一个数据库表由一条或多条记录l成Q没有记录的表称为空表。每个表中通常都有一个主关键字,用于惟一地确定一条记录,如图3-1 中的emp_id 列。图3-1 中的W一条记录,即第一行数据所表达的信息ؓQ编号ؓ10010001 的员工叫张三Q性别P出生?968 q? ?4 日,工作U别? Q工
作部门编号ؓ1001Q?受雇日期?996 q? ? 日,月工资是8000 元?BR>

3.3.2 索引QIndexQ?/SPAN>
    索引是根据指定的数据库表列徏立v来的序。它提供了快速访问数据的途径Qƈ且可监督表的数据Q其烦引所指向的列中的数据不重复。如?-3 所C?BR>

3.3.3 视图QViewQ?/SPAN>
    视图看上d表似乎一模一Ph一l命名的字段和数据项Q但它其实是一个虚拟的表,在数据库中ƈ不实际存。在视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户Ҏ(gu)据的讉KQƈ能简化数据的昄Q即通过视图只显C那些需要的数据信息。例如:
    从图3-2 中抽取字D员工编号emp_id、员工姓名e_name、员工部门编号dept_id、员
工工资e_wage l成一个员工工资信息表。如?-4 所C?BR>
    从图3-2 中抽取数据组成工作别(job_levelQؓ2 的员工信息表。如?-5 所C?BR>

3.3.4 图表QDiagramQ?/SPAN>
    在SQL Server 中图表其实就是数据库表之间的关系C意图。利用它可以~辑表与表之间的关系。如?-6 所C?BR>

3.3.5 ~省|DefaultQ?/SPAN>
    ~省值是当在表中创徏列或插入数据ӞҎ(gu)有指定其具体值的列或列数据项赋予事先讑֮好的倹{如?-7 所C?BR>

3.3.6 规则QRuleQ?/SPAN>
    规则是对数据库表中数据信息的限制。它限定的是表的列。如?-8 所C?BR>

3.3.7 触发器(TriggerQ?/SPAN>
    触发器是一个用户定义的SQL 事务命o的集合。当对一个表q行插入、更攏V删除时Q这l命令就会自动执行。如?-9 所C?BR>

3.3.8 存储q程QStored ProcedureQ?/SPAN>
    存储q程是ؓ完成特定的功能而汇集在一L一lSQL E序语句Q经~译后存储在数据库中的SQL E序。如?-10 所C?BR>

3.3.9 用户QUserQ?/SPAN>
    所谓用户就是有权限讉K数据库的人?BR>    数据库对象还有很?BR>

]]>
数据?/title><link>http://www.aygfsteel.com/plpa/articles/2902.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 04:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2902.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2902.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2902.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2902.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2902.html</trackback:ping><description><![CDATA[数据库这一概念提出后,先后出现了几U数据模型。其中基本的数据模型有三U:层次模型pȝ、网l模型系l、和关系模型pȝ?0 q代末期提出的关pL型具有数据结构简单灵zR易学易懂且h雄厚的数学基{特点,?0 q代开始流行,发展到现在已成ؓ数据库的标准。目前广泛用的数据库Y仉是基于关pL型的关系数据库管理系l?BR><BR><span id="wmqeeuq" class=style2>3.2.1 关系模型(RM 即Relational Model)</SPAN><BR>    关系模型把世界看作是由实?Entity)和联p?Relationship)构成的?BR>    所谓实体就是指现实世界中具有区分与其它事物的特征或属性ƈ与其它实体有联系的对象。在关系模型中实体通常是以表的形式来表现的。表的每一行描q实体的一个实例,表的每一列描q实体的一个特征或属性?BR>    所谓联pd是指实体之间的关p,卛_体之间的对应关系。联pd以分ZU:<BR>     ·一对一的联pR如Q一个h只有一U性别Q一个h→性别Z对一的联p;<BR>     ·一对多的联pR如Q相同性别的h有许多个Q性别→hZ对多的联p;<BR>     ·多对一的联pR如Q很多h有同一个性别Qh→性别为多对一的联pR?BR>    通过联系可以用一个实体的信息来查扑֏一个实体的信息?BR>    关系模型把所有的数据都组l到表中。表是由行和列组成的Q行表示数据的记录,列表C录中的域。表反映了现实世界中的事实和倹{?BR><span id="wmqeeuq" class=style2><BR>3.2.2 关系数据?RDB 即Relational Database)</SPAN><BR>    所谓关pL据库是Z关系模型的数据库?BR>    1、关pL据库理pȝ(RDBMS)<BR>     ·关系数据库管理系l就是管理关pL据库的计机软g?BR>    2、关键字(Key)<BR>    关键字是关系模型中的一个重要概念,它是逻辑l构Q不是数据库的物理部分?BR>     ·侯选关键字QCandidate KeyQ?BR>     如果一个属性集能惟一地标识表的一行而又不含多余的属性,那么q个属性集UCؓ侯选关键字?BR>     ·d键字QPrimary KeyQ?BR>     d键字是被挑选出来,作表的行的惟一标识的侯选关键字。一个表只有一个主关键字。主关键字又可以UCؓ主键?BR>     ·公共关键字(Common KeyQ?BR>     在关pL据库中,关系之间的联pL通过相容或相同的属性或属性组来表C的。如果两个关pMh相容或相同的属性或属性组Q那么这个属性或属性组被称两个关系的公共关键字?BR>     ·外关键字QForeign KeyQ?BR>     如果公共关键字在一个关pM是主关键字,那么q个公共关键字被UCؓ另一个关pȝ外关键字。由此可见,外关键字表示了两个关pM间的联系。以另一个关pȝ外关键字作主关键字的表被UCؓ主表Q具有此外关键字的表被称Z表的从表。外关键字又UC外键?BR><img src ="http://www.aygfsteel.com/plpa/aggbug/2902.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 12:06 <a href="http://www.aygfsteel.com/plpa/articles/2902.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库快速学习(1Q?/title><link>http://www.aygfsteel.com/plpa/articles/2901.html</link><dc:creator>噼里啪啦的世?/dc:creator><author>噼里啪啦的世?/author><pubDate>Thu, 07 Apr 2005 04:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/plpa/articles/2901.html</guid><wfw:comment>http://www.aygfsteel.com/plpa/comments/2901.html</wfw:comment><comments>http://www.aygfsteel.com/plpa/articles/2901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/plpa/comments/commentRss/2901.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/plpa/services/trackbacks/2901.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="BORDER-BOTTOM: #ff99ff 1px dashed" align=middle height=50><STRONG class=f16>数据?基本概念</STRONG></TD></TR> <TR> <TD align=middle height=40>作者:unknown 更新旉Q?005-03-17 </TD> <TD style="BORDER-RIGHT: #ff99ff 1px solid" vAlign=top rowSpan=6> </TD></TR> <TR> <TD height=40> </TD></TR> <TR> <TD> <TABLE class=pagefont cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <P><BR><span id="wmqeeuq" class=style2>3.1.1 数据(Data)</SPAN><BR>    所谓数据就是描qC物的W号.在我们的日常生活?数据无所?在数字、文字、图表、图象、声音等都是数据。h们通过数据来认识世界,交流信息?BR><BR><span id="wmqeeuq" class=style2>3.1.2 数据?DB 即Database)</SPAN><BR>    数据库,֐思义Q就是数据存攄地方。在计算ZQ数据库是数据和数据库对象的集合。所谓数据库对象是指?Table)、视?View)、存储过E?Stored Procedure)、触发器(Trigger) {。这些数据库对象在以后的章节中介绍?BR><BR><span id="wmqeeuq" class=style2>3.1.3 数据库管理系l?DBMS)</SPAN><BR>    数据库管理系l是用于理数据的计机软g。数据库理pȝ使用戯方便地定义和操纵数据Q维护数据的安全性和完整性,以及q行多用户下的ƈ发控制和恢复数据库?BR><BR><span id="wmqeeuq" class=style2>3.1.4 数据库系l?DBS 即Database System)</SPAN><BR>    数据库系l狭义地讲是由数据库、数据库理pȝ和用h成、广义地讲是p机g、操作系l、数据库理pȝ以及在它支持下徏立v来的数据库、应用程序、用户和l护人员l成的一个整体?BR></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.aygfsteel.com/plpa/aggbug/2901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/plpa/" target="_blank">噼里啪啦的世?/a> 2005-04-07 12:00 <a href="http://www.aygfsteel.com/plpa/articles/2901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">«</a>| <a href="http://" target="_blank">ͩ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">书</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǭ</a>| <a href="http://" target="_blank">ػ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">SHOW</a>| <a href="http://" target="_blank">ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank">־</a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȷɽ</a>| <a href="http://" target="_blank">ʩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˺</a>| <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>