Oracle資料庫常用操作命令(一)

來源:互聯網
上載者:User
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 )

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.