??xml version="1.0" encoding="utf-8" standalone="yes"?>亚在线播放中文视频,中文字幕一区二区三区四区五区 ,中文字幕第一页久久http://www.aygfsteel.com/Alpha/category/1965.html多少春秋风雨?多少崎岖不变?/description>zh-cnSat, 16 Apr 2011 06:47:13 GMTSat, 16 Apr 2011 06:47:13 GMT60mysql 5.0存储q程学习ȝhttp://www.aygfsteel.com/Alpha/articles/348389.htmlAlphaAlphaSat, 16 Apr 2011 01:37:00 GMThttp://www.aygfsteel.com/Alpha/articles/348389.htmlhttp://www.aygfsteel.com/Alpha/comments/348389.htmlhttp://www.aygfsteel.com/Alpha/articles/348389.html#Feedback0http://www.aygfsteel.com/Alpha/comments/commentRss/348389.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/348389.html一.创徏存储q程

1.基本语法Q?

 

create procedure sp_name()
begin
………
end

2.参数传?/p>

?调用存储q程

1.基本语法Qcall sp_name()
注意Q存储过E名U后面必d括号Q哪怕该存储q程没有参数传?/div>

?删除存储q程

1.基本语法Q?br /> drop procedure sp_name//
2.注意事项
(1)不能在一个存储过E中删除另一个存储过E,只能调用另一个存储过E?/div>

?区块Q条Ӟ循环

1.区块定义Q常?br /> begin
……
end;
也可以给区块起别名,如:
lable:begin
………..
end lable;
可以用leave lable;跛_区块Q执行区块以后的代码
2.条g语句

 

if 条g then
statement
else
statement
end if;

3.循环语句
(1).while循环

[label:] WHILE expression DO

statements

END WHILE [label] ;

 

(2).loop循环

 

[label:] LOOP

statements

END LOOP [label];

 

(3).repeat until循环

 

[label:] REPEAT

statements

UNTIL expression

END REPEAT [label] ;

 

?其他常用命o

