1. 程式人生 > >[oracle初級]關於簡單的建表的,新增資料,設定約束條件等

[oracle初級]關於簡單的建表的,新增資料,設定約束條件等

1.Oracle建表

oracle資料庫常用的5種標準資料型別

CHAR(length) 儲存固定長度的字串,若儲存的字元長度較小,在末尾填空格 。   

VARCHAR(length) 儲存可變長度的字串,length引數是指定的引數最大長度,但僅僅是預定義,可擴充套件。

DATE 儲存日期和時間,格式需要根據自己要求定義,可儲存公元前4712.01.01-公元9999.01.01 常用格式為‘yyyy-MM-dd’

INTEGER 儲存整數,必須是整數數字,不可是浮點數,簡單理解為自然數,(但也支援INT)

NUMBER(precision,sacle)儲存儲存浮點數,precision精度是使用的最大位數,包括小數點之前和之後的部分總和,oracle資料庫支援的最大精度為38位。

建立語句:

CREATE [GLOBAL TEMPORARY] TABLE table_name    ---GLOBAL TEMPORARY 該表的行都是臨時的

(column_name type [CONSTRAINT constraint_def DEFAULT default_exp], ---column 列名,type資料型別

column_name type [CONSTRAINT constraint_def DEFAULT default_exp]...) ---constraint_def 指定對某個列的約束,

[ON COMMIT {DELETE | PRESERVE} ROWS] ---on commit控制表的有效期,delete 說明行在事務在結束時才能刪除,preserve說明行在使用者會話結束時才能被刪除,若沒指定,預設為delete。

TABLESPACE tab_space; ----tab_space 該表的指定表空間,若沒指定,預設儲存在該使用者的預設表空間中。

事實上,建立表的語法遠遠比這個複雜,但實際建立表卻也沒這麼麻煩,一般為簡單建立:

eg:create table person (
id int constraint id_pk primary key,name varchar(200) constraint name_not not null,age integer,

city varchar(50) constraint city_not not null,sex char(4) constraint sex_ck check(sex in('M','W')),

birthday date constraint bir_not  not null); ----其中列的名稱不能為關鍵字,像‘name','user'之類的雖然可以建立,但也為關鍵字,應該儘量避免使用。

2.資料表的修改

①向表中新增一列  :ALTER TABLE table_name add (column_name,type)

eg: ALTER TABLE person ADD(telphone,char(11));

②修改表中某一列的資料型別 :ALTER TABLE table_name modify (column_name,type);

eg: alter table person  modify (name,char(50));

③ 修改某一列的列名 : alter table table_name rename column old_name to new_name;

eg: alter table person rename column city to hometown;

④修改表名 : Rename table old_name to new_name

eg: alter table person to people;

三、設定主鍵自增長

①建立序列: create sequence seq_id  increment by 1 start with 1 minvalue 1 nomaxvalue nocycle  nocache;

----對id這個列建立序列,從1開始每次增長1,最小值是1,沒有最大值,不迴圈,沒有快取。

②建立觸發器

create trigger tri_id 
before  insert on students for each row when(new.id is null)
begin
  select seq_id.nextval into:new.id from dual;

  end;

四 插入資料

① 對所有列都插入資料 : insert into table_name values('','',...);

② 未對所有列都插入資料,則必須指明每列的列名: insert into table_name(column_name1,column_name2,...)values('','',..)

eg:  insert into(name,age,city,sex,birthday) values('Aaron',24,'wuhan','M',to_date('1990-09-08','yyyy-MM-dd'));

手動輸入資料:

①執行:select * from table_name for update;

②點選鎖,開啟鎖


③ 點選”+“,增加資料



五 儲存資料

commit ;最後提交資料