Oracle基礎學習筆記(三)

2021-07-12 05:05:05 字數 3811 閱讀 4376

表是資料庫的基本儲存單位,下面羅列出幾個基本特點:

那麼,oracle資料庫中的類具有哪些型別呢,如下圖:

如果使用固定長度的字元型別,當你定義型別時分配了10個位元組的長度char(10),那麼就算實際只需要2個位元組來存放內容資料庫仍分配為10個位元組;可變長度則反之,即實際分配的儲存空間會根據實際存放的資料量來定。另外,char(n)和nchar(n的區別是後者是按照unicode編碼格式存放資料的。

number(p,s)型別中的p表示有效位數,s則表示小數所佔的位數;float一般主要用來儲存二進位制數的。date和timstramp型別的主要區別是精確度,前者精確到秒,後者屬於時間戳型別精確到秒的小數字。

至於blob和clob則是專門用來存放大的資料物件,這兩類資料的存放上限是4gb。前者以二進位制存放資料,後者以字串形式存放。

建立表建立表語法如下:

create

table table_name

( column_name datatype,...

);

如圖建立表userinfo:

修改表我們可以更改剛建立的userinfo表,可以對錶中的字段進行增刪,也可以修改欄位的名字和型別。同時,我們也可以對整張表的表名修改。

語法如下:

--新增表字段

alter

table table_name

add column_nmae datatype;

--刪除表字段

alter

table table_name

drop

column column_name;

--修改字段型別

alter

table table_name

modify column_name datatype;

--重新命名欄位名字

alter

table table_name

rename column column_name to

new_column_name;

--重新命名表名

rename table_name to new_table_name;

**示例如下:

新增表字段

刪除表字段

修改字段型別

重新命名欄位名字

重新命名表名

刪除表如果只是想刪除表中的資料可用delete或者truncate,語法如下:

--delete用法

delete

from table_name [條件]

--truncate用法

truncate

table table_name

那麼兩者有什麼差別呢?

簡單的說delete語句是屬於dml,執行時是逐條刪除的,每條記錄都會被寫入日誌。整個操作會放到rollback segement中,因此是可回滾的,當事務提交時才生效。

而truncate的用法又被稱為截斷表,是ddl語言。該操作會被隱式提交立即生效,原資料不放到rollback segment中,因此不能回滾

具體的區別可自行查詢,也可參考這兩篇博文,博文1,博文2。

以上是刪除表資料的內容,如果我們想刪除表結構可以使用drop,語法格式為:

--drop用法

drop

table table_name

新增表資料

對乙個已經存在的表我們可以向其新增資料,語法為:

insert

into table_name

(column1,column2,...)

values(value1,value2,...)

在新增資料時,某個字段資料為空此時我們想讓他預設顯示某個值,這時我們可以新增預設值。

我們可以在建立表的時候設定:

create

table table_name

(column1 default 預設值1,...)

如果表已經建好了,我們可以這樣修改:

alter

table table_name

modify column1 default 預設值

修改表資料

修改表資料語法如下:

update table_name

set column1=value1,...

[where conditins]

複製表資料

在新增資料時,有時候我們可能會遇到這樣一種需求:我們所要新增到表a的資料已經是在表b存在了,那這時候我們只需要將這些資料從表b轉移到表a。分成兩種情況:

在建立表時獲取資料:

在新增獲取複製資料(表已存在):

insert

into table_new

[(column1,...)]

select column1,...|*

from table_old;

後者需要注意的是table_new和table_old表中賦值時對應的資料個數、型別以及順序需完全一致。

刪除表資料

刪除表資料在3.2節中講述過了,這裡羅列下語法:

delete

from table_name

[where conditions]

Oracle 學習筆記(三)

約束 定義規則,確保資料完整性 規範性 1 非空約束 注意 非空約束盡可以列級新增,不可表級新增 在建立表時新增非空約束 create table table name column1 datatype not null,在修改表時新增非空約束 alter table table name modi...

Oracle學習筆記(三)

oracle 許可權傳遞 sky使用者登入 grant all on mytab to sinitek 授權mytab所有許可權給sinitek sinitek使用者登入 grant all on sky.mytab to freedom 授權sky的表mytab給freedom使用者 報錯,ora...

Oracle 學習筆記(三)

cid number 4 primary key,班級編號 cname varchar2 100 unique not null,班級名稱 cyear number 4 入學年份 clen number 1 學制 建立學生表 create table stuinfo stuno number 4 p...