天天看点

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数据库学习的,这一段时间以来对语法的一些总结及吸收,话不多说,言简意赅,感兴趣的朋友可以看下。