varchar2(n) 變長型別,最長4000個字元
char(n) 定長,最長2000個字元
變長與定長的區別:
varchar2(n) ,char(n) 為例, 2者最多能存n個字元, 不同在於,char(n)??如果使用者表還有個人簡介字段,少的10來字,多的1000字,,如果實際只存1個字元,仍佔據n個字元的空間 varchar(n) ,如果實際存在1字元,佔據1+[1-2]字元 char效能高一些,
開發優化例項:在一些大的**上, 使用者名稱一般允許6-16字元 char(16)
用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 ...