oracle入坑日記<五>數據表

 

1
 
數據表

1.一、數據表是存放數據字段信息的地方;在Oracle,數據表擁有者單位是用戶,同時數據表屬於表空間。如: 登陸my_user用戶在orcl表空間下建立的表就是 my_user用戶在ocrl表空間下的數據表(有點繞,多用用就瞭解了html

2
 
建立數據表

2.一、建立數據表數據庫

create table RYXXB(    -- 建立表名
   RYID number(5) primary key,  -- primary key 設置主鍵
   RYXX varchar(10) not null,   -- not null 不可爲空
   RYBH varchar(10) unique,     -- unique 惟一約束
   RYXB char(4) default '' check(RYXB in ('','')), --check條件約束 默認值爲'男'
   RYNL number(3) check(RYNL > 1 and RYNL < 101)   --check條件約束(同時知足多條件)
);
create table RYSFB(    -- 建立表名
   SFID number(5) primary key,  -- primary key 設置主鍵
   RYID number(5) references RYXXB(RYID),   -- references 外鍵約束
   SFSM varchar2(100)
);

2.二、數據類型(這裏僅介紹經常使用數據類型oracle

  2.2.一、number(數字) : number(3) 三位整數(最大值999),number(3,5) 整數部分三位,小數部分五位的小數(最大值999.99999);大數據

  2.2.二、char(定長字符) : char(5) 長度爲5的字符,若長度不足5自動以空格填滿;flex

  2.2.三、varchar2(變長字符):varchar2(5)最大字符長度爲5,若長度不足5不會自動空格填滿;spa

  2.2.四、clob(大文本):儲存較多文字數據,好比,新聞,文章,介紹等;.net

  2.2.五、blob(其餘文件):儲存圖片,音頻,視頻等文件,將文件以二進制方式存儲(好像2G如下文件都能用這個類型存);3d

  2.2.六、datetimestamp(時間):兩個都是用來儲存時間,且都是能夠儲存 年月日 時分秒,可是timestamp的精確度更高;code

     date: timestamp:orm

     數據庫同時執行多條命令時,不到一秒就能執行完畢,若是用date記錄對某條數據操做的前後是作不到的,這種狀況使用timestamp就能夠看到操做記錄的前後;

  2.2.七、nvarchar2(變長字符):與varchar同爲變長字符,兩者區別詳見此處

  2.2.八、更多數據類型,做爲SQLserver的用戶,表示沒有int 沒有bit 有點不習慣。

  

2.三、約束相似(這裏僅介紹經常使用約束類型

  2.3.一、primary key(主鍵約束):不可爲空,一張表有且只有一個主鍵不可重複(能夠有複合主鍵)。

  2.3.二、references(外鍵約束):關聯另外一張表,兩張表字段相關聯,沒法單獨刪除父表被關聯字段數據(僅爲普通外鍵,還有級聯外鍵約束、置空外鍵約束 詳見此處 )。

  2.3.三、check(檢查約束):自定義約束條件。

  2.3.四、not null(非空約束):該字段不可爲空。

  2.3.五、unique(惟一約束):惟一性約束指表中一個字段或者多個字段聯合起來可以惟一標識一條記錄的約束。聯合字段中,能夠包含空值。

  2.3.六、unique和primary key很是像,都有惟一性,組合性。兩者也有區別:(兩者區別詳見此處

    2.3.6.一、primary key全部組成主鍵的列都不能包含空值,而unique 若是惟一性約束由多列組成,其中的部分列能夠包含空值。

    2.3.6.二、同一列不能即爲primary key 又爲 unique ,兩者只能選其一。

3
 
刪除數據表

 3.一、刪除數據表  drop table [user].[tablename]; --[user]操做其餘用戶表是需指定用戶 

4
 
清空表數據

 4.一、清空表數據有兩種方法 delete truncate 

  truncate: truncate table [user].[tablename]; --[user]操做其餘用戶表時需指定用戶 

  delete: delete from [user].[tablename]; --[user]操做其餘用戶時需指定用戶 

4.二、truncate、delete 區別

  delete: 會產生rollback(回滾事務),若是刪除大數據量的錶速度會很慢,同時會佔用不少的rollback segments(回滾事務)。

  truncate:是DDL操做,不產生rollback,速度快,truncate 慎重使用一旦清除 數據沒法rollback segments(回滾事務)恢復。

<<============================================================================================================================================>>

此日記系列僅作普通開發使用Oracle,並不是專業DBA
相關文章
相關標籤/搜索