對於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和@指令,可以進行記事本的調用和執行;
此時會提示使用者說,現在找不到“a.sql”的檔案,詢問是否建立,選擇“是”,但是使用ed開啟記事本之後 ,Oracle中的sqlplusw視窗會進入到阻塞狀態,無法使用。
但是在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>
另外,sqlplusw命令視窗也可以調用原生操作命令,使用“host”作為首碼。
HOST COPY d:\demo.sql d:\hello.txt
以上命令必須掌握,以後肯定會使用到。