[學習筆記] Oracle字段類型、建表語句、添加約束

SQL語句介紹

  • 數據定義語言(DDL),包括 CREATE、 ALTER、 DROP等。
  • 數據操縱語言(DML),包括 INSERT、 UPDATE、 DELETE、 SELECT … FOR UPDATE等。
  • 數據查詢語言(DQL),包括基本查詢語句、 Order By 子句、 Group By 子句等。
  • 事務控制語言(TCL),包括 COMMIT、 SAVEPOINT、ROLLBACK。
  • 數據控制語言(DCL), GRANT、 REVOKE。

字段類型

VARCHAR2(length)

字符串類型:存儲可變的長度的字符串,length是字符串的最大長度,默認是1,最大不超過4000。

CHAR(length)

字符串類型:存儲固定長度的字符串,length字符串的固定長度,默認是1,最大不超過2000。

NUMBER(a,b)

數值類型:存儲數值類型,可以存整數和浮點型。a代表數值的最大位數,包含小數位和小數點;b代表小數的位數。例子:

number(6,2),輸入123.12345,實際存入:123.12 。

number(4,2),輸入12312.345,提示不能存入,超過存儲的指定的精度。

DATA

時間類型:存儲的是日期和時間,包括年、月、日、時、分、秒。

內置函數sysdate獲取的就是DATA類型。

TIMESTAMP

時間類型:存儲的不僅是日期和時間,還包含了時區。

內置函數systimestamp獲取的就是timestamp類型。

CLOB

大字段類型:存儲大文本,大於4000長度的字符串。

BLOB

二進制類型:存儲的是二進制對象,比如圖片、視頻、聲音等轉換過來的二進制對象。

創建表

-- stuinfo學生信息表
create table STUDENT.stuinfo
(
  stuid      varchar2(11) not null,--學號
  stuname    varchar2(50) not null,--學生姓名
  sex        char(1) not null,     --性別
  age        number(2) not null,   --年齡
  classno    varchar2(7) not null, --班號
  stuaddress varchar2(100) default '未錄入',  --地址
  grade      char(4) not null,     --年級
  enroldate  date,                 --入學時間
  idnumber   varchar2(18) default '身份證未採集' not null   --身份證
)
-- stuinfo存儲的表空間是users
-- storage表示存儲參數
-- initial表示區段(extent)一次擴展64k
-- minextents最小區段數爲1
-- maxextents最大的區段數不限制
tablespace USERS
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table STUDENT.stuinfo
  is '學生信息表';
-- Add comments to the columns 
comment on column STUDENT.stuinfo.stuid
  is '學號';
comment on column STUDENT.stuinfo.stuname
  is '學生姓名';
comment on column STUDENT.stuinfo.sex
  is '學生性別';
comment on column STUDENT.stuinfo.age
  is '學生年齡';
comment on column STUDENT.stuinfo.classno
  is '學生班級號';
comment on column STUDENT.stuinfo.stuaddress
  is '學生住址';
comment on column STUDENT.stuinfo.grade
  is '年級';
comment on column STUDENT.stuinfo.enroldate
  is '入學時間';
comment on column STUDENT.stuinfo.idnumber
  is '身份證號';

添加約束

-- 創建/重建主鍵索引、唯一索引、外鍵索引
-- 把 stuid 設爲主鍵,主鍵字段的數據必須是唯一性的(學號是唯一的)
alter table STUDENT.STUINFO
  add constraint pk_stuinfo_stuid primary key (STUID);
   
-- 創建/重建檢查約束
-- 年齡age添加約束,學生的年齡只能0-50歲之間
alter table STUDENT.STUINFO
  add constraint ch_stuinfo_age check (age>0 and age<=50);
   
alter table STUDENT.STUINFO
  add constraint ch_stuinfo_sex
  check (sex='1' or sex='2');
   
alter table STUDENT.STUINFO
  add constraint ch_stuinfo_GRADE
  check (grade>='1900' and grade<='2999');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章