天天看點

ORACLE對表的操控文法集合

開發工具與關鍵技術:Oracle sql*plus PLSQL Developer

作者:華境聰

撰寫時間:2019年04月02日

create table 表名  (列名 資料類型,……)或者 AS 子查詢建立;建立表
select * from employees where 1=2;查詢表的字段及結構
create view  視圖名 AS 子查詢;建立視圖
create or replace view 視圖名 AS 子查詢;修改視圖
WITH READ ONLY;視圖屏蔽 DML 操作
{Alter Table 表名
Add(列名 資料類型 default 預設值);添加列
Modify(列名 資料類型 default 預設值);修改列
Drop Column 列名;删除列
Rename Column舊列名to新列名;重命名列
Disable constraint限制名 無效限制
ENABLE CONSTRAINT	限制名 激活限制
}
Rename to 表名; 重命名表
Truncate Table 表名;清空不能復原
Drop Table 表名;删除不能復原
delete from 表名;删除可以復原
Rollback;復原
{Insert into 表名
Values(’’,’’,’’………) 添加資料
values ('&字段',’&字段’………) 建立腳本添加資料
}
{update表名
set username = ''修改資料
where 篩選條件
}
{delete 表名
where篩選删除資料
}
savepoint 建立儲存點
rollback to 復原指點的儲存點
CONSTRAINT 限制
select  * from User_Cons_Columns where table_name = '表名'; --- 查詢表的限制列
CONSTRAINT 限制名;限制條件
NOT NULL :用于列的後面,設定不為空
UNIQUE :保持它的唯一性
PRIMARY KEY:設定主鍵,不允許空值和重複的
FOREIGN KEY:設定外鍵,不允許子表的值在父表中不存在
REFERENCES:标示在父表中的列
ON DELETE CASCADE(級聯删除): 當父表中的列被删除時,子表中相對應的列也被删除
ON DELETE SET NULL(級聯置空): 子表中相應的列置空
例:FOREIGN key (department_id) REFERENCES departments(department_id) ON DELETED CASCADE 
CHECK:定義每一行必須滿足的條件
Alter table 表名{
add constraint emp5 check(salary <> 0)--添加限制的方法除Not Null均可使用
modify name constraint emp5 not null--修改添加限制的方法Not Null可用
Drop constraint 限制名 删除限制}
SEQUENCE 序列
Create sequence 序列名
                  increment by 1 遞增值
                  start with 1 初始值
                  maxvalue 1999 最大值
                  nocache 不登入
                  nocycle; 不循環
                建立序列
Alter sequence序列名
                 increment by 1 遞增值
                 maxvalue 1999 最大值
                 nocache 不登入
                 nocycle; 不循環
                修改序列
INSERT INTO 表名(id,name)
VALUES(序列名.nextval,'小明4')nextval下一個序列值
select * from user_sequences where sequence_name = '序列名'查詢序列
SELECT 序列名.CURRVAL FROM 表名;CURRVAL傳回目前的序列号及相應行數
drop sequence 序列名 删除序列
index 索引
create index 索引名
on 表名(列名, 列名);建立表列的索引
select * from user_indexes ix 
join user_ind_columns ic on ic.INDEX_NAME = ix.index_name
where ic.TABLE_NAME = '表名' 查詢表的索引
drop index 索引名 删除索引
synonym 同義詞
create synonym 别名 for 表名 為表建立同義詞
select * from 别名 根據同義詞查詢
drop synonym 别名 删除同義詞
USER使用者權限
create user 使用者名
identified by 密碼;
create session 建立會話
create table 建立表
create sequence 建立序列
create view 建立視圖
create user 建立使用者
Grant create session,create table,create sequence,create view,create user
to 用名 給予使用者對應的建立權限

ALTER USER 用名 QUOTA UNLIMITED 
ON users 配置設定使用者表空間

Grant select,insert,update,delete,alter
on system.emp
to test1
with grant option 使使用者同樣具有配置設定權限的權利
給予使用者對應表的操作權限

Grant select
on system.emp
to public;向所有使用者配置設定權限
Revoke select
on system.emp
from test 收回對象權限

Revoke create table
from test 收回建立權限
Alter user test1
identified by test 修改密碼
drop user test2; 删除使用者
create role manager; 建立角色
Grant create table
to manager; 給予角色對應的建立權限
Grant manager to test; 把角色賦予使用者
           

這個是在對Oracle資料庫學習的,這一段時間以來對文法的一些總結及吸收,話不多說,言簡意赅,感興趣的朋友可以看下。