常见的Oracle操作命令

常见的Oracle操作命令
1. 创建用户和授权
-- 创建用户和密码
create user username identified by userpassword;
-- 创建用户并且指定默认表空间
create user username identified by userpassword default tablespace tablespaceName;
-- 修改密码
alter user username identified by by newpassword;
-- 删除用户
drop user username;
-- 删除用户及对象
drop user username cascade;
-- 查看当前数据库连接用户
show user;
-- 授予用户创建 session 的权限,即登录权限
grant create session to username;
-- 授予用于使用表空间的权限
grant unlimited tablespace to username;
-- 授予创建表的权限
grant create table to username;
-- 授予删除表的权限
grant drop any table to username;
-- 授予插入表数据的权限
grant insert any table to username;
-- 授予修改表的权限
grant update any table to username;
-- 授予用户查看指定表的权限
grant select on tablename to username;
-- 授予删除指定表的权限
grant drop on tablename to username;
-- 授予插入数据到指定表的权限
grant insert on tablename to username;
-- 授予修改指定表的权限
grant update on tablename to username;
-- 授予对指定表特定字段的插入和修改权限,仅限 insert 和 update
grant insert(id) on tablename to username;
grant update(id) on tablename to username;
-- 授予用户 alert 任意表的权限
grant alert all table to username;
-- 授予 dba 权限
-- CONNECT:拥有Connect权限的用户只可以登录ORACLE,不可以创建实体,不可以创建数据库结构
-- RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构
-- DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构
grant connect,resource,dba to username;
2. 撤销用户权限
-- 基本语法同 revoke,撤销权限
3. 导入数据文件
-- 进入到 sql 文件目录下,登录需要导入的用户
sql>@D:/oracle.sql;
4. 常见的查询命令
-- 查询 oracle 的版本
select * from v$version;
-- 查询所有角色具有的权限个数
select role, count(1) from role_sys_privs group by role;
-- 查询某个角色拥有的权限
select grantee,privilege from dba_sys_privs where grantee='username' order by privilege;
-- 查询所有的表名
select table_name from user_tables;
-- 查询所有字段名
select column_name from user_col_comments;
5. 表空间相关操作
-- 创建表空间,初始大小为 500M,每次自增 5M
create tablespace practice datafile 'practice.dbf' size 500M autoextend on next 5M maxsize unlimited;
-- 查询所有表空间的物理位置
select name from v$datafile;
-- 查询当前用户的表空间
select username,default_tablespace from user_users;
-- 查询所有的表空间
select * from user_tablespaces;
-- 修改用户的表空间
alter user username default tablespace tablespaceName;
-- 删除表空间
alter tablespace tablespaceName offline;
drop tablespace tablespaceName including contents and datafiles;
6. 常见表的操作
-- 创建表并设置默认值
CREATE TABLE student(
       ID VARCHAR2(10),
       NAME VARCHAR2(10),
       sex VARCHAR2(20),
       address VARCHAR2(100),
       registerdate DATE DEFAULT SYSDATE
);
-- 修改表名称
rename tablename to newTableName;
-- 删除表并重建表
truncate table tablename;
-- 添加注释
comment on column tablename.columnName is 'comment';
-- 修改表字段数据类型
alter table tablename modify columnName datatype;
-- 删除字段
alter table tablename drop column columnName;
-- 在某个字段上建立索引
create index indexname on tablename(columnName);
7. 表的锁操作
-- 查询是否锁表
select B.USERNAME,B.SID,B.SERIAL#,C.OBJECT_NAME,B.OSUSER,B.MACHINE,B.PROGRAM,B.LOGON_TIME,B.COMMAND,B.LOCKWAIT,B.SADDR,B.PADDR,B.TADDR,B.SQL_ADDRESS,A.LOCKED_MODE
from v$locked_object A
inner join v$session B on A.SESSION_ID = B.SID
inner join dba_objects C on A.OBJECT_ID = C.OBJECT_ID
order by B.LOGON_TIME;
-- 0:none
-- 1:null 空
-- 2:Row-S 行共享(RS):共享表锁,sub share
-- 3:Row-X 行独占(RX):用于行的修改,sub exclusive
-- 4:Share 共享锁(S):阻止其他DML操作,share
-- 5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive
-- 6:exclusive 独占(X):独立访问使用,exclusive

-- 查询某 session 正在执行的 sql 语句
select sql_text
from v$sqltext A
where (A.hash_value, A.address) in (select decode(sql_hash_value, 0, prev_hash_value, sql_hash_value),decode(sql_hash_value, 0, prev_sql_addr, sql_address)
from v$session B
where B.sid = 'sid')
order by piece asc;
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yanko24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值