1.show procedure status
昄数据库中所有存储的存储q程基本信息Q包括所属数据库Q存储过E名Uͼ创徏旉{?br /> 2.show create procedure sp_name
昄某一个存储过E的详细信息

 

mysql存储q程中要用到的运符

mysql存储q程学习ȝQ操作符

术q算W?/strong>

+     ?nbsp;  SET var1=2+2;       4
-     ?nbsp;  SET var2=3-2;       1
*     ?nbsp;  SET var3=3*2;       6
/     ?nbsp;  SET var4=10/3;      3.3333
DIV   整除 SET var5=10 DIV 3;  3
%     取模 SET var6=10%3 ;     1

比较q算W?/strong>

>            大于 1>2 False
<            于 2<1 False
<=           于{于 2<=2 True
>=           大于{于 3>=2 True
BETWEEN      在两g?nbsp;5 BETWEEN 1 AND 10 True
NOT BETWEEN  不在两g?nbsp;5 NOT BETWEEN 1 AND 10 False
IN           在集合中 5 IN (1,2,3,4) False
NOT IN       不在集合?nbsp;5 NOT IN (1,2,3,4) True
=            {于 2=3 False
<>, !=       不等?nbsp;2<>3 False
<=>          严格比较两个NULL值是否相{?nbsp;NULL<=>NULL True
LIKE         单模式匹?nbsp;"Guy Harrison" LIKE "Guy%" True
REGEXP       正则式匹?nbsp;"Guy Harrison" REGEXP "[Gg]reg" False
IS NULL      为空 0 IS NULL False
IS NOT NULL  不ؓI?nbsp;0 IS NOT NULL True

逻辑q算W?/strong>

?/strong>(AND)






 

 

AND

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

NULL

NULL

NULL

NULL

NULL

?OR)

 

 

OR

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

NULL

NULL

TRUE

NULL

NULL

异或(XOR)

 

 

XOR

TRUE

FALSE

NULL

TRUE

FALSE

TRUE

NULL

FALSE

TRUE

FALSE

NULL

NULL

NULL

NULL

NULL

位运符

|   位或
&   位与
<<  左移?br /> >>  右移?br /> ~   位非(单目q算Q按位取?

 

mysq存储q程中常用的函数Q字W串cd操作Q数学类Q日期时间类?/p>

mysql存储q程基本函数

一.字符串类 

CHARSET(str) //q回字串字符?br /> CONCAT (string2  [,... ]) //q接字串
INSTR (string ,substring ) //q回substring首次在string中出现的位置,不存在返?
LCASE (string2 ) //转换成小?br /> LEFT (string2 ,length ) //从string2中的左边起取length个字W?br /> LENGTH (string ) //string长度
LOAD_FILE (file_name ) //从文件读取内?br /> LOCATE (substring , string  [,start_position ] ) 同INSTR,但可指定开始位|?br /> LPAD (string2 ,length ,pad ) //重复用pad加在string开?直到字串长度为length
LTRIM (string2 ) //去除前端I格
REPEAT (string2 ,count ) //重复count?br /> REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str
RPAD (string2 ,length ,pad) //在str后用pad补充,直到长度为length
RTRIM (string2 ) //去除后端I格
STRCMP (string1 ,string2 ) //逐字W比较两字串大小,
SUBSTRING (str , position  [,length ]) //从str的position开?取length个字W?
注:mysql中处理字W串Ӟ默认W一个字W下标ؓ1Q即参数position必须大于{于1

 

mysql> select substring(’abcd’,0,2);
+——————?#8211;+
| substring(’abcd’,0,2) |
+——————?#8211;+
|                       |
+——————?#8211;+
1 row in set (0.00 sec)

 

mysql> select substring(’abcd’,1,2);
+——————?#8211;+
| substring(’abcd’,1,2) |
+——————?#8211;+
| ab                    |
+——————?#8211;+
1 row in set (0.02 sec)

TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字W?br /> UCASE (string2 ) //转换成大?br /> RIGHT(string2,length) //取string2最后length个字W?br /> SPACE(count) //生成count个空?nbsp;

?数学c?/span>

ABS (number2 ) //l对?br /> BIN (decimal_number ) //十进制{二进?br /> CEILING (number2 ) //向上取整
CONV(number2,from_base,to_base) //q制转换
FLOOR (number2 ) //向下取整
FORMAT (number,decimal_places ) //保留数位数
HEX (DecimalNumber ) //转十六进?br /> 注:HEX()中可传入字符Ԍ则返回其ASC-11码,如HEX(’DEF’)q回4142143
也可以传入十q制整数Q返回其十六q制~码Q如HEX(25)q回19
LEAST (number , number2  [,..]) //求最?br /> MOD (numerator ,denominator ) //求余
POWER (number ,power ) //求指?br /> RAND([seed]) //随机?br /> ROUND (number  [,decimals ]) //四舍五入,decimals为小C数]

 

注:q回cdq均ؓ整数Q如Q?br /> (1)默认变ؓ整Ş?br /> mysql> select round(1.23);
+———?+
| round(1.23) |
+———?+
|           1 |
+———?+
1 row in set (0.00 sec)

 

mysql> select round(1.56);
+———?+
| round(1.56) |
+———?+
|           2 |
+———?+
1 row in set (0.00 sec)

(2)可以讑֮数位数Q返回Q点型数据
mysql> select round(1.567,2);
+————?+
| round(1.567,2) |
+————?+
|           1.57 |
+————?+
1 row in set (0.00 sec)

SIGN (number2 ) //q回W号,正负?
SQRT(number2) //开qx

 
?日期旉c?/span>
 

ADDTIME (date2 ,time_interval ) //time_interval加到date2
CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //转换时区
CURRENT_DATE (  ) //当前日期
CURRENT_TIME (  ) //当前旉
CURRENT_TIMESTAMP (  ) //当前旉?br /> DATE (datetime ) //q回datetime的日期部?br /> DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或旉
DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式昄datetime
DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减M个时?br /> DATEDIFF (date1 ,date2 ) //两个日期?br /> DAY (date ) //q回日期的天
DAYNAME (date ) //英文星期
DAYOFWEEK (date ) //星期(1-7) ,1为星期天
DAYOFYEAR (date ) //一q中的第几天
EXTRACT (interval_name  FROM date ) //从date中提取日期的指定部分
MAKEDATE (year ,day ) //l出q及q中的第几天,生成日期?br /> MAKETIME (hour ,minute ,second ) //生成旉?br /> MONTHNAME (date ) //英文月䆾?br /> NOW (  ) //当前旉
SEC_TO_TIME (seconds ) //U数转成旉
STR_TO_DATE (string ,format ) //字串转成旉,以format格式昄
TIMEDIFF (datetime1 ,datetime2 ) //两个旉?br /> TIME_TO_SEC (time ) //旉转秒数]
WEEK (date_time [,start_of_week ]) //W几?br /> YEAR (datetime ) //q䆾
DAYOFMONTH(datetime) //月的W几?br /> HOUR(datetime) //时
LAST_DAY(date) //date的月的最后日?br /> MICROSECOND(datetime) //微秒
MONTH(datetime) //?br /> MINUTE(datetime) //?/div>

 

?可用在INTERVAL中的cd
DAY ,DAY_HOUR ,DAY_MINUTE ,DAY_SECOND ,HOUR ,HOUR_MINUTE ,HOUR_SECOND ,MINUTE ,MINUTE_SECOND,MONTH ,SECOND ,YEAR 

 



Alpha 2011-04-16 09:37 发表评论
]]>SQL SERVER 与ACCESS、EXCEL的数据{?/title><link>http://www.aygfsteel.com/Alpha/articles/9119.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 03 Aug 2005 04:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/articles/9119.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/9119.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/articles/9119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/9119.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/9119.html</trackback:ping><description><![CDATA[<SPAN id=dgfiList__ctl7_Body>SQL SERVER 与ACCESS、EXCEL的数据{?nbsp; <BR>熟悉SQL SERVER 2000的数据库理员都知道Q其DTS可以q行数据的导入导出,其实Q我们也可以使用Transact-SQL语句q行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数Q关于函数的详细说明Q请参考SQL联机帮助。利用下q方法,可以十分Ҏ地实现SQL SERVER、ACCESS、EXCEL数据转换Q详l说明如下: <BR><BR>一、SQL SERVER 和ACCESS的数据导入导?<BR>常规的数据导入导出: <BR>使用DTS向导q移你的Access数据到SQL ServerQ你可以使用q些步骤:  <BR>  ?在SQL SERVER企业理器中的ToolsQ工P菜单上,选择Data Transformation  <BR>  ?ServicesQ数据{换服务)Q然后选择  czdImport DataQ导入数据)?nbsp; <BR>  ?在Choose a Data SourceQ选择数据源)对话框中选择Microsoft Access as the SourceQ然后键入你?mdb数据?.mdb文g扩展?的文件名或通过览L该文件?nbsp; <BR>  ?在Choose a DestinationQ选择目标Q对话框中,选择Microsoft OLE DB Prov ider for SQL ServerQ选择数据库服务器Q然后单d要的验证方式?nbsp; <BR>  ?在Specify Table CopyQ指定表格复Ӟ或QueryQ查询)对话框中Q单击Copy tablesQ复制表|?nbsp; <BR>    ?在Select Source TablesQ选择源表|对话框中Q单击Select AllQ全部选定Q。下一步,完成?<BR><BR>Transact-SQL语句q行导入导出Q?<BR>1.在SQL SERVER里查询access数据: <BR><BR>SELECT *  <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名 <BR><BR>2.access导入SQL server <BR>在SQL SERVER 里运? <BR>SELECT * <BR>INTO newtable <BR>FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',  <BR>      'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名 <BR><BR>3.SQL SERVER表里的数据插入到Access表中 <BR>在SQL SERVER 里运行: <BR>insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>  'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名  <BR>(列名1,列名2) <BR>select 列名1,列名2  from  sql?<BR><BR>实例Q?<BR>insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0',  <BR>   'C:\db.mdb';'admin';'', Test)  <BR>select id,name from Test <BR><BR><BR>INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名) <BR>SELECT * <BR>FROM sqltablename <BR><BR>二、SQL SERVER 和EXCEL的数据导入导?<BR><BR>1、在SQL SERVER里查询Excel数据: <BR><BR>SELECT *  <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] <BR><BR>下面是个查询的示例,它通过用于 Jet ?nbsp;OLE DB 提供E序查询 Excel 电子表格?<BR>SELECT *  <BR>FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', <BR>  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions <BR><BR>2、将Excel的数据导入SQL server : <BR>SELECT * into newtable <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>  'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] <BR><BR>实例: <BR>SELECT * into newtable <BR>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions <BR><BR>3、将SQL SERVER中查询到的数据导成一个Excel文g <BR>T-SQL代码Q?<BR>EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""' <BR>参数QS 是SQL服务器名QU是用PP是密?<BR>说明Q还可以导出文本文g{多U格?<BR><BR>实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"' <BR><BR> EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword' <BR><BR>在VB6中应用ADO导出EXCEL文g代码Q?nbsp; <BR>Dim cn  As New ADODB.Connection <BR>cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;" <BR>cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'" <BR><BR><BR>4、在SQL SERVER里往Excel插入数据: <BR><BR>insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', <BR>'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3) <BR><BR>T-SQL代码Q?<BR>INSERT INTO   <BR> OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',   <BR> 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]   <BR> (bestand, produkt) VALUES (20, 'Test')   <BR><BR>ȝQ利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软g中的数据q行转换Qؓ我们提供了极大方便! <BR><BR>参考: <BR>http://www.itrain.de/knowhow/sql/transfer/adhoc/ <BR><BR><BR>原文:<IMG align=absMiddle border=0 src="http://www.chinaaspx.com/comm/dotnetbbs/pic/url.gif"><A target=_blank>http://www.cnblogs.com/anders/archive/2004/07/27/27653.aspx</A></SPAN> <BR><BR><img src ="http://www.aygfsteel.com/Alpha/aggbug/9119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2005-08-03 12:41 <a href="http://www.aygfsteel.com/Alpha/articles/9119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>-QSQL语句集锦Q?http://www.aygfsteel.com/Alpha/articles/7036.htmlAlphaAlphaSat, 02 Jul 2005 08:04:00 GMThttp://www.aygfsteel.com/Alpha/articles/7036.htmlhttp://www.aygfsteel.com/Alpha/comments/7036.htmlhttp://www.aygfsteel.com/Alpha/articles/7036.html#Feedback1http://www.aygfsteel.com/Alpha/comments/commentRss/7036.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/7036.html
  -QSQL语句集锦Q?


--??-           --??-

--数据操作
select             --从数据库表中索数据行和列
insert             --向数据库表添加新数据?BR>delete             --从数据库表中删除数据?BR>update             --更新数据库表中的数据

--数据定义
create table       --创徏一个数据库?BR>drop table         --从数据库中删除表
alter table        --修改数据库表l构
create view        --创徏一个视?BR>drop view          --从数据库中删除视?BR>create index       --为数据库表创Z个烦?BR>drop index         --从数据库中删除烦?BR>create procedure   --创徏一个存储过E?BR>drop procedure     --从数据库中删除存储过E?BR>create trigger     --创徏一个触发器
drop trigger       --从数据库中删除触发器
create schema      --向数据库d一个新模式
drop schema        --从数据库中删除一个模?BR>create domain      --创徏一个数据值域
alter domain       --改变域定?BR>drop domain        --从数据库中删除一个域

--数据控制
grant              --授予用户讉K权限
deny               --拒绝用户讉K
revoke             --解除用户讉K权限

--事务控制
commit             --l束当前事务
rollback           --中止当前事务
set transaction    --定义当前事务数据讉K特征

--E序化sql
declare            --为查询设定游?BR>explan             --为查询描q数据访问计?BR>open               --索查询结果打开一个游?BR>fetch              --索一行查询结?BR>close              --关闭游标
prepare            --为动态执行准备sql 语句
execute            --动态地执行sql 语句
describe           --描述准备好的查询

---局部变?BR>declare @id char(10)
--set @id = '10010001'
select @id = '10010001'

---全局变量
---必须以@@开?/P>

--IF ELSE
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'

--CASE
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

--while continue break
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

--WAITFOR--
--?{待1 时2 分零3 U后才执行SELECT 语句
waitfor delay ?1:02:03?BR>select * from employee
--?{到晚上11 炚w8 分后才执行SELECT 语句
waitfor time ?3:08:00?BR>select * from employee


***SELECT***

   select *(列名) from table_name(表名) where column_name operator value
   ex:(宿主)
  select * from stock_information where stockid   = str(nid)
     stockname = 'str_name'
     stockname like '% find this %'
     stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
     stockname like '[^F-M]%'   --------- (^排除指定范围)
                                --------- 只能在用like关键字的where子句中用通配W?
     or stockpath = 'stock_path'
     or stocknumber < 1000
     and stockindex = 24
     not stock*** = 'man'
     stocknumber between 20 and 100
     stocknumber in(10,20,30)
     order by stockid desc(asc) --------- 排序Qdesc-降序Qasc-升序
     order by 1,2               --------- by列号
     stockname = (select stockname from stock_information  where stockid  = 4)
                                --------- 子查?BR>                                --------- 除非能确保内层select只返回一个行的|
                                --------- 否则应在外层where子句中用一个in限定W?BR>  select distinct column_name form table_name
                                --------- distinct指定索独有的列|不重?BR>  select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
  select stockname , "stocknumber" = count(*) from table_name group by stockname
                                --------- group by 表按行分组,指定列中有相同的?BR>          having count(*) = 2   ---------  having选定指定的组
       
  select *
  from table1, table2                 
  where table1.id *= table2.id  -------- 左外部连接,table1中有的而table2中没有得以null表示
     table1.id =* table2.id     -------- 叛_部连?


  select stockname from table1
  union [all]                   ---------  union合ƈ查询l果集,all-保留重复?BR>  select stockname from table2

 

***insert***


  insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
              value (select Stockname , Stocknumber from Stock_table2)
                         -------- value为select语句


***update***

  update table_name set Stockname = "xxx" [where Stockid = 3]
         Stockname = default
         Stockname = null
         Stocknumber = Stockname + 4
 

***delete***

  delete from table_name where Stockid = 3
  truncate table_name            --------- 删除表中所有行Q仍保持表的完整?BR>  drop table table_name          --------- 完全删除?/P>

***alter table***                --------- 修改数据库表l构

  alter table database.owner.table_name add column_name char(2) null .....
  sp_help table_name             --------- 昄表已有特?BR>  create table table_name (name char(20), age smallint, lname varchar(30))
  insert into table_name select .........
                                 --------- 实现删除列的ҎQ创建新表)
  alter table table_name drop constraint Stockname_default
                                 --------- 删除Stockname的defaultU束

   
***function(/*常用函数*/)***


----l计函数----
AVG    --求^均?BR>COUNT   --l计数目
MAX    --求最大?BR>MIN    --求最?BR>SUM    --求和


--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id


--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
  from employee)


--stdev()
--stdev()函数q回表达式中所有数据的标准?/P>


--stdevp()
--stdevp()函数q回M标准?/P>

--var()
--var()函数q回表达式中所有值的l计变异?/P>


--varp()
--varp()函数q回M变异?/P>

----术函数----

/***三角函数***/
sin(float_expression) --q回以弧度表C的角的正u
cos(float_expression) --q回以弧度表C的角的余u
tan(float_expression) --q回以弧度表C的角的正切
cot(float_expression) --q回以弧度表C的角的余切

/***反三角函?**/
asin(float_expression) --q回正u是float 值的以弧度表C的?BR>acos(float_expression) --q回余u是float 值的以弧度表C的?BR>atan(float_expression) --q回正切是float 值的以弧度表C的?BR>atan2(float_expression1,float_expression2)
        --q回正切是float_expression1 /float_expres-sion2的以弧度表示的角
degrees(numeric_expression)
        --把弧度{换ؓ角度q回与表辑ּ相同的数据类型可?BR>        --integer/money/real/float cd
radians(numeric_expression)
        --把角度{换ؓ弧度q回与表辑ּ相同的数据类型可?BR>        --integer/money/real/float cd
exp(float_expression)  --q回表达式的指数?BR>log(float_expression)  --q回表达式的自然Ҏ?BR>log10(float_expression)--q回表达式的?0 为底的对数?BR>sqrt(float_expression) --q回表达式的qx?/P>

/***取近似值函?**/
ceiling(numeric_expression) 
        --q回>=表达式的最整数返回的数据cd与表辑ּ相同可ؓ
        --integer/money/real/float cd
floor(numeric_expression)   
        --q回<=表达式的最整数返回的数据cd与表辑ּ相同可ؓ
        --integer/money/real/float cd
round(numeric_expression)   
        --q回以integer_expression 为精度的四舍五入D回的数据
        --cd与表辑ּ相同可ؓinteger/money/real/float cd
abs(numeric_expression)     
        --q回表达式的l对D回的数据cd与表辑ּ相同可ؓ
        --integer/money/real/float cd
sign(numeric_expression)    
        --试参数的正负号q回0 零? 正数?1 负数q回的数据类?BR>        --与表辑ּ相同可ؓinteger/money/real/float cd

pi()    --q回gؓπ ?.1415926535897936
rand([integer_expression])  
        --用Q选的[integer_expression]做种子值得?-1 间的随机点?/P>


----字符串函?---
ascii()         --函数q回字符表达式最左端字符的ascii 码?BR>char()          --函数用于ascii 码{换ؓ字符
                --如果没有输入0 ~ 255 之间的ascii 码值char 函数会返回一个null ?BR>lower()         --函数把字W串全部转换为小?BR>upper()         --函数把字W串全部转换为大?BR>str()           --函数把数值型数据转换为字W型数据
ltrim()         --函数把字W串头部的空格去?BR>rtrim()         --函数把字W串N的空格去?BR>left(),right(),substring() 
                --函数q回部分字符?BR>charindex(),patindex() 
                --函数q回字符串中某个指定的子串出现的开始位|?BR>soundex()       --函数q回一个四位字W码
                --soundex函数可用来查扑֣音相似的字符?BR>  --但soundex函数Ҏ字和汉字均只q回0 ?nbsp;   
difference()   
                --函数q回由soundex 函数q回的两个字W表辑ּ的值的差异
                --0 两个soundex 函数q回值的W一个字W不?BR>                --1 两个soundex 函数q回值的W一个字W相?BR>                --2 两个soundex 函数q回值的W一二个字符相同
                --3 两个soundex 函数q回值的W一二三个字W相?BR>                --4 两个soundex 函数q回值完全相?BR>                                      
quotename()     --函数q回被特定字W括h的字W串

/*select quotename('abc', '{') quotename('abc')
q行l果如下
----------------------------------
{abc} [abc]*/


replicate()     --函数q回一个重复character_expression 指定ơ数的字W串
/*select replicate('abc', 3) replicate( 'abc', -2)
q行l果如下
----------- -----------
abcabcabc NULL*/
 

reverse()       --函数指定的字符串的字符排列序颠?BR>replace()       --函数q回被替换了指定子串的字W串
/*select replace('abc123g', '123', 'def')
q行l果如下
----------- -----------
abcdefg*/


space()         --函数q回一个有指定长度的空白字W串
stuff()         --函数用另一子串替换字符串指定位|长度的子串


----数据cd转换函数----
cast() 函数语法如下
cast() (<expression> as <data_ type>[ length ])
convert() 函数语法如下
convert() (<data_ type>[ length ], <expression> [, style])

select cast(100+99 as char) convert(varchar(12), getdate())
q行l果如下
------------------------------------------
199   Jan 15 2000


----日期函数----
day()       --函数q回date_expression 中的日期?BR>month()     --函数q回date_expression 中的月䆾?BR>year()      --函数q回date_expression 中的q䆾?BR>dateadd(<datepart> ,<number> ,<date>)
            --函数q回指定日期date 加上指定的额外日期间隔number 产生的新日期
datediff(<datepart> ,<number> ,<date>)
            --函数q回两个指定日期在datepart 斚w的不同之?BR>datename(<datepart> , <date>) 
            --函数以字W串的Ş式返回日期的指定部分
datepart(<datepart> , <date>) 
            --函数以整数值的形式q回日期的指定部?BR>getdate()   --函数以datetime 的缺省格式返回系l当前的日期和时?/P>


----pȝ函数----
app_name()      --函数q回当前执行的应用程序的名称
coalesce()      --函数q回众多表达式中W一个非null 表达式的?BR>col_length(<'table_name'>, <'column_name'>)
                --函数q回表中指定字段的长度?BR>col_name(<table_id>, <column_id>)  
                --函数q回表中指定字段的名U即列名
datalength()    --函数q回数据表达式的数据的实际长?BR>db_id(['database_name'])
                --函数q回数据库的~号
db_name(database_id) 
                --函数q回数据库的名称
host_id()       --函数q回服务器端计算机的名称
host_name()     --函数q回服务器端计算机的名称
identity(<data_type>[, seed increment]) [as column_name])
                --identity() 函数只在select into 语句?BR>  --使用用于插入一个identity column列到新表?/P>

/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/

isdate()        --函数判断所l定的表辑ּ是否为合理日?BR>isnull(<check_expression>, <replacement_value>)
                --函数表辑ּ中的null 值用指定值替?BR>isnumeric()     --函数判断所l定的表辑ּ是否为合理的数?BR>newid()         --函数q回一个uniqueidentifier cd的数?BR>nullif(<expression1>, <expression2>)
                --nullif 函数在expression1 与expression2 相等?BR>  --q回null D不相{时则返回expression1 的?/P>


====_֦SQL语句====

说明Q复制表(只复制结?源表名:a 新表名:b)
SQL: select * into b from a where 1<>1

说明Q拷贝表(拯数据,源表名:a 目标表名Qb)
SQL: insert into b(a, b, c) select d,e,f from b;

说明Q显C文章、提交h和最后回复时?BR>SQL: select a.title,a.username,b.adddate
     from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明Q外q接查询(表名1Qa 表名2Qb)
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明Q日E安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f开始时?getdate())>5

说明Q两张关联表Q删除主表中已经在副表中没有的信?BR>SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )


 



Alpha 2005-07-02 16:04 发表评论
]]>
վ֩ģ壺 | | | ʡ| ̩| | | | | | Զ| | ̨| | | | ̩| | | | | | | е| | ؿ˹| | | | Ӱ| ˳| ˮ| Ͻ| Զ| ƽ| | | մ| ͭ| ɽ| |