1. 程式人生 > >oracle的一些基本語法

oracle的一些基本語法

一、ORACLE的啟動和關閉
1、在單機環境下
要想啟動或關閉ORACLE系統必須首先切換到ORACLE使用者,如下
su - oracle
a、啟動ORACLE系統
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
b、關閉ORACLE系統
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>shutdown
SVRMGR>quit
啟動oracle9i資料庫命令:
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba 
Connected to an idle instance.
SQL> startup^C
SQL> startup
ORACLE instance started.
2、在雙機環境下
要想啟動或關閉ORACLE系統必須首先切換到root使用者,如下
su - root
a、啟動ORACLE系統
hareg -y oracle
b、關閉ORACLE系統
hareg -n oracle
Oracle資料庫有哪幾種啟動方式
說明:

有以下幾種啟動方式:
1、startup nomount
非安裝啟動,這種方式啟動下可執行:重建控制檔案、重建資料庫
讀取init.ora檔案,啟動instance,即啟動SGA和後臺程序,這種啟動只需要init.ora檔案。
2、startup mount dbname
安裝啟動,這種方式啟動下可執行:
資料庫日誌歸檔、
資料庫介質恢復、
使資料檔案聯機或離線,
重新定位資料檔案、重做日誌檔案。
執行“nomount”,然後開啟控制檔案,確認資料檔案和聯機日誌檔案的位置,
但此時不對資料檔案和日誌檔案進行校驗檢查。
3、startup open dbname
先執行“nomount”,然後執行“mount”,再開啟包括Redo log檔案在內的所有資料庫檔案,

這種方式下可訪問資料庫中的資料。
4、startup,等於以下三個命令
startup nomount
alter database mount
alter database open
5、startup restrict
約束方式啟動
這種方式能夠啟動資料庫,但只允許具有一定特權的使用者訪問
非特權使用者訪問時,會出現以下提示:
ERROR:
ORA-01035: ORACLE 只允許具有 RESTRICTED SESSION 許可權的使用者使用
6、startup force
強制啟動方式
當不能關閉資料庫時,可以用startup force來完成資料庫的關閉
先關閉資料庫,再執行正常啟動資料庫命令
7、startup pfile=引數檔名
帶初始化引數檔案的啟動方式
先讀取引數檔案,再按引數檔案中的設定啟動資料庫
例:startup pfile=E:Oracleadminoradbpfileinit.ora
8、startup EXCLUSIVE
二、使用者如何有效地利用資料字典
 ORACLE的資料字典是資料庫的重要組成部分之一,它隨著資料庫的產生而產生, 隨著資料庫的變化而變化,
體現為sys使用者下的一些表和檢視。資料字典名稱是大寫的英文字元。
資料字典裡存有使用者資訊、使用者的許可權資訊、所有資料物件資訊、表的約束條件、統計分析資料庫的檢視等。
我們不能手工修改資料字典裡的資訊。
  很多時候,一般的ORACLE使用者不知道如何有效地利用它。
  dictionary   全部資料字典表的名稱和解釋,它有一個同義詞dict
