4、建表操作
學習目標:
1、掌握Oracle提供的資料型別
2、掌握PL/SQL的建表語法
學習過程:
一、什麼是表
表是Oracle資料庫最基本的物件,他是儲存使用者資料,關係資料庫的所有操作最終都是圍繞使用者資料(表)進行的。
表對應於現實世界中的物件(例如部門和僱員)。當進行資料庫的設計時,需要構造E-R圖(實體關係圖),在將E-R圖轉變成為資料庫物件的時候,實體最終轉換為資料庫表。表由行和列兩部分組成,其中列用於描述實體的屬性,行則用於表現實體的資料。
二、資料型別
和學習java一樣,我們首先學習資料庫支援那些基本資料型別。其實oracle資料庫的資料型別比java的還要簡單。
1、字元型,主要有三個
char(
varchar(
varchar2(
佔用空間可變化
2、數值型
number(
,),p實質有效數位,s是指小數位,比如number(5,2)。
Integer/int其實也是number型別,和number(38)表示的意思是一樣的。
在定義整數型別的時候,可以直接使用number的子型別int、float。
3、日期型 date,預設格式為DD-MON-YY。
timestamp[秒小數位數],是date 的擴充套件。
這裡我想和大家說說Char、varchar和varchar2之間的區別:
1.CHAR的長度是固定的,而VARCHAR2的長度是可以變化的,比如,儲存字串“abc",對於CHAR (20),表示你儲存的字元將佔20個位元組(包括17個空字元),而同樣的VARCHAR2 (20)則只佔用3個位元組的長度,20只是最大值,當你儲存的字元小於20時,按實際長度儲存。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同義詞。工業標準的VARCHAR型別可以儲存空字串,但是Oracle不這樣做,儘管它保留以後這樣做的權利。Oracle自己開發了一個數據型別VARCHAR2,這個型別不是一個標準的VARCHAR,它將在資料庫中varchar列可以儲存空字串的特性改為儲存NULL值。假如你想有向後相容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。
何時該用CHAR,何時該用varchar2?
CHAR與VARCHAR2是一對矛盾的統一體,兩者是互補的關係。VARCHAR2比CHAR節省空間,在效率上比CHAR會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在資料庫設計上常說的‘以空間換效率’。 VARCHAR2雖然比CHAR節省空間,但是假如一個VARCHAR2列經常被修改,而且每次被修改的資料的長度不同,這會引起‘行遷移’(Row Migration)現象,而這造成多餘的I/O,是資料庫設計和調整中要盡力避免的,在這種情況下用CHAR代替VARCHAR2會更好一些。
三、建表
有了上面的基礎那麼我們就可以建表了。
1、命名規則
建表之前先了解一下資料庫在定義時的命名規則。
(1)必須以字母開頭 n字元長度在1-30之間,只能包含A-Z,a-z,0-9,_,$和#,
(2)被同一個使用者擁有的物件不能有重複的名字。
(3)不能是Oracle伺服器保留字
2、建表語法
create table 表名
(
列名 型別 約束等
)
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|