首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 常用命令速查手冊:DDL、DML、約束、視圖、Sequence、資料字典

     編輯:Oracle 資料庫基礎

整理 Oracle 開發與 DBA 日常最高頻的命令與語法,涵蓋資料型態建表、刪表、約束、視圖、Sequence、表間複製、資料字典查詢,適合貼在工位隨查隨用。

資料型態建表示例

-- CHAR 固定長度 (不足補空格)
CREATE TABLE test1 (name CHAR(10), sex CHAR(1));
INSERT INTO test1 VALUES ('tomcatt北京','f');  -- 會截斷或報錯

-- NCHAR 國家字符集固定長度
CREATE TABLE test2 (name NCHAR(10), sex NCHAR(1));
INSERT INTO test2 VALUES ('tomcatt北京','男');

-- VARCHAR2 可變長度 (推薦)
CREATE TABLE test3 (name VARCHAR2(10), sex VARCHAR2(2));
INSERT INTO test3 VALUES ('tomcatt北京','f');

-- NUMBER(p,s) p=精度 s=小數位
CREATE TABLE test4 (name VARCHAR2(10), age NUMBER(3), salary NUMBER(8,2));

-- DATE 日期時間
CREATE TABLE test5 (name VARCHAR2(10), birth DATE);
INSERT INTO test5 VALUES ('Tom','28-2月-08');
INSERT INTO test5 VALUES ('Allen',SYSDATE);

DDL 常用語法

-- 建表含預設值
CREATE TABLE scott.test6 (
  eid NUMBER(10),
  name VARCHAR2(20),
  hiredate DATE DEFAULT SYSDATE,
  salary NUMBER(8,2) DEFAULT 0
);

-- 刪表
DROP TABLE table_name;

-- 修改欄位
ALTER TABLE test MODIFY (addd VARCHAR2(10) NULL);
ALTER TABLE test ADD (age VARCHAR2(5));

約束操作

-- 域完整性
ALTER TABLE t ADD CONSTRAINT chk_age CHECK (age > 0);
ALTER TABLE t MODIFY name NOT NULL;

-- 實體完整性
ALTER TABLE t ADD CONSTRAINT pk_t PRIMARY KEY (id);
ALTER TABLE t ADD CONSTRAINT uk_t_name UNIQUE (name);

-- 參照完整性
ALTER TABLE child ADD CONSTRAINT fk_child_parent
  FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE;

視圖

CREATE OR REPLACE VIEW v1 (eid, name, salary) AS
SELECT empno, ename, sal FROM emp WHERE deptno = 30;

Sequence (序列)

CREATE SEQUENCE myseq INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;
INSERT INTO test VALUES (myseq.NEXTVAL, 'tom');

CREATE SEQUENCE student_seq START WITH 1 INCREMENT BY 1;
INSERT INTO student VALUES (student_seq.NEXTVAL, 'john');

表間資料複製

INSERT INTO dept1 (id, name) SELECT deptno, dname FROM dept;

資料字典高頻查詢

-- 當前用戶表
SELECT * FROM user_tables;
SELECT * FROM all_tables;  -- 可存取的所有表

-- 當前用戶物件
SELECT object_name, object_type FROM user_objects;

-- 索引、視圖
SELECT index_name FROM user_indexes;
SELECT view_name FROM user_views;

完整範例:自增 ID 表

CREATE TABLE test2 (id CHAR(10) PRIMARY KEY NOT NULL, name CHAR(10));
CREATE SEQUENCE test2_seq INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;
INSERT INTO test2 VALUES (test2_seq.NEXTVAL, 'john');
-- 批次插入 10 筆...
SELECT * FROM test2;

查看表結構

DESC table_name;  -- SQL*Plus / PLSQL Dev
-- 或
SELECT column_name, data_type, data_length, nullable
FROM user_tab_columns WHERE table_name = 'TABLE_NAME';

收藏此手冊,涵蓋 90% 日常 Oracle 操作語法,新手入門、資深複習皆宜。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved