Oracle SQLServer函数命令大全.docx
- 文档编号:11107301
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:23
- 大小:23.38KB
Oracle SQLServer函数命令大全.docx
《Oracle SQLServer函数命令大全.docx》由会员分享,可在线阅读,更多相关《Oracle SQLServer函数命令大全.docx(23页珍藏版)》请在冰豆网上搜索。
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
**
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle SQLServer函数命令大全 SQLServer 函数 命令 大全