資料表基本操作語法
-- 建立資料表
CREATE TABLE test1 (
tid NUMBER,
tname VARCHAR2(20),
hiredate DATE DEFAULT SYSDATE
);
-- 新增資料(未指定 hiredate 將自動帶入 SYSDATE)
INSERT INTO test1(tid, tname) VALUES (1, 'Mary');
-- 修改表結構
ALTER TABLE testchar ADD hiredate DATE; -- 新增欄位
ALTER TABLE testchar MODIFY c CHAR(10); -- 修改欄位定義
ALTER TABLE testchar DROP COLUMN hiredate; -- 刪除欄位(需加 COLUMN 關鍵字)
-- 刪除資料表
DROP TABLE testdelete; -- 移至回收桶
DROP TABLE test1 PURGE; -- 直接永久刪除
偽欄位 ROWID 與 ROWNUM
- ROWID:資料列在磁碟上的實體位址,唯一且最快存取路徑。
- ROWNUM:查詢結果的邏輯序號,隨查詢產生。
SELECT rowid, rownum, empno FROM emp;
CHAR 與 VARCHAR2 差異示範
CREATE TABLE testchar (c CHAR(5), v VARCHAR2(5));
INSERT INTO testchar VALUES ('a','b');
SELECT CONCAT(c,'#'), CONCAT(v,'#') FROM testchar;
-- 結果:'a #' vs 'b#'
-- CHAR 固定長度會補空白,VARCHAR2 變長不補空白
完整約束條件建立範例
CREATE TABLE myuser (
userid NUMBER CONSTRAINT pk PRIMARY KEY,
username VARCHAR2(20) CONSTRAINT c_name NOT NULL,
gender VARCHAR2(2) CONSTRAINT c_gender CHECK (gender IN ('男','女')),
email VARCHAR2(20) CONSTRAINT c_email1 NOT NULL
CONSTRAINT c_email2 UNIQUE,
deptno NUMBER CONSTRAINT fk REFERENCES dept(deptno)
);
約束測試結果
- 違反 PK 唯一性:
ORA-00001
- 違反 CHECK 性別限制:
ORA-02290
回收桶管理
SHOW RECYCLEBIN; -- 檢視回收桶
PURGE RECYCLEBIN; -- 清空回收桶
實務建議
- 慣用
VARCHAR2 取代 CHAR 節省空間。
- 刪除大量資料表時建議加
PURGE 避免回收桶膨脹。
- 約束條件命名規範(如
pk_表名、fk_表名_參考表)利於維護。