《學習Oracle從這裡開始》之sqlplus命令篇
做為資料庫開發和管理人員,日常工作用到最多的工具可能就是PLSQL和SQLPLUS了,我在工作中一般編寫SQL語句或寫一些包、儲存過程之類的程式碼是在PLSQL中完成的(挺喜歡它的提示和排版的),其它的基本上都是利用SQLPLUS了。既然我們如此多的使用打了SQLPLUS,那麼我們就很有必要掌握它的一些常用的命令了,在本篇博文中我會列出一些我常用命令,大家可以積極發言進行補充。
資料庫管理人員經常會使用SYS使用者以SYSDBA進行登入,如果有機會直接在伺服器端登入是最好的,如果沒有那需要在客戶端登入怎麼辦呢?方法很簡單,只需要在命令視窗使用:“sqlplus 使用者名稱/密碼@連線 as sysdba”就可以了。那如果實在伺服器端呢?實際上就更簡單了,在伺服器端使用的是作業系統驗證的方式登入的,所以有沒有使用者名稱、密碼、和連線實際上都是一樣的,不信我們來看,我們以三種不同的當時登入:
sqlplus / as sysdba
sqlplus as sysdba
sqlplus ss/cc as sysdba
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 5.2.3790]
-
(C) 版權所有 1985-2003 Microsoft Corp.
-
-
C:\\Documents and Settings\\Administrator>sqlplus / as sysdba
-
-
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 8月 6 13:48:32 2014
-
-
Copyright (c) 1982, 2005, Oracle. All rights reserved.
-
-
-
連線到:
-
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
-
With the Partitioning, OLAP and Data Mining options
-
-
SQL> show user;
-
USER 為 \"SYS\"
- SQL>
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 5.2.3790]
-
(C) 版權所有 1985-2003 Microsoft Corp.
-
-
C:\\Documents and Settings\\Administrator>sqlplus ccc/ccc@orcl as sysdba
-
-
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 8月 6 13:46:46 2014
-
-
Copyright (c) 1982, 2005, Oracle. All rights reserved.
-
-
-
連線到:
-
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
-
With the Partitioning, OLAP and Data Mining options
-
-
SQL>show user;
-
USER 為 \"SYS\"
- SQL>
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 5.2.3790]
-
(C) 版權所有 1985-2003 Microsoft Corp.
-
-
C:\\Documents and Settings\\Administrator>sqlplus ss/cc as sysdba
-
-
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 8月 6 13:47:09 2014
-
-
Copyright (c) 1982, 2005, Oracle. All rights reserved.
-
-
-
連線到:
-
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
-
With the Partitioning, OLAP and Data Mining options
-
-
SQL>show user;
-
USER 為 \"SYS\"
- SQL>
以sysdba登入後能做什麼呢?我們來看:
1、啟動資料庫:startup
startup 預設引數為open,並且預設以獨佔方式裝入資料庫。
正常使用startup啟動就可以了,但是總有個別情況,那我們來看看它的引數吧:
startup; 啟動例項裝入並開啟資料庫,允許任何使用者連線到資料庫並執行資料庫訪問操作。
startup nomount; 啟動例項但不裝入資料庫,一般只有在資料庫建立的時候使用。
startup mount; 啟動例項裝入資料庫但不開啟資料庫,允許使用者執行一些維護工作,如:重新命名資料檔案、新增和撤消以及重新命名重做日誌檔案、啟動和禁止重做日誌歸檔、執行全部的資料庫恢復。
startup restrict; 限制在資料庫啟動時的使用者訪問,這種模式只允許DBA進行:執行結構維護、執行資料庫檔案的匯入匯出、執行資料裝載、臨時阻止典型使用者使用資料。
startup force; 強行啟動例項,如果一個例項正在啟動,該命令可以重新啟動。
startup open recover; 啟動例項,裝入資料庫,並啟動介質恢復。
如果使用者的oracle伺服器允許多個事例來併發的訪問一個資料庫(oracle 並行伺服器選項),應選擇獨佔或並行裝入資料庫。
startup open orcl pfile=initorcl.ora parallel; 並行裝入資料庫。
strartup open orcls pfile=initorcls.ora execlusive restrict; 獨佔裝入資料庫。
2、關閉資料庫:shutdown
shutdown normal; 不允許產生新的連線、等待當前所有會話結束、等待當前存在的所有事務結束、做一個檢查點並關閉資料檔案,啟動時不需要例項恢復。
shutdown transactional; 不允許產生新的連線、不等待當前存在會話結束、等待當前存在的所有事務結束、做一個檢查點並關閉資料檔案,啟動時不需要例項恢復。
shutdown immediate; 不允許產生新的連線、不等待當前存在會話結束、不等待當前存在的事務結束、做一個檢查點並關閉資料檔案,沒有結束的事務是自動rollback的,啟動時不需要例項恢復。
shutdown abort; 不允許產生新的連線、不等待當前存在會話結束、不等待當前存在的事務結束、不做檢查點且沒有關閉資料檔案,啟動時自動進行例項恢復。
3、更改資料庫狀態為開啟/裝載/備份,更改字符集
程式碼就不一一羅列了,基本上就是alter system set ... = ... scope=..; cope分為memory、spfile、both。
alter tablespace .. read wrte;
....
....
4、建立使用者
create user test identified by test;
5、授權
grant dba to test;
6、建立表空間:
create smallfile tablespace data3 logging datafile 'd:\oradata\ora10g\data3.dbf' size 32767m reuse autoextend on next 10240k maxsize unlimited extent management local segment space management auto;
7、給使用者分配表空間:
alert user test default tablespace data3;
8、建立spfile:
create spfile from pfile;
9、日誌歸檔和恢復。
不再廢話了,看下其他的:
show all --檢視所有系統變數值
show user --顯示當前使用者
show error --檢視錯誤
set heading off --禁止輸出列頭,預設值為on
set feedback off --禁止顯示計數資訊,預設值為"on"
set timing on --預設為off,顯示查詢耗時
set sqlprompt " " --設定預設提示符,預設值就是" "
set linesize 1000 --設定螢幕顯示行寬,預設100
set autocommit on --設定是否自動提交,預設為off
set pause on --預設為off,設定暫停,會使螢幕顯示停止,等待按下enter鍵,再顯示下一頁
set arraysize 1 --預設為15
set long 1000 --預設為80
define -- 用來定義常量,如: define val=‘a’; select &val from dual;
spool d:\log.txt; --將執行結果記錄到檔案
spool off; -- 關閉資訊記錄
@d:\sql.sql -- 用來執行外部檔案,如果在檔案內引用其他檔案,那麼需要使用兩個@,如:@@source\create_table.sql;
a where rownum = 1; -- 新增文字到緩衝區當前行尾,a後面緊跟兩個空格, 如當前執行的是:select * from user_tables; 執行結果為:select * fom user_tables where rownum = 1;
c --替換,如:c/*/table_name,執行結果為select table_name from user_tables where rownum = 1;
del --刪除當前緩衝區的語句,可進行引數設定,如: del 2;
i --新增一行到緩衝區
l --顯示當前緩衝的所有語句,可進行引數設定,如:l 2;顯示當前緩衝的第2條語句,l 1 3;顯示當前緩衝區1到3條語句。
run 或者 / 或者 r -- 執行當前緩衝區的語句,我測試過,如果當前緩衝區存在多條的話,是執行失敗的。
edit -- 如:edit s 如果當前目錄下不存在s.sql檔案,則系統自動生成s.sql檔案,編輯後,儲存退出,再次使用只需要用:@s 即可。
save -- 如:save a 將當前緩衝區的語句儲存到檔案。
get -- 如:get a 讀取存檔的sql檔案
start -- 如:start a 執行調入記憶體的sql檔案
exit -- 退出當前sqlplus
desc -- 如:desc user_tables; 顯示錶結構
clear screen -- 清空當前視窗
其他補充:
清空共享池或者叫快取池:
alter system flush shared_pool;
alter system flush buffer_cache;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25357621/viewspace-1246635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《學習Oracle從這裡開始》之常用SQL篇OracleSQL
- 《學習Oracle從這裡開始》之解決錯誤篇Oracle
- 從這裡開始學習 LinuxLinux
- 瞭解【Docker】從這裡開始Docker
- 我該從哪裡開始學習精益?
- 關於Mongodb的全面總結,學習mongodb的人,可以從這裡開始!MongoDB
- 深入理解Promise從這裡開始Promise
- 人生第一篇部落格,從這裡開始,記錄C++記憶體池的學習C++記憶體
- GCC - 一切從這裡開始(轉)GC
- 從零開始學習C++之遞推C++
- 學習Scala第一篇-從hello World開始
- Re:從零開始的pwn學習(棧溢位篇)
- 軟體測試入門,從這裡開始
- 從頭開始學習VuexVue
- 從零開始學習KafkaKafka
- 從零開始學習機器學習機器學習
- 從零開始學習laravelLaravel
- 從0開始學習java,應該從那塊開始學起?Java
- 【深度學習】如何從零開始構建深度學習專案?這裡有一份詳細的教程深度學習
- 從零開始netty學習筆記之BIONetty筆記
- 從零開始netty學習筆記之protobufNetty筆記
- 新手學程式設計,從哪裡開始?程式設計
- Java 執行緒基礎,從這篇開始Java執行緒
- 從0開始學習Webpack(一)Web
- 學習小程式從“你”開始
- eclipse學習從零開始Eclipse
- 從零開始學 Oracle 練習題答案(9-10)Oracle
- 【從零開始學習Oracle資料庫】(2)函式Oracle資料庫函式
- 從零開始學golang之udpGolangUDP
- 從零開始學golang之 PrimGolang
- 從零開始學golang之TCPGolangTCP
- 從零開始學習C++之if判斷語句C++
- 如何從零開始構建深度學習專案?這裡有一份詳細的教程深度學習
- 0基礎如何開始學習Python?看完這篇就懂了!Python
- ORACLE從零開始系列之SQL(一)OracleSQL
- 明天開始系統學習oracleOracle
- 從頭開始學習vue-routerVue
- 從零開始學習 Go ——安裝Go