Oracle數據庫 語法操作彙總(四)

oracle各種語法操作的彙總第四部分

表的操作:
1.建表
語法格式
CREATE TABLE 表名(
    列1 數據類型 【default+默認值】,
    列2 數據類型 【default+默認值】,);
eg. CREATE TABLE EMP(
sname VARCHAR2 default user,
sid       VARCHAR2(16),
sage     NUMBER(3));

2.刪除表
將表放到回收站 DROP TABLE strdent;
從回收站回覆表 FLASHBACK TABLE 表名 TO BEFORE DROP; (只能刪除最近刪除的表)
刪除表(不經過回收站)DROP TABLE 表名 PURGE;
從回收站刪除表 PURGE TABLE 表名;
查看回收站裏的表 SELECT object_name,original_name,operation, type FROM recyclebin;
清空回收站 PURGE recyclebin;

3.修改表
(1)增加列
ALTER TABLE 表名 ADD (列名1 數據類型 【DEFAULT 默認值】)
(2)修改列的數據類型與長度
ALTER TABLE 表名 MODIFY(列名1 數據類型)
(3)修改列的名字
ALTER TABLE 表名 RENAME COLUMN 原名 to 現名
(4)刪除列
ALTER TABLE 表名 DROP COLUMN 列名
(5)修改列的無效狀態
ALTER TABLE 表名 SET UNUSED COLUMN 列名
(6)刪除無效的列
ALTER TABLE 表名 DROP UNUSED COLUMNS

4.表的重命名
RENAME 舊的表名 TO 新的表名

約束對錶的強制規定
約束的分類:
1)主鍵約束:不能重發,不能爲空
2)唯一約束:不能重複,可以爲空
3)非空約束:不可以爲空
4)檢查約束:檢查一個列的內容是否合法
5)外鍵約束

主鍵的約束操作:
CREATE TABLE 表名(
列1 數據類型 【default 默認值】 PRIMARY KEY,
列2 數據類型 【default 默認值】);

根據約束的位置分類
1)表級別約束(定義了所有的列後再定義約束)
eg.create table tb_stu4 (
id int,
name varchar(20),
sex char(4),
   -- 當創建好表的結構之後,跟着就可以添加約束了
   primary key(id),
);
2)列級別約束(列級定義是在定義列的同時定義約束)
eg.create table tb_stu6 (
id int primary key,
name varchar(20) not null,
sex char(4) check(sex = ‘男’ or sex = ‘女’),
age int check(age > 0 and age < 65),
);

主鍵可以爲多個------聯合主鍵
eg.create table test

(sno char(12),

name char(4),

CONSTRAINT PK_test PRIMARY KEY (sno,name) -- 聯合主鍵

);

檢查約束(CHECK)
eg.CREATE TABLE person(
AGE NUMBER(3) NOT NULL CHECK(age between 0 and 150)
);

儘量使用表級別約束

外鍵約束
eg.CREATE TABLE employee(
  Empno number(5) primary key,
  Ename varchar2(10),
  Deptno number(3) REFERENCES department(deptno)
);

追加約束
ALTER TABLE 表名 ADD 約束
eg.ALTER TABLE person ADD PRIMARY KEY(pid)

刪除約束
ALTER TABLE 表名 DROP 約束
eg.ALTER TABLE person DROP PRIMARY KEY;
eg.ALTER TABLE person DROP constraint person_pid_pk

刪除非空約束用修改列
alter table emp modify column_name null;
alter table emp modify column_name not null;

約束的禁用與啓動
ALTER TABLE 表名 DISABLE 約束
eg.ALTER TABLE person disable primary key;
eg.ALTER TABLE person disable constraint person_pid_pk;

啓動約束
ALTER TABLE 表名 enable 約束

查看約束
select constraint_name from user_constraints where table_name="大寫的表名"


視圖:來自一個過多個表上的數據結合
CREATE VIEW 視圖名 AS SELECT 語句

CREATE 【或者 REPLACE】【FORCE UNFORCE】 VIEW 視圖名
AS
SELECT 語句
【WITH CHECK OPTION 約束】
【WITH READ ONLY    】

刪除視圖
DROP VIEW 視圖名

查看視圖
SELECT * FROM user_views

同義詞(僅數據庫管理員擁有創建刪除同義詞權限)
CREATE SYNONYM 同義詞名 FOR 對象名
刪除同義詞:
DROP SYNONYM 同義詞名

序列:按照一定的規則能夠自動增加減少數字的一種數據庫對象
CREATE SEQUENCE 序列名
【INCREMENT BY N】
【START WITH N】
【MAXVALUE N】
【MINVALUE N】
【CYCLE NOCYCLE】
【CACHE N NOCACHE】
eg.創建序列test_seq,初始值爲10,每次增2,最大100,最小9,循環,每次存儲10
CREATE SEQUENCE test_seq
START WITH 10
INCREMENT BY 2
MAXVALUE 100
MINVALUE 9 (到了100再從9開始)
CYCLE
CACHE 10;

僞列
CURRVAL:表示序列返回的當前值
NEXTVAL:表示序列返回的下一個值
注:在使用CURRVAL前,要先用NEXTVAL來產生一個值
eg.select test_seq NEXT_VAL FROM dual;
     select test_seq CURRVAL FROM dual;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章