Oracle SQLServer函数命令大全.docx

上传人:b****8 文档编号:11107301 上传时间:2023-02-25 格式:DOCX 页数:23 大小:23.38KB
下载 相关 举报
Oracle SQLServer函数命令大全.docx_第1页
第1页 / 共23页
Oracle SQLServer函数命令大全.docx_第2页
第2页 / 共23页
Oracle SQLServer函数命令大全.docx_第3页
第3页 / 共23页
Oracle SQLServer函数命令大全.docx_第4页
第4页 / 共23页
Oracle SQLServer函数命令大全.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Oracle SQLServer函数命令大全.docx

《Oracle SQLServer函数命令大全.docx》由会员分享,可在线阅读,更多相关《Oracle SQLServer函数命令大全.docx(23页珍藏版)》请在冰豆网上搜索。

Oracle SQLServer函数命令大全.docx

OracleSQLServer函数命令大全

OracleSQLServer函数命令大全

S:

selectabs(-1)value

O:

selectabs(-1)valuefromdual

2.取整(大)

S:

selectceiling(-1.001)value

O:

selectceil(-1.001)valuefromdual

3.取整(小)

S:

selectfloor(-1.001)value

O:

selectfloor(-1.001)valuefromdual

4.取整(截取)

S:

selectcast(-1.002asint)value

O:

selecttrunc(-1.002)valuefromdual

5.四舍五入

S:

selectround(1.23456,4)value1.23460

O:

selectround(1.23456,4)valuefromdual1.2346

6.e为底的幂

S:

selectExp

(1)value2.90451

O:

selectExp

(1)valuefromdual2.

7.取e为底的对数

S:

selectlog(2.90451)value1

O:

selectln(2.90451)valuefromdual;1

8.取10为底对数

S:

selectlog10(10)value1

O:

selectlog(10,10)valuefromdual;1

9.取平方

S:

selectSQUARE(4)value16

O:

selectpower(4,2)valuefromdual16

10.取平方根

S:

selectSQRT(4)value2

O:

selectSQRT(4)valuefromdual2

11.求任意数为底的幂

S:

selectpower(3,4)value81

O:

selectpower(3,4)valuefromdual81

12.取随机数

S:

selectrand()value

O:

selectsys.dbms_random.value(0,1)valuefromdual;

13.取符号

S:

selectsign(-8)value-1

O:

selectsign(-8)valuefromdual-1

----------数学函数

14.圆周率

S:

SELECTPI()value3.97931

O:

不知道

15.sin,cos,tan参数都以弧度为单位

例如:

selectsin(PI()/2)value得到1(SQLServer)

16.Asin,Acos,Atan,Atan2返回弧度

17.弧度角度互换(SQLServer,Oracle不知道)

DEGREES:

弧度-〉角度

RADIANS:

角度-〉弧度

---------数值间比较

18.求集合最大值

S:

selectmax(value)valuefrom

(select1value

union

select-2value

union

select4value

union

select3value)a

O:

selectgreatest(1,-2,4,3)valuefromdual

19.求集合最小值

S:

selectmin(value)valuefrom

(select1value

union

select-2value

union

select4value

union

select3value)a

O:

selectleast(1,-2,4,3)valuefromdual

20.如何处理null值(F2中的null以10代替)

S:

selectF1,IsNull(F2,10)valuefromTbl

O:

selectF1,nvl(F2,10)valuefromTbl

--------数值间比较-------------------

21.求ASCII码

S:

selectascii('a')value

O:

selectascii('a')valuefromdual

22.通过数值求对应的字符S:

selectchar(97)value

O:

selectchr(97)valuefromdual

23.连接

S:

select'11'+'22'+'33'value

O:

selectCONCAT('11','22')||33valuefromdual

23.子串位置--返回3

S:

selectCHARINDEX('s','sdsq',2)value

O:

selectINSTR('sdsq','s',2)valuefromdual

23.模糊子串的位置--返回2,参数去掉中间%则返回7

S:

selectpatindex('%d%q%','sdsfasdqe')value

O:

oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?

BR>  selectINSTR('sdsfasdqe','sd',1,2)valuefromdual返回6

24.求子串

S:

selectsubstring('abcd',2,2)value

O:

selectsubstr('abcd',2,2)valuefromdual

25.子串代替返回aijklmnef

S:

SELECTSTUFF('abcdef',2,3,'ijklmn')value

O:

SELECTReplace('abcdef','bcd','ijklmn')valuefromdual

26.子串全部替换

S:

没发现

O:

selectTranslate('fasdbfasegas','fa','我')valuefromdual

27.长度

S:

len,datalength

O:

length

28.大小写转换lower,upper

29.单词首字母大写

S:

没发现

O:

selectINITCAP('abcddsafdf')valuefromdual

30.左补空格(LPAD的第一个参数为空格则同space函数)

S:

selectspace(10)+'abcd'value

O:

selectLPAD('abcd',14)valuefromdual

31.右补空格(RPAD的第一个参数为空格则同space函数)

S:

select'abcd'+space(10)value

O:

selectRPAD('abcd',14)valuefromdual

32.删除空格

S:

ltrim,rtrim

O:

ltrim,rtrim,trim

33.重复字符串

S:

selectREPLICATE('abcd',2)value

O:

没发现

34.发音相似性比较(这两个单词返回值一样,发音相同)

S:

SELECTSOUNDEX('Smith'),SOUNDEX('Smythe')

O:

SELECTSOUNDEX('Smith'),SOUNDEX('Smythe')fromdual

SQLServer中用SELECTDIFFERENCE('Smithers','Smythers')比较soundex的差

返回0-4,4为同音,1最高

--------------日期函数

35.系统时间

S:

selectgetdate()value

O:

selectsysdatevaluefromdual

36.前后几日

直接与整数相加减

37.求日期

S:

selectconvert(char(10),getdate(),20)value

O:

selecttrunc(sysdate)valuefromdual

selectto_char(sysdate,'yyyy-mm-dd')valuefromdual

38.求时间

S:

selectconvert(char(8),getdate(),108)value

O:

