SPOOL將螢幕所有的輸出輸出到指定檔案-- spool 檔案路徑名;spool g:\mysql.sql;--業務操作--結束輸出spool off;
執行一個SQL指令檔我們可以將多條sql語句儲存在一個文字檔中,這樣當要執行這個檔案中的所有的sql語句時,用上面的任一命令即可,這類似於dos中的批處理。--start file_name-- @ file_namestart g:\mysql.sql;@ g:\mysql.sql;
對當前的輸入進行編輯edited
重新運行上一次啟動並執行sql語句/
顯示一個表的結構desc table_name ;
清屏clear screen;
退出exit;
置當前session是否對修改的資料進行自動認可--SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}set autocommit on;
在用start命令執行一個sql指令碼時,是否顯示指令碼中正在執行的SQL語句-- SET ECHO {ON|OFF};set echo on;
是否顯示當前sql語句查詢或修改的行數--SET FEED[BACK] {6|n|ON|OFF}-- 預設只有結果大於6行時才顯示結果的行數。如果set feedback 1 ,則不管查詢到多少行都返回。當為off 時,一律不顯示查詢的行數set feedback 1;
是否顯示欄位標題--當set heading off 時,在每頁的上面不顯示欄位標題,而是以空白行代替--SET HEA[DING] {ON|OFF}set heading on;
設定一行可以容納的字元數-- 如果一行的輸出內容大於設定的一行可容納的字元數,則折行顯示--SET LIN[ESIZE] {80|n}set linesize 100;
設定頁與頁之間的分隔-- SET NEWP[AGE] {1|n|NONE}--當set newpage 0 時,會在每頁的開頭有一個小的黑方框。--當set newpage n 時,會在頁和頁之間隔著n個空行。--當set newpage none 時,會在頁和頁之間沒有任何間隔set newpage 1;
設定一頁有多少行數--如果設為0,則所有的輸出內容為一頁並且不顯示欄位標題--SET PAGES[IZE] {24|n}set pagesize 20;
是否顯示用DBMS_OUTPUT.PUT_LINE包進行輸出的資訊。--SET SERVEROUT[PUT] {ON|OFF}set serveroutput on;
是否在螢幕上顯示輸出的內容,主要用與SPOOL結合使用。--在用spool命令將一個大表中的內容輸出到一個檔案中時,將內容輸出在螢幕上會耗費大量的時間,--設定set termspool off後,則輸出的內容只會儲存在輸出檔案中,不會顯示在螢幕上,極大的提高了spool的速度--SET TERM[OUT] {ON|OFF}set termout off;
在dos裡串連oracle資料庫CONNECT user_name/passwd@l_jiayou
在sql*plus中串連到指定的資料庫CONNECT user_name/passwd@資料庫名稱
顯示目前使用者show user;
顯示當前環境變數的值:show all;
顯示當前在建立函數、預存程序、觸發器、包等對象的錯誤資訊Show error
顯示資料庫的版本:--show REL[EASE]show release
顯示SGA的大小show SGA
顯示初始化參數的值:--show PARAMETERS [parameter_name]show parameters;
查看目前使用者的預設資料表空間select username,default_tablespace from user_users
查看目前使用者的角色select * from user_role_privs
查看目前使用者的系統許可權和表級許可權select * from user_sys_privs;select * from user_tab_privs;
查看使用者下所有的表select * from user_tables
查看名稱包含log字元的表select object_name,object_id from user_objects where instr(object_name,'LOG')>0;
查看某表的建立時間select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');
查看放在ORACLE的記憶體區裡的表select table_name,cache from user_tables where instr(cache,'Y')>0;
查看索引個數和類別select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的欄位select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');
查看序號,last_number是當前值select * from user_sequences;
查看視圖的名稱--select view_name from user_views;
查看建立視圖的select語句select view_name,text_length from user_views;set long 2000; 說明:可以根據視圖的text_length值設定set long 的大小select text from user_views where view_name=upper('&view_name');
查看同義字的名稱select * from user_synonyms
查看某表的約束條件select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name'); select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;
查看函數和過程select object_name,status from user_objects where object_type='FUNCTION';select object_name,status from user_objects where object_type='PROCEDURE';
查看函數和過程的原始碼select text from all_source where owner=user and name=upper('&plsql_name');
查看錶空間的名稱及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
查看錶空間物理檔案的名稱及大小 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
查看復原段名稱及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name ;
查看控制檔案 select name from v$controlfile;
查看記錄檔 select member from v$logfile;
查看錶空間的使用方式select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_space group by tablespace_name;SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
查看資料庫庫對象select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
查看資料庫的版本Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
查看資料庫的建立日期和歸檔方式Select Created, Log_Mode, Log_Mode From V$Database;
用系統管理員,查看當前資料庫有幾個使用者串連:select username,sid,serial# from v$session;
如果要停某個串連用alter system kill session 'sid,serial#';
如果這命令不行,找它UNIX的進程數select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;--說明:21是某個串連的sid數,然後用 kill 命令殺此進程號。例子:表test122,有兩個欄位t_id varchar2(20),t_name varchar2(10);要求t_id的值為當天日期加上0001,0002的形式遞加作為序列,如20070209_0001,200709_0002;思路:查訊當天的t_id的最大值加1,然後產生序列;insert into test122 values(to_char(sysdate,'yyyymmdd')||'_'||(select lpad(to_number(ltrim(substr(max(t_id),length(max(t_id))-3),'0'))+1,4,0)from test122 where substr(t_id,0,length(t_id)-5)=to_char(sysdate,'yyyymmdd')),'ok');
樹形遞迴查詢:Start with...Connect By準備:create table mymenu(tree_id varchar(10),tree_pid varchar(10),tree_lable varchar(50),tree_link varchar(100))insert into mymenu values('1','0','蔬菜','')insert into mymenu values('2','0','水果','')insert into mymenu values('3','0','穀物','')insert into mymenu values('4','0','肉類','')insert into mymenu values('5','1','白菜','')insert into mymenu values('6','1','茄子','htt://www.baidu.com')insert into mymenu values('7','5','四月白','http://www.google.cn')insert into mymenu values('8','5','冬白菜','htt://www.baidu.com')insert into mymenu values('9','2','西瓜','http://www.google.cn')insert into mymenu values('10','2','桔子','htt://www.baidu.com')insert into mymenu values('11','3','大米','http://www.google.cn')insert into mymenu values('12','3','大豆','htt://www.baidu.com')insert into mymenu values('13','4','豬肉','http://www.google.cn')insert into mymenu values('14','4','魚','')insert into mymenu values('15','14','昌魚','http://www.google.cn')insert into mymenu values('16','14','王八','htt://www.baidu.com')從根往樹末梢查詢:select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid;//查詢所有select * from mymenu start with tree_id='1' connect by prior tree_id=tree_pid; //查詢指定ID從樹末梢向根查詢:select * from mymenu start with tree_pid='0' connect by prior tree_pid=tree_idselect * from mymenu start with tree_id='8' connect by prior tree_pid=tree_id如果還有其他條件用and 加在語句後面select * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is nullselect * from mymenu start with tree_pid='0' connect by prior tree_id=tree_pid and tree_link is not null
oracle用戶端串連的檔案配置:oracle的目錄/network/ADMIN/tnsnames.ora內容:MIMI(用戶端串連的名稱) =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = NTDB.RUNNER) ))
修改表結構
alter
table m_gl_gls3_history
add (aaaaa
varchar2(20),bbbbb
varchar2(10))
alter
table m_gl_gls3_history
modify (aaaaa
varchar2(10))
--
要改變表中的欄位的類型或縮小欄位長度,該欄位的所有記錄值必須為空白。
--
如果改欄位存在記錄值,則該欄位長度只能擴大,不能縮小。
alter
table m_gl_gls3_history
drop (aaaaa , bbbbb )