Oracle常用命令

1. 用户

1.1 常用用户

用户 描述 默认密码
sys 系统管理员,拥有最高权限 change_on_install
system 本地管理员,次高权限 manager
scott 普通用户,默认未解锁 tiger

解锁scott账户命令:

alter user scott account unlock;

1.2 显示当前登录的用户

Show user

1.3 创建用户

create user 用户名 identifiled by 密码;

1.4 删除用户

drop user 用户名

1.5 查看所有用户

select * from dba_users/all_users;

或者

select * from all_users;

1.6 查看用户角色

(1)当前用户被激活的角色:

select * from session_roles;

(2)当前用户被授予的角色:

select * from user_role_privs;

(3)全部用户被授予的角色:

select * from dba_role_privs;

(4)查看某个用户拥有的角色:

select * from dba_role_privs where grantee='用户名'

2. 登录

  1. 管理员身份登录:sqlplus/nolog--->conn/as sysdba

  2. 普通用户登录:sqlplus/nolog---->conn 用户名/密码

  3. 管理员切换到普通用户:conn 用户名/密码

  4. 普通用户切换到管理人员:conn sys as sysdba,然后输入密码回车

3. 权限

Oracle11g具有二百多种权限,可以通过下面语句查看:

SELECT * FROM SYSTEM_PRIVILEGE_MAP;

3.1 系统权限分类

  • DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
  • RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
  • CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource,dba权限。

3.2 常用权限

CREATE SESSION 创建会话
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 在用户模式中删除表
DROP ANY TABLE 在任何模式中删除表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式的存储过程
CREATE USER 创建用户
DROP USER 删除用户
CREATE VIEW 创建视图

3.3 分配权限

grant 权限名称1,权限名称2 to 用户名 with admin option

3.4 回收系统权限

revoke create session from 用户名

4. 角色

4.1 显示角色信息

查询所有的角色:

select * from dba_roles;

查询用户的角色:

select GRANTED_ROLE from dba_role_privs where grantee = '用户名';

查询角色具有的权限:

select privilege from role_sys_privs where role='角色名';

查询用户具有的权限:

select * from session_privs;

4.2 创建角色

创建公用角色:

create role 角色名 not identified

创建公用角色:

create role 角色名 identified by 密码

4.3 为角色授权

创建用户没有分配任何权限的时候,sqlplus上登录该用户会报错

角色授予命令:

grant 权限名称 to 角色名

4.4 为用户分配角色

grant 角色名 to 用户名 with admin option;

加上with admin option是为了用户可以将system分配给它的角色分配给别的其他用户

4.5 删除角色

drop role 角色名称;

5. oracle基本操作

建表空间:

create tablespace 表间名 datafile '数据文件名' size 表空间大小;

【路径可以沿用系统自带数据文件,但是记得修改文件名】

知识点普及:

Oracle数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:

  • 数据文件

    select name from  v$datafile;
    
  • 日志文件

    select * from v$logfile;
    
  • 控制文件

    select name from v$controlfile;
    

数据库的文件为数据库信息提供真正的物理存储(就是数据文件)

一个oracle数据库有一个或多个数据文件

一个数据文件只与一个数据库连接

一旦建立,数据文件只增不减

一个表空间由一个或多个数据文件组成

🌰:

创建表空间:

create tablespace data_test datafile 'D:\APP\YITOP\ORADATA\ORCL\TEST.DBF' size 2000M;

创建用户:

create user lee identified by 123456 default tablespace data_test;

授权:

grant connect,resource to lee;

从管理员切换到普通用户:

conn lee/123456

建表:

create table t_user(
    id varchar2(10),
  name varchar2(30),
  age number(3)
);

为表添加约束:

alter table t_user add constraint ck_info_age check(age >=0 and age<=100);

6. 增删改查

6.1 增

insert into 表名(列1,列2...) values('数据1','数据2'...);

6.2 删

① 删除表字段

alter table 表名 drop column 字段名;

② 删除表数据

删除某条数据:

delete from 表名 where 条件;

删除整张表的数据:

truncate table 表名;

或者

drop table 表名;

删除有外键约束的表:

drop table student cascade constraints;

6.3 改

重命名表:

rename 表名 to 新表名;

向表中添加注释:

comment on table 表名 is '注释文字';

向列中添加注释:

comment on column 表名.列名 is '注释文字';

更新表数据:

update 表名 set 列名='新值' where 条件;

修改列名:

alter table 表名 rename column 列名 to 新列名;

修改列的属性:

alter table 表名 
modify 列名 varchar2(字符长度)/number(精度)/char(数据类型/default '默认值');

6.4 查

语法:

SELECT
[DISTINCT|ALL] 
    select_list
FROM table_list 
[WHERE condition] 
    [group_by_clause] 
  [HAVING condition] 
  [order_by_clause]

7. 约束

语法:

alter table 表名 add constraint 约束名 约束(字段名);

🌰:

添加检查约束:

alter table t_user add constraint ck_user_check check(age>=0 and age<=100)

添加外键:

alter table scores 
add constraint fk_scores_infos_stuid foreign key(stuid) 
references infos(stuid) on delete cascade;

主键约束:

alter table 表名 add constraint 约束名称 primary key(列名);

不为空:

alter table 表名 add constraint 约束名称  not null(列名)

唯一约束:

alter table 表名 add constraint 约束名称 unique(列名);

默认值约束:

alter table 表名 add constraint 约束名称 default '默认值';

8. 分页

查询第一条记录:

select *
from (select * from emp order by sal desc)
where rownum = 1;

查询前3条:类似Sqlserver中的TOP 3

select *
from (select * from emp order by sal desc)
where rownum <= 3;

查询第2至第3条记录:

select *
from (select t.*, rownum as no 
      from (select * from emp order by sal desc) t)
where no between 2 and 3;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容