dict_column   全部資料字典表裡欄位名稱和解釋
如果我們想查詢跟索引有關的資料字典時,可以用下面這條SQL語句:
SQL>select * from dictionary where instr(comments,'index')>0;
如果我們想知道user_indexes表各欄位名稱的詳細含義,可以用下面這條SQL語句:
SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';
依此類推,就可以輕鬆知道資料字典的詳細名稱和解釋,不用檢視ORACLE的其它文件資料了。
下面按類別列出一些ORACLE使用者常用資料字典的查詢使用方法。
1、使用者
檢視當前使用者的預設表空間
SQL>select username,default_tablespace from user_users;
檢視當前使用者的角色
SQL>select * from user_role_privs;
檢視當前使用者的系統許可權和表級許可權
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
2、表
檢視使用者下所有的表
SQL>select * from user_tables;
檢視名稱包含log字元的表
SQL>select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
檢視某表的建立時間
SQL>select object_name,created from user_objects where object_name=upper('&table_name');
檢視某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&table_name');
檢視放在ORACLE的記憶體區裡的表
SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
3、索引
檢視索引個數和類別
SQL>select index_name,index_type,table_name from user_indexes order by table_name;
檢視索引被索引的欄位
SQL>select * from user_ind_columns where index_name=upper('&index_name');
檢視索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&index_name');
4、序列號
檢視序列號,last_number是當前值
SQL>select * from user_sequences;
5、檢視
檢視檢視的名稱
SQL>select view_name from user_views;
檢視建立檢視的select語句
SQL>set view_name,text_length from user_views;
SQL>set long 2000; 說明:可以根據檢視的text_length值設定set long 的大小
SQL>select text from user_views where view_name=upper('&view_name');
6、同義詞
檢視同義詞的名稱
SQL>select * from user_synonyms;
7、約束條件
檢視某表的約束條件
SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper('&table_name');
SQL>select c.constraint_name,c.constraint_type,cc.column_name
from 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;
8、儲存函式和過程
檢視函式和過程的狀態
SQL>select object_name,status from user_objects where object_type='FUNCTION';
SQL>select object_name,status from user_objects where object_type='PROCEDURE';
檢視函式和過程的原始碼
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
三、檢視資料庫的SQL
1、查看錶空間的名稱及大小
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;
2、查看錶空間物理檔案的名稱及大小
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3、查看回滾段名稱及大小
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 ;
4、檢視控制檔案
select name from v$controlfile;
5、檢視日誌檔案
select member from v$logfile;
6、查看錶空間的使用情況
select sum(bytes)/(1024*1024) as free_space,tablespace_name
from 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;
7、檢視資料庫庫物件
select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
8、檢視資料庫的版本
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
9、檢視資料庫的建立日期和歸檔方式
Select Created, Log_Mode, Log_Mode From V$Database;
四、ORACLE使用者連線的管理
用系統管理員,檢視當前資料庫有幾個使用者連線:
SQL> select username,sid,serial# from v$session;
如果要停某個連線用
SQL> alter system kill session 'sid,serial#';
如果這命令不行,找它UNIX的程序數
SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;
說明:21是某個連線的sid數
然後用 kill 命令殺此程序號。
五、SQL*PLUS使用
a、近入SQL*Plus
$sqlplus 使用者名稱/密碼
退出SQL*Plus
SQL>exit
b、在sqlplus下得到幫助資訊
列出全部SQL命令和SQL*Plus命令
SQL>help
列出某個特定的命令的資訊
SQL>help 命令名
c、顯示錶結構命令DESCRIBE
SQL>DESC 表名
d、SQL*Plus中的編輯命令
顯示SQL緩衝區命令
SQL>L
修改SQL命令
首先要將待改正行變為當前行
SQL>n
用CHANGE命令修改內容
SQL>c/舊/新
重新確認是否已正確
SQL>L
使用INPUT命令可以在SQL緩衝區中增加一行或多行
SQL>i
SQL>輸入內容
e、呼叫外部系統編輯器
SQL>edit 檔名
可以使用DEFINE命令設定系統變數EDITOR來改變文字編輯器的型別,在login.sql檔案中定義如下一行
DEFINE_EDITOR=vi
f、執行命令檔案
SQL>START test
SQL>@test
常用SQL*Plus語句
a、表的建立、修改、刪除
建立表的命令格式如下:
create table 表名 (列說明列表);
為基表增加新列命令如下:
ALTER TABLE 表名 ADD (列說明列表)
例:為test表增加一列Age,用來存放年齡
sql>alter table test
add (Age number(3));
修改基表列定義命令如下:
ALTER TABLE 表名
MODIFY (列名 資料型別)
例:將test表中的Count列寬度加長為10個字元
sql>alter atble test
modify (County char(10));
b、將一張表刪除語句的格式如下:
DORP TABLE 表名;
例:表刪除將同時刪除表的資料和表的定義
sql>drop table test
c、表空間的建立、刪除
六、ORACLE邏輯備份的SH檔案
完全備份的SH檔案:exp_comp.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp"
累計備份的SH檔案:exp_cumu.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp"
增量備份的SH檔案: exp_incr.sh
rq=` date +"%m%d" `
su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incr$rq.dmp"
root使用者crontab檔案
/var/spool/cron/crontabs/root增加以下內容
0 2 1 * * /oracle/exp_comp.sh
30 2 * * 0-5 /oracle/exp_incr.sh
45 2 * * 6 /oracle/exp_cumu.sh
當然這個時間表可以根據不同的需求來改變的,這只是一個例子。
七、ORACLE 常用的SQL語法和資料物件
一.資料控制語句 (DML) 部分
1.INSERT (往資料表裡插入記錄的語句)
INSERT INTO 表名(欄位名1, 欄位名2, ……) VALUES ( 值1, 值2, ……);
INSERT INTO 表名(欄位名1, 欄位名2, ……) SELECT (欄位名1, 欄位名2, ……) FROM 另外的表名;
字串型別的欄位值必須用單引號括起來, 例如: ’GOOD DAY’
如果欄位值裡包含單引號’ 需要進行字串轉換, 我們把它替換成兩個單引號'.
字串型別的欄位值超過定義的長度會出錯, 最好在插入前進行長度校驗.
日期欄位的欄位值可以用當前資料庫的系統時間SYSDATE, 精確到秒
或者用字串轉換成日期型函式TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)
TO_DATE()還有很多種日期格式, 可以參看ORACLE DOC.
年-月-日 小時:分鐘:秒 的格式YYYY-MM-DD HH24:MI:SS
INSERT時最大可操作的字串長度小於等於4000個單位元組, 如果要插入更長的字串, 請考慮欄位用CLOB型別,
方法借用ORACLE裡自帶的DBMS_LOB程式包.
INSERT時如果要用到從1開始自動增長的序列號, 應該先建立一個序列號
CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標記) INCREMENT BY 1 START WITH 1
MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按欄位的長度來定, 如果定義的自動增長的序列號 NUMBER(6) , 最大值為999999
INSERT 語句插入這個欄位值為: 序列號的名稱.NEXTVAL
2.DELETE (刪除資料表裡記錄的語句)
DELETE FROM表名 WHERE 條件;
注意:刪除記錄並不能釋放ORACLE裡被佔用的資料塊表空間. 它只把那些被刪除的資料塊標成unused.
如果確實要刪除一個大表裡的全部記錄, 可以用 TRUNCATE 命令, 它可以釋放佔用的資料塊表空間
TRUNCATE TABLE 表名;
此操作不可回退.
3.UPDATE (修改資料表裡記錄的語句)
UPDATE表名 SET 欄位名1=值1, 欄位名2=值2, …… WHERE 條件;
如果修改的值N沒有賦值或定義時, 將把原來的記錄內容清為NULL, 最好在修改前進行非空校驗;
值N超過定義的長度會出錯, 最好在插入前進行長度校驗..
注意事項:
A. 以上SQL語句對錶都加上了行級鎖,
確認完成後, 必須加上事物處理結束的命令 COMMIT 才能正式生效,
否則改變不一定寫入資料庫裡.
如果想撤回這些操作, 可以用命令 ROLLBACK 復原.
B. 在執行INSERT, DELETE 和 UPDATE 語句前最好估算一下可能操作的記錄範圍,
應該把它限定在較小 (一萬條記錄) 範圍內,. 否則ORACLE處理這個事物用到很大的回退段.
程式響應慢甚至失去響應. 如果記錄數上十萬以上這些操作, 可以把這些SQL語句分段分次完成,
其間加上COMMIT 確認事物處理.
二.資料定義 (DDL) 部分
1.CREATE (建立表, 索引, 檢視, 同義詞, 過程, 函式, 資料庫連結等)
ORACLE常用的欄位型別有
CHAR 固定長度的字串
VARCHAR2 可變長度的字串
NUMBER(M,N) 數字型M是位數總長度, N是小數的長度
DATE 日期型別
建立表時要把較小的不為空的欄位放在前面, 可能為空的欄位放在後面
建立表時可以用中文的欄位名, 但最好還是用英文的欄位名
建立表時可以給欄位加上預設值, 例如 DEFAULT SYSDATE
這樣每次插入和修改時, 不用程式操作這個欄位都能得到動作的時間
建立表時可以給欄位加上約束條件
例如 不允許重複 UNIQUE, 關鍵字 PRIMARY KEY
2.ALTER (改變表, 索引, 檢視等)
改變表的名稱
ALTER TABLE 表名1 TO 表名2;
在表的後面增加一個欄位
ALTER TABLE表名 ADD 欄位名 欄位名描述;
修改表裡欄位的定義描述
ALTER TABLE表名 MODIFY欄位名 欄位名描述;
給表裡的欄位加上約束條件
ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY (欄位名);
ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE (欄位名);
把表放在或取出資料庫的記憶體區
ALTER TABLE 表名 CACHE;