selectto_char(sysdate,'hh24:

mm:

ss')valuefromdual

39.取日期时间的其他部分

S:

DATEPART和DATENAME函数(第一个参数决定)

O:

to_char函数第二个参数决定

参数----------下表需要补充---------------

yearyy,yyyy

quarterqq,q(季度)

monthmm,m(mO无效)

dayofyeardy,y(O表星期)

daydd,d(dO无效)

weekwk,ww(wkO无效)

weekdaydw(O不清楚)

Hourhh,hh12,hh24(hh12,hh24S无效)

minutemi,n(nO无效)

secondss,s(sO无效)

millisecondms(O无效)

----------------------------------------------

40.当月最后一天

S:

不知道

O:

selectLAST_DAY(sysdate)valuefromdual

41.本星期的某一天(比如星期日)

S:

不知道

O:

SELECTNext_day(sysdate,7)vauleFROMDUAL;

42.字符串转时间

S:

可以直接转或者selectcast('2004-09-08'asdatetime)value

O:

SELECTTo_date('2004-01-0522:

09:

38','yyyy-mm-ddhh24-mi-ss')vauleFROMDUAL;

43.求两日期某一部分的差(比如秒)

S:

selectdatediff(ss,getdate(),getdate()+12.3)value

O:

直接用两个日期相减(比如d1-d2=12.3)

SELECT(d1-d2)*24*60*60vauleFROMDUAL;

44.根据差值求新的日期(比如分钟)

S:

selectdateadd(mi,8,getdate())value

O:

SELECTsysdate+8/60/24vauleFROMDUAL;

45.求不同时区时间

S:

不知道

O:

SELECTNew_time(sysdate,'ydt','gmt')vauleFROMDUAL;

-----时区参数,北京在东8区应该是Ydt-------

ASTADT大西洋标准时间

BSTBDT白令海标准时间

CSTCDT中部标准时间

ESTEDT东部标准时间

GMT格林尼治标准时间

HSTHDT阿拉斯加—夏威夷标准时间

MSTMDT山区标准时间

NST纽芬兰标准时间

PSTPDT太平洋标准时间

YSTYDTYUKON标准时间

Oracle支持的字符函数和它们的MicrosoftSQLServer等价函数:

函数OracleMicrosoftSQL Server

把字符转换为ASCIIASCIIASCII

字串连接CONCAT(expression+expression)

把ASCII转换为字符CHRCHAR

返回字符串中的开始字符(左起)INSTRCHARINDEX

把字符转换为小写LOWERLOWER

把字符转换为大写UPPERUPPER

填充字符串的左边LPADN/A

清除开始的空白LTRIMLTRIM

清除尾部的空白RTRIMRTRIM

字符串中的起始模式(pattern)INSTRPATINDEX

多次重复字符串RPADREPLICATE

字符串的语音表示SOUNDEXSOUNDEX

重复空格的字串RPADSPACE

从数字数据转换为字符数据TO_CHARSTR

子串SUBSTRSUBSTRING

替换字符REPLACESTUFF

将字串中的每个词首字母大写INITCAPN/A

翻译字符串TRANSLATEN/A

字符串长度LENGTHDATELENGTHorLEN

列表中最大的字符串GREATESTN/A

列表中最小的字符串LEASTN/A

如果为NULL则转换字串NVLISNULL

 

日期函数

函数OracleMicrosoftSQL Server

日期相加(datecolumn+/-value)or

ADD_MONTHSDATEADD

两个日期的差(datecolumn+/-value)or

MONTHS_BETWEENDATEDIFF

当前日期和时间SYSDATEGETDATE()

一个月的最后一天LAST_DAYN/A

时区转换NEW_TIMEN/A

日期后的第一个周日NEXT_DAYN/A

代表日期的字符串TO_CHARDATENAME

代表日期的整数TO_NUMBER

(TO_CHAR))DATEPART

日期舍入ROUNDCONVERT

日期截断TRUNCCONVERT

字符串转换为日期TO_DATECONVERT

如果为NULL则转换日期NVLISNULL

 

转换函数

函数OracleMicrosoftSQL Server

数字转换为字符TO_CHARCONVERT

字符转换为数字TO_NUMBERCONVERT

日期转换为字符TO_CHARCONVERT

字符转换为日期TO_DATECONVERT

16进制转换为2进制HEX_TO_RAWCONVERT

2进制转换为16进制RAW_TO_HEXCONVERT

 

其它行级别的函数

函数OracleMicrosoftSQL Server

返回第一个非空表达式DECODECOALESCE

当前序列值CURRVALN/A

下一个序列值NEXTVALN/A

如果exp1=exp2,返回nullDECODENULLIF

用户登录账号ID数字UIDSUSER_ID

用户登录名USERSUSER_NAME

用户数据库ID数字UIDUSER_ID

用户数据库名USERUSER_NAME

当前用户CURRENT_USERCURRENT_USER

用户环境(audittrail)USERENVN/A

在CONNECTBY子句中的级别LEVELN/A

 

合计函数

函数OracleMicrosoftSQL Server

AverageAVGAVG

CountCOUNTCOUNT

MaximumMAXMAX

MinimumMINMIN

StandarddeviationSTDDEVSTDEVorSTDEVP

SummationSUMSUM

VarianceVARIANCEVARorVARP

Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:

EXTRACT(YEARFROM日期)

T_SQL命令大全

--语句功能

--数据操作

SELECT--从数据库表中检索数据行和列

INSERT--向数据库表添加新数据行

DELETE--从数据库表中删除数据行

UPDATE--更新数据库表中的数据

--数据定义

CREATETABLE--创建一个数据库表

DROPTABLE--从数据库中删除表

ALTERTABLE--修改数据库表结构

CREATEVIEW--创建一个视图

DROPVIEW--从数据库中删除视图

CREATEINDEX--为数据库表创建一个索引

DROPINDEX--从数据库中删除索引

CREATEPROCEDURE--创建一个存储过程

DROPPROCEDURE--从数据库中删除存储过程

CREATETRIGGER--创建一个触发器

DROPTRIGGER--从数据库中删除触发器

CREATESCHEMA--向数据库添加一个新模式

DROPSCHEMA--从数据库中删除一个模式

CREATEDOMAIN--创建一个数据值域

ALTERDOMAIN--改变域定义

DROPDOMAIN--从数据库中删除一个域

--数据控制

GRANT--授予用户访问权限

DENY--拒绝用户访问

REVOKE--解除用户访问权限

--事务控制

COMMIT--结束当前事务

ROLLBACK--中止当前事务

SETTRANSACTION--定义当前事务数据访问特征

--程序化SQL

DECLARE--为查询设定游标

EXPLAN--为查询描述数据访问计划

OPEN--检索查询结果打开一个游标

FETCH--检索一行查询结果

CLOSE--关闭游标

PREPARE--为动态执行准备SQL语句

EXECUTE--动态地执行SQL语句

DESCRIBE--描述准备好的查询

---局部变量

declare@idchar(10)

--set@id=''

select@id=''

---全局变量

---必须以@@开头

--IFELSE

declare@xint@yint@zint

select@x=1@y=2@z=3

if@x>@y

print'x>y'--打印字符串'x>y'

elseif@y>@z

print'y>z'

elseprint'z>y'

--CASE

usepangu

updateemployee

sete_wage=

case

whenjob_level=’1’thene_wage*1.08

whenjob_level=’2’thene_wage*1.07

whenjob_level=’3’thene_wage*1.06

elsee_wage*1.05

end

--WHILECONTINUEBREAK

declare@xint@yint@cint

select@x=1@y=1

while@x<3

begin

print@x--打印变量x的值

while@y<3

begin

select@c=100*@x+@y

print@c--打印变量c的值

select@y=@y+1

end

select@x=@x+1

select@y=1

end

--WAITFOR

--例等待1小时2分零3秒后才执行SELECT语句

waitfordelay’01:

02:

03’

select*fromemployee

--例等到晚上11点零8分后才执行SELECT语句

waitfortime’23:

08:

00’

select*fromemployee

***SELECT***

select*(列名)fromtable_name(表名)wherecolumn_nameoperatorvalue

ex宿主)

