Oracle 12C提供的数据库管理工具:
SQL*Plus工具的特点
在Oracle 12C数据库系统中,用户对数据库的操作主要是通过SQL *Plus来完成的。SQL *Plus作为Oracle的客户端工具,既可以建立位于数据库服务器上的数据连接,也可以建立位于网络中的数据连接。
SQL*Plus工具的特点为:
可以用它运行SQL查询和PL/SQL代码块并接受结果信息;
可以发布DBA命令并自动工作;
可以启动和关闭数据库;
一种创建数据库管理报告的便利方法。
启动SQL*Plus会话
SQL*Plus的功能
运行sql命令
运行pl/sql块
运行sqlplus命令
运行os命令
常用命令
SQL Plus命令主要用来编辑SQL语句,格式化显示输出结果,设置当前的编辑环境参数等。
sql和sql plus命令都不区分大小写。
help:帮助命令,也可以使用?
set:设置一些格式设置
col:列格式设置命令
show:显示
conn:连接命令,用于更改用户
exit|quit|disc:退出
edit:编辑
spool:输出文件
save:保存缓存中的SQL语句命令
get:将指定文件装入到缓存中。
start:(@)执行SQL脚本文件命令
host:调用操作系统的命令
扩展:
help col可以查看col的帮助文档
set linesize 100 设置行大小
set pagesize 20 设置页面的条数
col ename for a8 设置ename这一列的宽度
col sal for l9999.99 几个数字9,前面加上l是加上人民币符号
col ename hea 用户名 修改列名,将列名ename改为用户名
show user 获取当前登入数据库的用户名。 结果:为“c##scott”
conn c##scott/tiger 普通用户连接
conn sys/sys as sysdba 超级管理员连接 结果:已连接。
spool off 格式化导出
host cls 清屏
创建SQL*Plus快捷方式
为了避免每次启动都需要输入用户名、口令和连接字符串,可以通过快捷方式来启动、登录并连接到数据库。
创建SQL *Plus快捷方式的步骤如下:
- Step1 在路径D:\app\Administrator\product\12.2.0\dbhome_2\BIN中找到sqlplus.exe。
- Step2 单击鼠标右键,在弹出的快捷菜单中选择“创建快捷方式”命令,同意将快捷方式放到桌面上。
- Step3 在桌面上,右击创建好的“sqlplus.exe - 快捷方式”图标,在弹出菜单中选择“属性”命令
- Step4 打开“SQL Plus属性”对话框,在“快捷方式”选项卡的“目标”文本框中添加如下样式的参数“D:\app\Administrator\product\12.2.0\dbhome_2\BIN\sqlplus.exe scott/tiger”
退出SQL*Plus
当不再使用SQL *Plus时,只需要在提示符“SQL>”后面输入exit或者quit命令后按回车键,即可退出SQL *Plus环境
scott用户的样例表
附创建scott用户、设置表空间、创建数据表代码:
-- 使用超级管理员登录
conn sys/root as sysdba;
-- 创建scott用户
create user c##scott identified by tiger;
-- 为用户授权
grant connect,resource,unlimited tablespace to c##scott container=all;
-- 设置用户使用的表空间
alter user c##scott default tablespace users;
alter user c##scott temporary tablespace temp;
-- 使用c##scott用户登录
connect c##scott/tiger
-- 删除数据表
drop table emp purge;
drop table dept purge;
drop table bonus purge;
drop table salgrade purge;
-- 创建数据表
CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;
CREATE TABLE EMP
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
CREATE TABLE BONUS
(
ENAME VARCHAR2(10) ,
JOB VARCHAR2(9) ,
SAL NUMBER,
COMM NUMBER
) ;
CREATE TABLE SALGRADE
( GRADE NUMBER,
LOSAL NUMBER,
HISAL NUMBER );
-- 插入数据-dept
INSERT INTO DEPT VALUES(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES(40,'OPERATIONS','BOSTON');
-- 插入数据-emp
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','CLERK',7566,to_date('19-4-87','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('23-5-87','dd-mm-yyyy'),1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
-- 插入数据-salgrade
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
-- 事务提交
COMMIT;