0%

oracle复习考点

大三数据库考试前记的考点

起步

  • 修改密码 alter user identified by 123456;
  • 解锁用户 alter user scott account unlock;
  • 用户登录 connect 用户名/密码
  • 修改 sqlplus 默认命令提示符 set sqlprompt jieziSQL>

sqlplus 基本命令

  • show user 显示当前用户
  • select * from tab 当前用户下的表和视图
  • set linesize 150 设置行宽
  • col ename for[mat] a10 设置列宽
  • set pagesize 30 设置页大小
  • set newpage 5 设置一页中空行的数量
  • define 定义变量
1
2
3
lj>define var = "test";
lj>define var;
DEFINE VAR = "test" (CHAR)

save,get,/,start,@

1
2
3
4
5
6
select * from myemp;
save o1; // 保存到o1.sql
get o1; // 显示o1.sql
/ // 执行上一条sql命令
start o1; // 执行方式1
@o1 // 执行方式2

numformat
有如下占位符
9 对应数字存在则显示,如果位数不足会显示乱码,如 56 在 999 掩码下会乱码 0 对应数字不存在补 0
$ 添加美元符号 S 强制显示符号,正数会显示+ * , 对应位置添加,

1
set numformat $999,999,999,999.00

desc

1
2
3
4
5
6
desc dba_tablespaces;
// 在查询过程中使用
select empno,ename,
#desc job
job from emp;

spool
spool filename [create | replace | append] 可使用简写 cre 新建 rep 替换 app 追加
spool out | off 关闭 spool 输出

1
2
3
lj>spool /home/jiezi19971225/result app;
lj>select * from emp;
lj>spool off;

ed[it] filename
上一条执行的 SQL 或者 PL/SQL 执行完毕后,可以用该命令编辑
col[umn]

1
2
3
4
5
6
lj> col ename heading 姓名;
lj> col comm null empty; // 该列null值显示为设定的字符串
lj>col sal off;
lj>col job justify [left|center|right];
lj>col job [print|noprint]; // 控制是否显示该列
lj>col job [wrapped|word_wrapped]; // 按照长度、单词折行

ttitle 和 btitle

1
2
3
4
5
6
7
8
lj>ttitle left 我是表头标题  // 参数可选left center right col n(在第n列打印)  skip n (跳到下一行开始的第几行) bold 以黑体打印 可以使用变量
lj>btitle left 我是表尾标题
lj>btitle [on|off] 切换显示

// 使用变量
lj>define varT='table header'
lj>ttitle left varT

设置空白行数为 4

1
set new page 4

用户管理与权限分配

用户相关

创建用户

1
2
3
4
create user user_name [identified by pass_word | identified exeternally]
default tablespace uses
temporary tablespaces temp
quota 10m on tbsp_1; // 置顶用户在tbsp_1表空间最多可使用的大小为10MB

删除用户

1
drop user user_name [cascade]; // 如果用户包含数据库对象必须加cascade

权限管理

如果不知道权限,可以 select * from system_privilege_map where privilege_name = ? 进行模糊查找

概要文件

概要文件:
是一个命名的资源限制的集合。系统资源的使用、口令的限制。
创建:

create profile 概要文件名 limit
sessions_per_user : 限制用户当前会话的数量
cpu_per_session: 限制一个会话使用的 cpu 时间
cpu_per_call :限制一个 sql 语句使用的 cpu 时间
logical_reads_per_session:限制每个会话读取的数据库数据块数,包括从内存和磁盘读取的总和
logical_reads_per_call:限制 sql 语句读取的数据库数据块数,包括从内存和磁盘读取的总和
private_sga :sga 中私有区域的大小
connect_time :指定一个会话连接到数据库的最大时间
idle_time default:指定一个会话可以连续空闲的最长时间,单位:分钟
composite_limit:设置用户对系统资源的综合消耗。由: cpu_per_session、logical_reads_per_session、private_sga、connect_time 综合决定
failed_login_attempts: 最大错误登录次数
password_lock_time:登录失败后账户被锁天数
password_life_time:密码有效天数
password_grace_time:用户密码被中止前多少天提醒用户修改密码
password_reuse_time:用户修改密码后多少天,用户才可以再次使用原来的密码
password_reuse_max:密码被重新使用后,可修改的次数
password_verify_function:密码复杂度审计函数

修改:

1
2
3
alter profile 概要文件名 limit 
sessions_per_user 20
failed_login_attemps 3;

删除:

1
drop profile 概要文件名;

说明:
一个用户所使用的概要文件被删除,则此用户使用默认的概要文件。
使某个用户使用某个用户配置文件
aler user 用户名 profile 概要文件名;
要使上面的限制生效,需要修改初始化参数 resource_limit
alter system set resource_limit=true;(11g)

权限相关

创建用户

1
create user jiezi19971225 identified by 123456;