相關推薦

oracle一些基本語法

一、ORACLE的啟動和關閉1、在單機環境下要想啟動或關閉ORACLE系統必須首先切換到ORACLE使用者,如下su - oraclea、啟動ORACLE系統oracle>svrmgrlSVRMGR>connect internalSVRMGR>start

oracle資料庫基本語法整理

• create user 使用者名稱 identified by 密碼 建立使用者 • drop user 使用者名稱 刪除使用者名稱 刪除使用者時如果已經建立表必須指定cascade • grant connect to 使用者名稱 增加許可權 • --增加註釋 com

oracle資料庫基本語法

•create user 使用者名稱 identified by 密碼 建立使用者 •drop user 使用者名稱 刪除使用者名稱 刪除使用者時如果已經建立表必須指定cascade •grant connect to 使用者名稱 增加許可權 •--增加註釋 c

關於oracle一些常見語法彙總

備註:要進行下面的相關操作練習,請使用oracle內建的帳號scott/tiger進行登入。下面示例中所用到的表主要是scott內建帳戶提供的emp和dept兩張表。 一、檢視和索引的使用 1、檢視 檢視的語法(檢視的建立必須要有dba的許可權) create

Oracle基本語法和操作

 ORACLE中的幾大基本操作指令及其含義    資料定義語言(DDL):用於建立、修改、刪除資料庫的物件(對列操作)       1.CREATE:建立表或其他物件的結構       2.ALTER:修改表或其他物件的結構       3.DROP:刪除表或其他物件的結構