select*fromstock_informationwherestockid=str(nid)

stockname='str_name'

stocknamelike'%findthis%'

stocknamelike'[a-zA-Z]%'---------([]指定值的范围)

stocknamelike'[^F-M]%'---------(^排除指定范围)

---------只能在使用like关键字的where子句中使用通配符)

orstockpath='stock_path'

orstocknumber<1000

andstockindex=24

notstocksex='man'

stocknumberbetween20and100

stocknumberin(10,20,30)

orderbystockiddesc(asc)---------排序,desc-降序,asc-升序

orderby1,2---------by列号

stockname=(selectstocknamefromstock_informationwherestockid=4)

---------子查询

---------除非能确保内层select只返回一个行的值,

---------否则应在外层where子句中用一个in限定符

selectdistinctcolumn_nameformtable_name---------distinct指定检索独有的列值,不重复

selectstocknumber,"stocknumber+10"=stocknumber+10fromtable_name

selectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname

---------groupby将表按行分组,指定列中有相同的值

havingcount(*)=2---------having选定指定的组

select*

fromtable1,table2

wheretable1.id*=table2.id--------左外部连接,table1中有的而table2中没有得以null表示

table1.id=*table2.id--------右外部连接

selectstocknamefromtable1

union[all]-----union合并查询结果集,all-保留重复行

selectstocknamefromtable2

***insert***

insertintotable_name(Stock_name,Stock_number)value("xxx","xxxx")

value(selectStockname,StocknumberfromStock_table2)---value为select语句

***update***

updatetable_namesetStockname="xxx"[whereStockid=3]

Stockname=default

Stockname=null

Stocknumber=Stockname+4

**

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1