oracle初識005 列型別和建表

2021-08-22 10:25:37 字數 1480 閱讀 6563

varchar2(n) 變長型別,最長4000個字元

char(n) 定長,最長2000個字元

變長與定長的區別:

varchar2(n) ,char(n) 為例, 2者最多能存n個字元, 不同在於,char(n)

,如果實際只存1個字元,仍佔據n個字元的空間 varchar(n) ,如果實際存在1字元,佔據1+[1-2]字元 char效能高一些,

開發優化例項:在一些大的**上, 使用者名稱一般允許6-16字元 char(16)

??如果使用者表還有個人簡介字段,少的10來字,多的1000字,

用char太浪費了,怎麼辦?

答:豎直分表,把錶的不常用及低效率字段,拆出來,放到另一張表.

number型別 ,可以存整數和浮點數

number(m,n) m:是總位數(精度),是小數點後面的位數(標度)

number(5,2) , 999.99

date 日期型別 :年月日

(精確到秒,儲存時間戳)

時間戳是指1970/01/01/00:00:00到當前瞬間的秒數

建表就是乙個宣告列的過程

典型語法:

create table 表名 ( 列名稱 列型別, 列名稱 列型別, … );

檢視表結構:

desc 表名

修改表:

刪除列: alter table 表名 drop column 列名

例: alter table employee drop intro;

增加列: alter table 表名 add (列名 列型別)

改列: alter table 表名 modify (列名 新列型別)

-注意:在mysql中是有: 改列同時改名 alter table 表名 change 原列名 新列名 列型別)

修改欄位的名:alter table 表名 rename column (原列名) to (新列名)

改表名: alter table 表名 rename to 新錶名

快速複製一張表:

create table 表名 as select */字段 from 另一張表

??我只是想複製表結構,不想要資料??

可以在where後加乙個恒為假的條件

例:create table empcopy2 as select * from employer where 2<1;

刪除表: drop table 表名

清空表: truncate table 表名

–新增時如果有資料不能設定not null.

–刪除不可在sys下使用。

–這些都是在資料庫層面上,針對表和表結構操作,屬於ddl

列型別和表型別

在定義變數時處理可以使用oracle規定的資料型別外,還可以使用 type和 rowtype來定義變數.type型別的變數是專門為儲存在資料列中檢索到的值而建立的.對於使用 type建立的變數,其資料型別由系統根據檢索的資料列的資料型別決定.rowtype型別的變數,它可以一次儲存從資料庫檢索的一行...

語言結構和列型別

mediumint m unsigned ierorill 資料型別 中等大小的整數。帶符號的範圍是 32768到32768。無符號的範圍是0到65535。字串指用單引號 或雙引號 引起來的字串行。識別符 對大長度 位元組 允許的字元 資料庫 64 目錄允許的任何字元,不包括 或 0 表 64 目錄...

oracle 資料庫修改列型別

新增備份字段 alter table acc accitem add back type char 1 備份字段 update acc accitem t set t.al type null t.back type decode al type,1 a 2 l 3 e 4 i 5 p 6 o 7 ...