[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 ;最後提交資料