运行的时候首先设置
set linesize 200
set pagesize 100
提示影响多少行
set feedback off
set feedback on
SQL >
set sqlprompt 'session 1 >'
修改提示信息
set sqlprompt "_USER >"
提示符改成当前用户
show user
_USER oracle定义好的变量
SQL> set sqlprompt 'session 1>'
session 1>set sqlprompt "_user>"
SCOTT>set sqlprompt '_user>'
SCOTT>
双引号和单引号没得区别
SCOTT>set sqlprompt '&gname>'
输入 gname 的值: 1
1>
命令语句 set sqlprompt '&gname>'这个输入一个参数
set timing on
set time on
查询表结构
desc emp;
修改表字段长度
column ename format a7
暂时不想用
col sal off 关闭sal显示的格式
col sal on 开启sal显示的格式
以后都不用 clear
col sal clear
全部对当前会话生效
select * from nls_database_parameters;
设置列宽
col value for a30
alter session set nls_currency='$';
设置会话格式
已用时间: 00: 00: 00.00
21:27:35 sysdate>select to_char(999,'L999') from dual;
TO_CHAR(999,'L
--------------
ha999
已选择 1 行。
已用时间: 00: 00: 00.00
21:28:29 sysdate>
21:28:56 sysdate>alter session set nls_currency='$';
会话已更改。
已用时间: 00: 00: 00.00
21:28:57 sysdate>/
会话已更改。
已用时间: 00: 00: 00.00
21:28:59 sysdate>select to_char(999,'L999') from dual;
TO_CHAR(999,'L
--------------
$999
已选择 1 行。
已用时间: 00: 00: 00.00
21:29:04 sysdate>
替换变量
&
&&
Define
这是输入一个&符号,内存里面有没有保存。只执行一次就完了
21:29:04 sysdate>select ename,&column_name
21:33:21 2 from emp
21:33:21 3 order by &column_name;
输入 column_name 的值: sal
原值 1: select ename,&column_name
新值 1: select ename,sal
输入 column_name 的值: sal
原值 3: order by &column_name
新值 3: order by sal
这是输入二个&&符号,&& 输入一次,它保存到内存了
21:34:02 sysdate>select ename,&&column_name
21:35:55 2 from emp
21:35:55 3 order by &&column_name;
输入 column_name 的值: sal
原值 1: select ename,&&column_name
新值 1: select ename,sal
原值 3: order by &&column_name
新值 3: order by sal
ENAME SAL
------- ----------
SMITH 800
JAMES 950
ADAMS 1100
WARD 1250
MARTIN 1250
MILLER 1300
TURNER 1500
ALLEN 1600
CLARK 2450
BLAKE 2850
JONES 2975
SCOTT 3000
FORD 3000
KING 5000
已选择14行。
已用时间: 00: 00: 00.00
21:35:59 sysdate>
col sal for 9999 设置显示格式
clear buffer清除缓存
define column_name=job
define column_name=job
select ename,&column_name
from emp
order by &column_name;
select ename,&&column_name
from emp
order by &&column_name;
21:41:08 sysdate>/
输入 column_name 的值: job
原值 1: select ename,&&column_name
新值 1: select ename,job
原值 3: order by &&column_name
新值 3: order by job
不显示原值新值 set verify off 对比的 set verify on
1 select ename,&&column_name
2 from emp
3 order by &&column_name;
/
当执行sql前面写行数的时候,分号不能够执行;用/执行
查看联机文档就是oracle的操作手册
http://tahiti.oracle.com 联机文档的路口
官网上面找不到相应的下载文档
选择下载的版本后面旁边有个documentation
SQL Language Reference 关于写sql
Expand All展开所有
v$session动态视图
http://www.oracle.com/pls/db112/portal.all_books#index-PL%2F
点击PL/没得东西
课后作业
1.十进制转成十六进制
SQL> select to_char(16,'xx') from dual;
TO_
---
10
SQL> select to_number(10,'xx') from dual;
TO_NUMBER(10,'XX')
------------------
16
把工资转换为16进制
'xxxx'是多少位数
SQL> select to_char(sal,'xxxx') from emp;
TO_CH
-----
320
640
4e2
b9f
4e2
b22
992
bb8
1388
5dc
44c
TO_CH
-----
3b6
bb8
514
已选择14行。
2.联机文档,查RMAN
备份恢复backup restore recover
Backup and Recovery Reference
to_char把十进制转换成16进制
表的分类
关系表
对象表
xml类型的表
语法图
圆形的图是一个分句
四方形的图是关键字
create global temporary table xxxx
建全局的临时表
create table 普通表
schema. 扁的椭圆形不是关键字
schema.是用户的意思
create table scott.t xxxx需要自己取名字
有逗号的表示用逗号分隔
查看执行计划
set autotrace on
打开执行计划查看
set autotrace off
关闭执行技术查看
SQL> @?\rdbms\admin\utlxplan
创建自动更新功能
@?\sqlplus\admin\plustrce.sql
这个是授权语句
执行计划
set autotrace on 打开执行计划查看
SET AUTOTRACE ON STATISTICS 只有统计信息
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
1455 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
SET AUTOT TRACEONLY EXPLAIN 只有执行计划
SQL> SET AUTOT TRACEONLY EXPLAIN
SQL> /
执行计划
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 532 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 532 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------
只有统计信息
SQL> SET AUTOT TRACEONLY STATISTICS
SQL> /
已选择14行。
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
1455 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
SQL>
总结 执行计划
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息,返回表中的信息
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- -- 只显示执行统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
SET AUTOT TRACEONLY EXPLAIN ---- 只显示执行计划
SET AUTOT TRACEONLY STATISTICS –只显示统计信息
set autot off 关闭执行计划查看