oracle遠程連接數據庫命令:
sqlplus usr/pwd@//host:port/sid
oracle函數
(1)CONCAT()函數在Oracle中可以用於將兩個字符串連接在一起
CONCAT( string1, string2 )
SELECT CONCAT(CONCAT(CONCAT('A', 'B'),'C'),'D') FROM dual;
-- Result: 'ABCD'
由於參數包含在單引號中,因此在引號內使用2個額外的單引號來表示生成的連接字
符串中的單引號
SELECT CONCAT('Let''s', ' learn Oracle') FROM dual;
-- Result: Let's learn Oracle
(2)Oracle ||運算符
此示例查詢將返回結果集,其中一列由customers表中的first_name和last_name字
段(用空格分隔)組成。 結果集中的列將被別名爲customer_name。
SELECT 'Dave' || ' ' || 'Anderson' AS customer_name FROM dual;
-- Result: 'Dave Anderson'
(3)Oracle Convert()函數
Convert()函數語法
CONVERT( string1, char_set_to [, char_set_from] )
string1:要轉換的字符串。
char_set_to:要轉換爲的字符集。
char_set_from:可選的,要從中轉換的字符集。
(4)Oracle Initcap()函數
Oracle中,Initcap()函數可以將每個單詞中的第一個字符設置爲大寫,其餘的
設置爲小寫。
INITCAP('tech on the oraok');
-- Result: 'Tech On The Oraok'
(5)日期轉換函數to_date()
insert into test (birthday,name)
values (to_date('2016-03-12','yyyy-mm-dd'),'zy');
(6)格式轉化函數to_char()
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
--將顯示時分秒 1981-02-20 00:00:00
select to_char(sal,'L99999.99') from emp;
--顯示本地貨幣,5位整數,兩位小數,也可以加逗號L99,999.99($3,000.00)
select * from emp where to_char(hiredate,'mm')=12;
--顯示12月份入職的員工
(7)對日期取整trunc()
select trunc(sysdate) from dual; #sysdate 是系統時間
(8)對月份的加函數 add_months ,last_day
select * from test where sysdate>add_months(hiredate,1);
--hirdate+1個月,一個月前入職的員工
select last_day(hiredate) from test;
--取每月的最後一天
(9)trim函數
用於去除字符串左右兩邊的空格。ltrim,rtrim分別用於去除左右兩邊的空格。
select trim(' aa bb cc') from dual;
aa bb cc
去除字符串左右/中指定字符
select trim(leading/trailing/both '去除的單個字符' from '被操作的字符串') 列別名 from dual;
leading表示去除字符串左邊,trailing表示去除字符串右邊,both表示兩邊。
' ' 中包含的要去除的字符只能是一個字符。
select trim(leading 'a' from 'aa bb cc') leadingtrim from dual;
返回結果: ' bb cc'
(10)NVL(X,VALUE)
如果X爲空,返回value,否則返回X
(11)SYS_CONNECT_BY_PATH字符拼接函數
select max(substr(sys_connect_by_path(deptname,','),2)) from dept
connect by prior deptno=mgrno;
總公司,浙江分公司,杭州分公司
行列轉化:
如把一個表的所有列連成一行,用逗號分隔:
select max(substr(sys_connect_by_path(column_name,','),2))
from (select column_name,rownum rn from user_tab_columns where
table_name ='DEPT') start with rn=1 connect by rn=rownum ;
----DEPTNO,DEPTNAME,MGRNO
(12)EXTRACT(fmt FROM d),提取日期中的特定部分。
fmt 爲:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可
以爲 DATE 類型匹配,也可以與 TIMESTAMP 類型匹配;
但是 HOUR、MINUTE、SECOND 必須與 TIMESTAMP 類型匹配。
例:SELECT SYSDATE "date",
EXTRACT(YEAR FROM SYSDATE)"year",
EXTRACT(MONTH FROM SYSDATE)"month",
EXTRACT(DAY FROM SYSDATE)"day",
EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",
EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",
EXTRACT(SECOND FROM SYSTIMESTAMP)"second"
FROM dual;