對於Oracle資料庫操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,對於sqlplus有兩種形式。 一種是dos風格的sqlplus:sqlplus.exe; 另一種是windows風格的sqlplus:sqlplusw.exe; 一種是dos風格的sqlplus:sqlplus ...
對於Oracle資料庫操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,對於sqlplus有兩種形式。
- 一種是dos風格的sqlplus:sqlplus.exe;
- 另一種是windows風格的sqlplus:sqlplusw.exe;
在Oracle 10g之中主要使用的是sqlplusw命令,因為其可以進行一些顯示數據的調整。
此時會找到預設的已經可以使用的資料庫實例。
範例:輸入查詢指令
SELECT * FROM emp;
此時的數據已經可以正常的顯示,但是依然會存在數據折行的問題,因為這個是預設的每行的數據大小,而現在可以通過兩個命令進行調整:
- 設置每行顯示的記錄長度:SET LINESIZE 300;
- 設置每頁顯示的記錄長度:SET PAGESIZE 30;
以後這兩個命令統一被稱為格式化命令,但是這些格式化命令在sqlplus下的設置並不是很明顯。
但是sqlplusw雖然顯示上方便一些,可是對於命令的編輯上卻不是很方便,如正常的操作,命令寫錯了,則肯定使用方向鍵移到錯誤的位置上進行修改,但是在sqlplusw之中,方向鍵只能控制屏幕的移動,所以這個命令根本就不適合於編輯,所以在sqlplusw之中提供了ed和@指令,可以進行記事本的調用和執行;
- 使用ed,調用記事本程式:ed a;
此時會提示用戶說,現在找不到"a.sql"的文件,詢問是否創建,選擇"是",但是使用ed打開記事本之後,Oracle中的sqlplusw視窗會進入到阻塞狀態,無法使用。
- 使用@執行程式:@a;
但是在windows之中,由於提供了許多方便的編輯軟體,所以一般會在外部編輯程式,例如,現在在D盤上建立一個demo.txt的文件,裡面保存程式代碼。
這個時候要讀取在硬碟上的文件,則必須寫上完整的路徑:@D:\demo.txt,而且如果現在這個文件的尾碼是"*.sql"的話,則不用輸入文件尾碼(demo.sql),輸入:@d:\demo,或者更省事直接輸入:@d:demo。
在一個資料庫之中,會有許多的用戶(現在已知的是四個用戶),這每一個用戶下都會有多張自己的數據表,所以要想查看所有的數據表,則可以使用如下的命令:
SELECT * FROM tab;
而且由於用戶眾多,所以如果要想知道當前的登錄用戶,則可以使用:SHOW USER; 命令完成。
而且在sqlplusw之中也可以直接進行用戶的登錄切換,使用如下的語法完成:
CONN 用戶名/密碼 [AS SYSDBA];
使用sys用戶登錄:CONN sys/change_on_install AS SYSDBA;
但是,一旦使用了sys連接之後,則無法直接查詢emp表數據。
對於每一張表,都有其屬於的用戶,所以一張表的完整名稱是"用戶名.表名稱"或者說是"模式名.表名稱",所以不同的用戶要想訪問其他用戶的表,則應該加上用戶名,即現在的訪問名稱:
SELECT * FROM scott.emp;
一旦使用了超級管理員登錄的話,可以通過命令手工的控制資料庫實例的打開和關閉;
-
關閉資料庫實例:SHUTDOWN IMMEDIATE;
- 一旦關閉之後用戶無法直接連接sqlplusw命令,此時可以先使用"/nolog"登錄,之後使用管理員登錄;
SQL> conn sys/sys as sysdba;
已連接。
SQL> shutdown immediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
SQL>
- 啟動資料庫實例:STARTUP;
另外,sqlplusw命令視窗也可以調用本機的操作命令,使用"host"作為首碼。
HOST COPY d:\demo.sql d:\hello.txt
以上命令必須掌握,以後肯定會使用到。