Oracle 初學筆記

2021-04-21 05:42:16 字數 3014 閱讀 1143

1、sql語句的分類

資料定義語言(ddl)

ddl語句可以定義資料庫物件,以及產生對oracle資料字典的更新。ddl語句可以建立、修改和刪除各種物件,例如表、檢視、儲存過程、資料庫觸發器、資料庫鏈結以及資料庫中幾十種其他的物件。

資料操縱語言(dml)

dml使用insert、update、delete、select來操縱資料。

在oracle環境中,支援一種稱為一致性讀映像的概念,即使用者在通過insert、update和delete語句對資料庫做出未提交的更改的同時,並不會妨礙另乙個使用者發出的select語句。commit語句建立乙個新的檢查點,利用該點可以及時地將表資料更新到乙個一致點上。從一條select語句返回給使用者的結果肯定是來自最近一次執行commit時的那些行。

事務控制

也就是,要麼「所有語句都成功完成」,否則,只要有語句失敗,那麼這一組內所有語句都要失敗。

會話控制

會話控制語句維護使用者資料庫連線期間的臨時性和永續性。例如下面乙個常見的修改會話命令:

sql>alter session set nls_date_format = 'yyyy-mon-dd hh24:mi:ss';

sql>select sysdate from dual ;

查詢結果:

2008-10-25 23:42:49

系統控制

系統控制語句基本上都是資料庫管理命令。這些sql語句用於開啟資料庫、關閉資料庫,以及執行一些管理命令。

2、表列資料型別

字元varchar2(n)

varchar2是常見的字串型別,用於儲存最長為4000個字元的字串。實際上,這是一種變長度的字串。它只是用所需的最少位元組-沒有填充。引數n是必需的。

char(n)

char用於儲存固定長度的字串。如果所插入的長度小於char所宣告的長度,則右邊以空格填充

nchar(n)、nvarchar2(n)

這兩種型別僅用於儲存unicode字元資料。

數字number、number(a)、number(a,b)

這種列型別用於儲存數字。不要使用精確的引數來儲存未知範圍的值。引數「a」代表精度,即佔位符的總位數。引數「b」表示刻度,即小數字右邊的位數。刻度是可選的,如果沒有這個引數,則將作為整數儲存。對於分數,在插入時將被四捨五入為最接近的整數。如果只是使用刻度,則可以使用number(*,b)。

日期型別

date

date型別用於儲存日期和時間。date型別的預設顯示格式為dd-mon-yy,通過alter session命令,可以修改這種預設的顯示格式。

timestamp、timestamp(a)

timestamp資料型別是從date型別派生而來的。它可以表示與date具有相同精度的時間,並且包括秒的小數部分。引數「a」表示時間戳小數部分的位數。timestamp可以結合時區。分布在多個不同時區的應用程式很可能會使用這種型別的日期列。interval型別以特定的有效位表示時差。timestamp的格式為:

28-jul-03 01.25.56.000122 pm

大型物件

clob、blob、nclob

使用clob儲存大型字元物件,上限是4gb。而varchar2最長4000字元。基於字元的列如果超出4gb,則應該使用clob型別。使用blob儲存4gb的二進位制資料。對clob、blob的操作是通過乙個clob/blob api進行的。該api是oracle的內建包dbms_lob。nclob型別儲存使用國家字符集(national character set)的4gbunicode字元物件。

bfile

物件不必物理存在乙個列中。實際上,列可以作為物件的引用。這樣的物件可以是主機磁碟上的乙個檔案。bfiel可以作為對外部檔案的引用。而外部檔案的內容這通過dbms_lob api來訪問。注意下面建立oracle目錄要求擁有create any directory的許可權。

create or replace directory

student_files as 'd:/student_files';

create table student_writing_samples

(student_id varchar2(10),

writing_samples bfile

);xml型別

xmltype

xmltype是隨oracle9i/release 2一起發布的。這種型別用於儲存xml文件,作為某個實體的屬性。

create table student_transcripts

(student_id varchar2(10),transcript sys.xmltype

);xmltype有內建方法。如:

insert into student_transcripts (student_id,transcript)

values ('a101',sys.xmltype.createxml(

''||''

||'math 101'

||'a'

||''

||''

||'english 102'

||'a'

||''

||''));

long和raw型別

long

在版本8中,oracle引入了對大型物件的支援。在此版本發布之前,超出varchar2型別範圍的字串可以通過使用long資料型別來操縱,不過功能有所限制。現在超出varchar2限制的字串可以作為clob。

raw、long raw

與long類似,在oracle8提供lob支援之前,raw和long raw資料型別也有其用途。raw和long raw型別用於操縱二進位制資料。

rowid型別

rowid、urowid

rowid包含組合資訊,執行oracle標識,形成乙個單獨的rowid值,通過這個值可以定位乙個表中某個特定行(即表空間、檔案、資料庫塊以及在塊中的特定位置)。可以宣告乙個帶有rowid型別的列的表。用rowid值填充該錶,並且使用oracle內建包dbms_rowid提取該值的資訊。urowid是一種通用rowid值,它支援非oracle的表

Oracle學習筆記 初學

2002年註冊甲骨文公司 基於cs架構 資料庫的例項 資料庫 通常的資料庫只有資料庫的概念 而oracle有資料庫例項的概念 資料庫儲存了 資料檔案 控制檔案 日誌檔案 我們將這些靜態的檔案都稱之為資料庫,而這些檔案的產生和維護 通常都是由例項來完成 例項會載入這些檔案,然後在具體的記憶體裡 由後台...

初學oracle筆記 3

使用子查詢的方式建立表 create table 表名 as 查詢語句 注意 只會複製表結構和表中的資料,不會有列的約束 新增列alter table 表名 add 列名 varchar 10 修改列名 alter table 表名 rename column 舊列名 to 新列名 修改列 modi...

初學Oracle學習筆記之Oracle常見操作總結

本文我們主要對初學oracle資料庫的一些oracle常見操作進行了總結,並以 示例的形式呈現出來,在此與各位初學者分享,希望能夠對您有所幫助。ad 線下活動 三大新銳html 5企業匯聚51cto 大話移動前端技術 對於初學者來說,oracle資料庫的學習是有一定的難度的,俗話說得好 凡事入門難,...