SQL PLUS基本命令的使用方法示例
1、Oracle 中 dba,all,user, 之间的区别
1. 结论'权限大小不同': dba_ > all_ > user_ (1) dba_ : 可以访问 '数据库' 中所有的对象(前提该用户是 dba 用户) (2) all_ 某一用户 '拥有' 的或 '可以访问' 的所有的对象 (3) user_某一用户 '拥有' 的所有对象 2. 查询是否是 dba 用户 select from dba_role_privs t where t.granted_role = 'DBA';
2、desc
desc:万能查看命令 查看dept表 SQL> desc dept Name Null? Type ----------------------------------------- -------- -------------------------- DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)
3、设置SQLPLUS的运行环境,包括每行的显示字符数、每页显示行数、每页打印标题前空行数。 set命令基本语法
在Oracle 11g数据库中,用户可以使用set命令来设置SQLPlus的运行环境;
set system_variable value; system_variable变量名; value变量值;
通过set命令设置的环境变量是临时的,不是永久的;
当用户退出SQLPlus环境后,用户设置的环境参数会全部消失;
使用set命令设置运行环境
pagesize变量该变量用来设置从顶部标题至页结束之间的行数; set pagesize value; value的默认值为14; 使用show pagesize命令显示当前SQLPlus环境中的一页有多少行; show pagesize; 同理 newpage变量该变量用来设置一页中空行的数量; set newpage value; value的默认值为1; show newpage; linesize变量 该变量用来设置在SQL*Plus环境中一行所显示的最多字符总数; set linesize value; value的默认值为80; show linesize; pause变量 该变量用来设置SQLPlus输出结果是否滚动显示; set pause value; value变量值有以下三种情况 - off默认值,表示返回结果一次性输出完毕,中间的每一页不会暂停; - on表示输出结果的每一页都暂停,用户按后回车键后会继续显示; - text在设置pause的值为on之后,再设置text的值,则每次暂停都将显示该字符串; 当pause的值设置为off时,设置text的值没有任何意义;
oracle用命令执行sql脚本文件
当sql命令过多(sql文件过大)时,用plsql执行时比较慢而且容易超时,此时可以用sqlplus命令直接执行sql脚本文件。
@ H:/sql/test.sql (绝对路径)
oracle中spool将查询的数据写入文件
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述
方法一采用以下格式脚本 set colsep '' ------设置列分隔符 set trimspool on set linesize 120 set pagesize 2000 set newpage 1 set heading off set term off spool 路径+文件名 select from tablename; spool off 方法二采用以下脚本 set trimspool on set linesize 120 set pagesize 2000 set newpage 1 set heading off set term off spool 路径+文件名 select col1||','||col2||','||col3||','||col4||'..' from tablename; spool off
差别
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqll导入时,出错的可能性很小,基本都可以导入成功。
,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
ttitle,btitle命令
它主要是对头标题与尾标题的设置,如下 eg:为查询结果设置居中的头部标题、居右的当天日期作为尾部标题,并为查询结果列定义列标题。 SQL> ttitle center '结果'; SQL> btitle right '2021/03/30'; SQL> select from dept; ; 结果 DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 2021/03/30 如果想撤消ttitle与btitle: SQL> ttitle off; SQL> btitle off; SQL> select from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL>
column 命令
format格式化输出
format 选项 用于格式化指定的列 SQL> column sal format $99,99,99; SQL> select empno,ename,sal from scott.emp; EMPNO ENAME SAL ---------- ---------- ---------- 7369 SMITH $8,00 7499 ALLEN $16,00 7521 WARD $12,50 7566 JONES $29,75 7654 MARTIN $12,50 7698 BLAKE $28,50 7782 CLARK $24,50 7788 SCOTT $30,00 7839 KING $50,00 7844 TURNER $15,00 7876 ADAMS $11,00 EMPNO ENAME SAL ---------- ---------- ---------- 7900 JAMES $9,50 7902 FORD $30,00 7934 MILLER $13,00 14 rows selected. heading 选项 用于定义列标题 SQL> col empno heading 雇员编号; SQL> col ename heading 雇员姓名; SQL> col sal heading 雇员薪水; SQL> select empno,ename,sal from scott.emp; 雇员编号 雇员姓名 雇员薪水 ---------- ---------- ---------- 7369 SMITH $8,00 7499 ALLEN $16,00 7521 WARD $12,50 7566 JONES $29,75 7654 MARTIN $12,50 7698 BLAKE $28,50 7782 CLARK $24,50 7788 SCOTT $30,00 7839 KING $50,00 7844 TURNER $15,00 7876 ADAMS $11,00 雇员编号 雇员姓名 雇员薪水 ---------- ---------- ---------- 7900 JAMES $9,50 7902 FORD $30,00 7934 MILLER $13,00 14 rows selected.
对缓存区的操作
(1)查看当前缓存区中的SQL命令。 >list (2)执行存储在缓存区的SQL命令。 >run (3)将缓存区中的内容保存到一个SQL脚本文件(文件名自拟)。 >save C:/sql.sql (4)把一个脚本文件的内容放进缓存区,并执行缓存区中的语句。 >get C:/sql.sql >start C:/sql.sql (5)清除缓存区中的内容。 >clear buffer SQL> save H:/sql/test3.txt; Created file H:/sql/test3.txt SQL> get H:/sql/test.sql; 1 select table_name from user_tables; 2 desc dept SQL> start H:/sql/test.sql; TABLE_NAME ------------------------------ DEPT EMP BONUS SALGRADE Name Null? Type ----------------------------------------- -------- ---------------------------- DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13) SQL> clear buffer; buffer cleared SQL>
到此这篇关于SQL PLUS基本命令使用的文章就介绍到这了,更多相关SQL PLUS命令使用内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南