Oracle中資料字典和資料型別

2021-07-25 02:28:42 字數 3542 閱讀 3395

一、資料字典

1.查詢某使用者下的所有表

select table_name from all_tables where owner='scott'; --使用者名稱需要大寫
2.查詢表中所有的字段

select * from all_tab_columns where table_name='emp'; --表名要大寫
3.列出表中的索引列

4.列出表中約束

select * from all_constraints where table_name='emp';--表名要大寫
5.在oracle中描述資料字典檢視

select table_name,comments from dictionary where table_name like '%table%';
二、資料型別

1.主要的資料型別

char,nchar,varchar2,nvarchar2,number(),date,blob(binary二進位製流的大物件),clob(檔案大物件)

注意:1.char是以固定長度的,所以速度會比varchar2快得多,但是程式處理起來稍微複雜,要用trim()去掉字串兩端的空格。

2.varchar2一般用於英文和數字,nvarchar2適用中文和其他字元,其中n表示unicode常量,可以解決多語言字符集之間的轉換問題。

3.numbers(4,2)指的是整數佔2位,小數佔2位(截斷的時候需要四捨五入) 

4.number預設是38位。number(4,2)  指的是整數佔 2 位,小數佔 2 位

5.oracle ( char nchar varchar2 nvarchar2 )區別

char

固定長度,非 unicode 字元資料,長度為 n 個位元組。n 的取值範圍為 1 至 8,000,儲存大小是 n 個位元組。char 的 sql 2003 同義詞為 character。

varchar2

可變長度,非 unicode 字元資料。n 的取值範圍為 1 至 8,000。max 指示最大儲存大小是 2^31-1 個位元組。儲存大小是輸入資料的實際長度加 2 個位元組。所輸入資料的長度可以為 0 個字元。sql-2003 中的 varchar2 就是 char varying 或 character varying。

nchar

n 個字元的固定長度的 unicode 字元資料。n 值必須在 1 到 4,000 之間(含)。儲存大小為兩倍 n 位元組。nchar 的 sql-2003 同義詞為 national char 和 national character。

nvarchar2

可變長度 unicode 字元資料。n 值在 1 到 4,000 之間(含)。max 指示最大儲存大小為 2^31-1 位元組。儲存大小是所輸入字元個數的兩倍 + 2 個位元組。所輸入資料的長度可以為 0 個字元。nvarchar2 的 sql-2003 同義詞為 national char varying 和 national character varying。 

oracle字元型別詳解----char、nchar、varchar、varchar2、nvarchar2

char:

使用資料庫字符集來儲存資料,長度固定,如果儲存的資料沒有達到指定長度,自動補足空格。指定長度時,預設長度的計量單位由nls_length_semantics(預設為位元組byte)引數決定,但是我們可以手動指定為char或者byte。oracle建議使用nls_length_semantics來指定計量單位,這樣可以提高效率。char型別的最大儲存長度為2000個位元組,在plsql中,最大儲存長度可以達到32767個位元組。使用char時,可以不指定最大長度,此時最大長度為1.

nchar:

使用國家字符集來儲存資料,長度固定,如果儲存的資料沒有達到指定長度,資料庫自動補足空格。指定長度時,採用char為計量單位,不可以手動指定其他單位。最大儲存長度為2000個位元組,在plsql中,其最大儲存長度可以達到32767個位元組。使用nchar時,可以不指定最大長度,此時最大長度為1.

varchar2: 使用資料庫字符集儲存資料,長度可變,如果儲存資料沒有達到指定長度,不自動補足空格。可使用char,byte為計量單位,預設受引數nls_length_semantics的影響。最大儲存長度為4000個位元組,在plsql中,儲存長度可達32767個位元組。必須指定最大長度,長度最小值為1.

nvarchar2:

使用國家字符集來儲存資料,長度可變,如果儲存的資料沒有達到指定長度,不自動補足空格。指定長度時,採用char為計量單位,不可以手動指定其他單位。最大儲存長度為4000個位元組,在plsql中,其最大儲存長度可以達到32767個位元組。必須指定最大長度,長度最小值為1.

varchar:

oracle目前並沒有實現該資料型別,當前版本下,varchar與varchar2完全一致,但不保證將來不會單獨設計varchar。

三、dml(改變資料結構)

merge

oracle在9i引入了merge命令,

通過這個merge你能夠在乙個sql語句中對乙個表同時執行inserts和updates操作. 當然是update還是insert是依據於你的指定的條件判斷的,merge into可以實現用b表來更新a表資料,如果a表中沒有,則把b表的資料插入a表. merge命令從乙個或多個資料來源中選擇行來updating或inserting到乙個或多個表

語法如下

merge into [表名2] [別名]

using ( [查詢語句] )[別名]

on ([條件表示式] and [...]...)

when mathed then [可以執行update更新語句或其它語句]

when not mathed then [可以執行插入語句或其它語句 ]

例子:

create table test1(eid number(5),name varchar2(20),birth date,salary number(8,2));

insert into test1 values(1001,'zhangsan','1992-11-5','3500');

insert into test1 values(1001,'lisi','1995-8-12','5600');

create table test2(eid number(5),name varchar2(20),birth date,salary number(8,2));

merge into test2 t2

using (select * from test1) t1

on(t1.eid=t2.eid)

when matched then

update set name=t1.name,birth=t1.birth,salary=t1.salary

when not matched then

insert(eid,name,birth,salary) values(t1.eid,t1.name,t1.birth,t1.salary);

Oracle 資料字典

資料字典包括以下內容 1.所有資料庫schema物件的定義 表,檢視,索引,聚簇,同義詞,序列,過程,函式,包,觸發器 2.資料庫的空間分配和使用情況 3.欄位的預設值 4.完整性約束資訊 5.oracle使用者名稱,角色,許可權等資訊 6.審計資訊 7.其他資料庫資訊 資料字典有4部分組成 內部r...

oracle 資料字典

oracle資料字典 select from user tab columns 檢視使用者列物件 select from user tab comments 檢視使用者表的備註 select from user tab statistics select from all users 所有使用者 s...

Oracle 資料字典

資料字典包括以下內容 1.所有資料庫schema物件的定義 表,檢視,索引,聚簇,同義詞,序列,過程,函式,包,觸發器 2.資料庫的空間分配和使用情況 3.欄位的預設值 4.完整性約束資訊 5.oracle使用者名稱,角色,許可權等資訊 6.審計資訊 7.其他資料庫資訊 資料字典有4部分組成 內部r...