Oracle中常用的命令和函數,做個整理,以備以后用到,方便查閱。
常用命令:
連接sqlplus
命令行下運行cmd進入,如以sys模式登陸,命令如下:
(1).sqlplus "sys/zhb126 as sysdba"
(2).sqlplus/nolog connect sys/zhb126 as sysdba
(3).sqlplus scott/tiger
啟動數據庫實例
startup --啟動數據庫的同時啟動控制文件、數據文件
startup mount --啟動數據庫的同時啟動控制文件、不啟動數據文件
startup nomount --僅啟動數據庫實例,用于控制文件丟失情況,此時控制文件無法啟動
關閉數據庫實例
shutdown --正常關閉(等待所有用戶斷開連接后才能關閉)
shutdown immediate--建議使用(迫使用戶執行當前SQL后立即斷開連接)
shutdown transactional--(迫使在當前用戶執行完后立即斷開連接)
shutdown abort--強制關閉(類db2的db2 stop force)
查看日志歸檔方式--用startup mount啟動數據庫
archive log list
ALTER DATABASE archivelog
ALTER DATABASE OPEN
查看sqlplus支持的命令
help INDEX
解除用戶鎖
以安裝oracle時第一步設置的用戶口令登陸(如:sqlplus "sys/zhb126 as sysdba")后執行
alter user scott account unlock;
然后執行sqlplus scott/tiger,此時會要求你修改scott的新口令。
設置命令行支持空格
set sqlblanklines on
變量替代--變量替換,這個過程只安排一個執行計劃,可提高執行效率
SQL> select * from dept where deptno = &t;
輸入 t 的值: 10
原值 1: select * from dept where deptno = &t
新值 1: select * from dept where deptno = 10
查看緩沖器執行過的命令 (list/l)
SQL> l
1* select * from dept where deptno = &t
SQL> l1
1* select * from dept where deptno = &t
緩沖區文件的保持、執行
SQL> save d:/test.sql --保存緩沖區文件到指定文件中
已創建 file d:/test.sql
SQL> @d:/test.sql --執行保存文件的SQL
查看表結構(describe/desc)
SQL> desc dept
保存查詢輸出結果
SQL> spool D:/spool.txt --開啟spool并指定保存路徑
SQL> / --執行緩沖區的sql語句
SQL> spool off --關閉spool
SQL> edit d:/spool.txt --打開文件查看保存內容
常用函數:
sysdate為系統日期 dual為虛表
日期函數[重點掌握前四個日期函數]
1.add_months[返回日期加(減)指定月份后(前)的日期]
select sysdate S1,add_months(sysdate,10) S2,
add_months(sysdate,5) S3 from dual;
2.last_day [返回該月最后一天的日期]
select last_day(sysdate) from dual;
3.months_between[返回日期之間的月份數]
select sysdate S1, months_between('1-4月-04',sysdate) S2,
months_between('1-4月-04','1-2月-04') S3 from dual
4.next_day(d,day): 返回下個星期的日期,day為1-7或星期日-星期六,1表示星期日
select sysdate S1,next_day(sysdate,1) S2,
next_day(sysdate,'星期日') S3 FROM DUAL
5.round[舍入到最接近的日期](day:舍入到最接近的星期日)
select sysdate S1,
round(sysdate) S2 ,
round(sysdate,'year') YEAR,
round(sysdate,'month') MONTH ,
round(sysdate,'day') DAY from dual
6.trunc[截斷到最接近的日期]
select sysdate S1,
trunc(sysdate) S2,
trunc(sysdate,'year') YEAR,
trunc(sysdate,'month') MONTH ,
trunc(sysdate,'day') DAY from dual
7.返回日期列表中最晚日期
select greatest('01-1月-04','04-1月-04','10-2月-04') from dual
字符函數(可用于字面字符或數據庫列)
1.字符串截取
select substr('abcdef',1,3) from dual
2.查找子串位置
select instr('abcfdgfdhd','fd') from dual
3.字符串連接
select 'HELLO'||'hello world' from dual;
4. 1)去掉字符串中的空格
select ltrim(' abc') s1,
rtrim('zhang ') s2,
trim(' zhang ') s3 from dual
2)去掉前導和后綴
select trim(leading 9 from 9998767999) s1,
trim(trailing 9 from 9998767999) s2,
trim(9 from 9998767999) s3 from dual;
5.返回字符串首字母的Ascii值
select ascii('a') from dual
6.返回ascii值對應的字母
select chr(97) from dual
7.計算字符串長度
select length('abcdef') from dual
8.initcap(首字母變大寫) ,lower(變小寫),upper(變大寫)
原文轉自:http://www.anti-gravitydesign.com