Oracle 一些基本操作

1.連線Oracle資料庫 >sqlplus "/as sysdba"     ---預設使用本地NT賬號登入 2. 查詢SCOTT賬號的狀態 select username,account_status from dba_users where username='

Oracle-4 - :超級適合初學者的入門級筆記:plsql,基本語法,記錄類型,循環,遊標,異常處理,存儲過程,存儲函數,觸發器

個人 就會 逗號 n) 循環結構 less 寫上 所有 targe 初學者可以從查詢到現在的pl/sql的內容都可以在我這裏的筆記中找到,希望能幫到大家,視頻資源在 資源, 我自己的全套筆記在 筆記 在pl/sql中可以繼續使用的sql關鍵字有:update delet

1.oracle 基本語法

1.資料庫:存放資料的倉庫; 2.常見的資料庫:Access、Sql Sever、Oracle、DB2、Mysql(免費) 3.欄位:表中的列;    實體:表中的一行對於一個實體,或者叫做一條記錄; 4.資料型別:      1.Varchar

shell指令碼的一些基本入門語法

$#:代表命令列引數個數 $*:代表所有引數 $n:第n個引數 $?:代表最後一個命令返回值 $$:代表當前shell的程序號PID $是變數的引用符   = 是最基本的賦值 := 是覆蓋之前的值 ?= 是如果沒有被賦值過就賦予等號後面的值 += 是

MySQL儲存過程中的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL的儲存過程/函式的使用區別,退出儲存過程方法

  學無止境 部落格園   首頁   新隨筆   聯絡   訂閱  管理 隨筆-1968  評論-103  文章-4&

Oracle總結 02》--基本語法的應用

1:查詢emp表中資料,列出兩列,內容為名字與職位, 顯示格式:ename:job;   SELECT * FROM emp_xiangyoulu;   SELECT ENAME,CONCAT(':',JOB) FROM emp_xiangyoulu;   &

oracle筆記pl_sql基本語法記錄型別01

/* pl/sql 基本語法 記錄型別 */ /* 1.pl/sql基本的語法格式 2.記錄型別 type ... is record(,,,); 3.流程控制 3.1條件判斷(兩種) 方式1:if ... then elsif then ... else ..

分享知識-快樂自己:Oracle基本語法(建立:表空間、使用者、授權、約束等)使用指南

--2.1)建立主鍵約束-- alter table Student add constraint PK_Student_StuId primary key(StuId); alter table StuClass add constraint PK_StuClass_ClassId primar

ORACLE 基本語法

查詢序列:SELECT SEQ_PM_PRODUCT_TREE.nextval FROM DUAL 刪除序列:drop sequence SEQ_PM_PRODUCT_TREE; 建立序列:create sequence SEQ_PM_PRODUCT_TREE star

Oracle一些基本概念(一)

1、超鍵、候選鍵、主鍵、外來鍵 ☆超鍵(superkey):在關係中能唯一標識元組的屬性集,在一個關係型資料表中,超鍵可以有多個,一個屬性可以被稱為超鍵,多個屬性集也可以被稱為超鍵 (超鍵包含主鍵和候選鍵)。 ☆候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵,就是去掉任何一個屬性都不

Oracle 子查詢的基本語法以及使用原則

在整個SQL查詢語句過程中,子查詢並不具備特殊的語法,在整個SQL查詢操作子句中:SELECT、  FROM  、WHERE 、GROUB BY  、HAVING  、 ORDER BY。 如果非要給出子查詢的語法,那麼只能怪進行拼湊。

Oracle基本語法查詢語句

Oracle基本查詢語法 本文含含: 基礎/基本查詢/排序/函式(單/多) 一.前言知識 1.oracle如何操作硬碟上的檔案,最終都是以程序方式操作硬碟上的檔案,最基本程序:讀 寫 ,還有其他客戶端

oracle資料庫建立表的基本語法

建立表的基本語法        create table 表名(           列名1  資料型別1,           .......           列名n  資料型別n      

Oracle儲存過程基本語法(一)

概念:儲存過程 儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。 在大型資料庫系統中,儲存

oracle基本的操作語法

oracle資料庫基本操作 插入資料: 語法: insert intotable (column1, column2, …)                             values (column1_value,column2_value, …) 注意格式: