您的位置:首页 > 数据库

sqlplus的使用

2015-07-27 15:44 246 查看
1.sqlplus sys/x2145637@ORCL as sysdba 以SYS作为系统管理员连接远端的数据库 ORCL的名字所在位置在D:\app\lenovo\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora里面;

或者

sqlplus /nolog 登录sqlplus但不连接数据库

conn sys/x2145637 as sysdba

sqlplus语句太长可以用 - 连字符(注意区分sql语句、sqlplus语句和plsql语句)

--用户scott解锁alter user scott account unlock;

--用户scott加锁alter user scott account lock;

--更改密码为orclalter user scott identified by orcl;

2.sql buffer 只保留一条语句

clear buffer清空buffer

list查看缓冲区的sql语句

可以修改buffer的当前行

SQL>list 5 当前行为第5行 用run命令后 当前行会改变

然后SQL>4 当前行为第4行

SQL>c/100/15 把一行中100改变成15 //SQL>aa当前行全部替换成aa ; 0 aa相当与在最前面增加一行aa

添加 append and id<5 把and id<5添加到当前行后面

i and id<5 在当前行后面增加一行and id<5

del * n 删除buffer里的当前行到第n行

del m n

del *

del * last 删除buffer里的当前行到最后一行

run显示缓冲区的sql语句并且执行

/ 执行缓冲区的sql语句

save [filepath] 保存sql语句

@?/sqlplus/admin/help/hlpbld.sql helpus.sql @运行脚本 ?为oracle_home

3.desc显示表和视图结构或一个pl/sql函数的调用接口

替换变量select * from a where id=&myid; myid可以输入

4使用pl/sql语句

敲入begin或declare开始

begin

for i in 1 .. 10

loop

insert into t values(i,'boobooke');

end loop;

end;

/

show serverout显示服务器端输出状态

set serverout on开启后客户端可接收服务端的输出

declare

x varchar2(12) :='Hello World';

begin

dbms_output.put_line(x);

exception

when others then

dbms_output.put_line('Error occurred!');

end;

/

.为存贮但不执行 /为执行

5.host或者!后面可以跟操作系统的命令 !后面不跟命令会切换到操作系统shell

shell与sqlplus嵌套执行 父进程 子进程

6.show pause 显示暂停状态

show pagesize 显示一个表页面显示多少行

set pause on开启pause,每按enter显示一个表页面

set pause '~~~~~~~~~~~~~~~~~~~~~~~' 表页面用波浪线隔开

7truncate table m清空m表

commit提交命令 不执行这个命令 所有的sql操作只是放在内存里

或者quit退出sqlplus时会自动提交

开启立即自动提交

show autocommit 显示开启状态

set autocommit on 开启 set autocommit 10 10条语句后自动提交 plsql只算一条

8.编辑脚本

define命令定义环境变量

在linux下define _editor=vi 使用edit sale就能调用vi创建并编辑sale.sql脚本保存在当前默认目录下

REM /* */ -- 3个都为注释命令

spool保存QUERY语句到文件且在屏幕输出

spool filename

select语句

spool off

作用:批量删除table

spool droptable.sql

spool off

set pagesize 0

set feedback off

spool droptable.sql

select 'drop table' || object_name || ';' from user_objects where object_type='TYBLE';//嵌套查询显示出批量drop table代码,单引号内为字符常量,||为分隔符号

spool off

show user当前用户

drop user dzysc cascade;用户下存在对象,表示要连带对象一起删除

Oracle查询所有用户

select * from all_users或select * from dba_users或select * from user_users;

查看用户系统权限s

elect * from dba_sys_privs;select * from all_sys_privs;

查看用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

查看所有角色

select * from dba_roles;

创建表空间

create tablespace myspace

datafile 'E:\app\myspace\myspace.dbf'

size 10M autoextend on next 5M maxsize 100M;

查看表空间

select tablespace_name from dba_tablespaces/user_tablespaces;

查看用户表名

select table_name from user_tables;

查看datefile

SQL> select name from v$datafile;

查看tempfile

select name from v$tempfile;

查询USERS表空间下的表名

select table_name from all_tables where tablespace_name='USERS';

分配表空间配额

SQL>ALTER USER a QUOTA UNLIMITED ON a3; --a用户可以无限使用a3表空间

或者

SQL>ALTER USER a quota 100M on a3; --a用户可以使用100Ma3表空间的数据

grant select on t to test;

授权表t的查询权限给test用户

1、权限授权及收回

系统权限

grant create session,create table to test with admin option;

revoke create session,create table from test;

对象权限

grant select on book to test with grant option;

revoke select on book from test;

create session是授予登陆的权限

with admin option加管理员权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: