sqlplus学习笔记
1、sqlplus是什么?sqlplus是一个交互式的,可以进行批处理查询的工具。每一个oracle数据库安装时都会安装sqlplus。sqlplus是以命令行方式工作的,SQL*Plus有它自己的命令集和环境。sqlplus为用户提供一种访问数据库的方式。sqlplus能够执行SQL、PL/SQL、SQL*Plus和操作系统命令来提供以下功能:--格式化、执行运算命令、存储、以及输出查询的结果--检查数据库里表和对象的定义--开发和运行批处理脚本--执行数据库管理--将数据库查询的结果输出到文本文件、屏幕或者HTML文件里最后总结一下:sqlplus就是一个普通的oracle数据库客户端。2、sqlplus相关的环境变量这些环境变量指定了sqlplus所使用的一些命令的路径,或者影响sqlplus的一些运行行为。ORACLE_HOME:指定oracle软件安装在那个目录下ORACLE_SID:指定数据库实例,SQL*Plus可选PATH:指定可执行程序搜索路径,windows环境还用来指定DLLs的路径。一般包含ORACLE_HOME/binTNS_ADMIN:连接远端oracle时,指定tnsnames.ora的位置LD_LIBRARY_PATH:在Unix和Linux系统下指定动态库的搜索路径。windows环境不需要。SQLPATH:指定要执行的SQL脚本搜索路径3、怎样运行SQL*Plus?sqlplus一般安装在$ORACLE_HOME/bin路径下,设置好PATH后可以在命令行直接执行sqlplus:以下命令的符号约定:"$"表示系统命令提示符"[]"表示可选项"|"表示左右两边的选项并列可选"{}"里面的可选项只能出现一个,不能共存$ sqlplus [ [options] [logon] [start] ]其中options有以下语法:-H[ELP] | -V[ERSION] | ... | [-S[ILENT]]显示帮助、版本等信息其中logon有以下语法:{username[/password][@connect_indentifier] | /}[AS {SYSOPER | SYSDBA | SYSASM}] | /nolog指定登录数据库的用户名、密码以及系统特权,或者(/nolog)不连接数据库只启动sqlplus,或者只跟(/)使用操作系统认证。小技巧:最好不要再sqlplus后面直接跟上密码,因为在任务管理器或者用ps -ef|grep oracle会看到其中start有以下语法:@{url | file_name[.ext]} [arg ...]指定进入sqlplus后立即执行的一些脚本4、sqlplus可以执行的命令类型有三种类型的命令sqlplus可以执行:SQL命令:通过数据库工作PL/SQL块:通过数据库工作SQL*Plus命令:格式话查询结果、设置可选项、编辑存储SQL命令和PL/SQL块5、sqlplus的SQL缓冲区SQL缓冲区存储最近一次执行的SQL命令或者PL/SQL块。可以:执行LIST命令查看缓冲区中的命令。或者简写L执行RUN或/命令,执行该缓冲区中的命令。执行SAVE命令将内容保存在文件中。注意:缓冲区不保存SQL*Plus命令!6、安装命令行帮助命令行帮助一般在oracle数据库安装时会被安装。如果没有安装,DBA可以执行一些脚本来安装。第一步:以SYSTEM用户登录进SQL*Plus第二步:执行hlpbld.sql和helpus.sqlSQL> @$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql卸载命令行帮助:SQL> @$ORACLE_HOME/sqlplus/admin/help/helpdrop.sql7、退出SQL*Plus命令输入EXIT或QUIT,或者Unix下Ctrl+D,或者windows下Ctrl+Z。8、查看一个表的结构SQL> describe 表_或_视图名SQL> desc 表_或_视图名SQL> describe PL/SQL的函数_或_过程名9、怎样结束一个SQL命令?有三种方式结束SQL命令:使用";"。执行使用"/",必须另起一行开头处。执行使用空白行。不执行10、在sqlplus中执行操作系统命令使用host命令SQL> host ls -l /tmp也可以使用"!"(Linux)SQL> ! ls -l /tmp也可以使用"$"(windows)SQL> $ dir c:或者直接执行"!",从新开启shell程序SQL> !$ ls$ exitSQL>11、暂停(pause)查询结果显示,方便查看结果语法如下:SET PAU[SE] {ON | OFF | text}如果设置set pause on,则可以设置PAESIZE来决定一次暂停显示多少行数据set pause text指定每屏之间的间隔字符串SQL> set pause '^^^^^^^^^^^^^^^^^^^^'SQL> show pause12、sqlplus的自动提交(autocommit)DML命令(insert,update,delete)需要执行COMMIT命令或执行DCL(GRANT或REVOK)命令或DDL命令(create table)后才会被记录到数据库中。通过设置AUTOCOMMIT使sqlplus自动提交。SQL> set autocommit onSQL> set autocommit immediateSQL> set autocommit 10 --执行10条DML语句会自动提交SQL> set autocommit offSQL> show autocommit13、在sqlplus中编辑脚本使用START命令、@、或@@可以执行脚本。也可以在sqlplus中编辑脚本。SQL> edit myscripts其中edit可以指定:SQL> define _editor = vi其中myscript会保存在当前目录,并自动加上.sql后缀14、如何在脚本中加入注释?有三种方式在脚本中加入注释:使用:REMARK命令:remark 此处是备注。也可简写为REM使用:/*此处是备注*/使用:--此处是备注15、使用SPOOL保存查询结果使用SPOOL不但可以使查询结果在屏幕上输出,还同时将结果保存在指定的文件中。语法:SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE]] \| APP[END]] | OFF | OUT]16、查询用户有哪些表空间SQL> select object_name, object_type from user_objects;17、使用变量替换SQL> select * from m_table where id=&myid;Enter value for myid:18、格式调整有以下参数set echo on/off 是否显示脚本中的需要执行的命令set feedback on/off 是否显示select结果之后返回多少行的提示set linesize n 设置一行最多显示多少字符set termout on/off 在执行脚本时是否在屏幕上输出结果set heading on/off 是否显示查询结果的列名set pagesize n 设置每页的行数set trimspool on/off 在spool到文件时是否去除输出结果中行末尾的空白字set trimout on/off 是否去掉屏幕上输出结果行末尾的空白字符set space on/off 输出列间空格数设置如果需要sqlplus下次启动的时候自动调整这些格式,可以将上面的设置保存到$ORACLE_HOME/sqlplus/admin/glogin.sql文件19、列格式col column_name format a50 设置column_name为50个字符宽col column_name 显示列格式col column_name noprint 隐藏列CLEAR COLUMNS 将所有列的显示上一个:oracle维护自增方式
下一个:Oracle对Sql语句的软解析和硬解析
- 更多SQLServer疑问解答:
- 配置MSSQL复制指定快照文件夹提示:不是有效的路径或文件名
- 详细解读varchar和Nvarchar区别
- SQL SERVER 2005 同步复制技术
- 进程未能大容量复制到表 解决方法
- MSSql实例教程:MSSql数据库同步
- SQLServer2000同步复制技术实现(分发和订阅)
- sqlserver
- SQLSERVER
- 测试 sqlserver 最大用户数连接
- 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的
- sqlserver2008的安装问题。
- 为什么安装的SQL server 2008我的没有MSSQLSERVER协议啊?
- 怎样把exel表里的数据复制到sqlserver表里
- sqlserver数据库主键和外键问题
- sqlserver 中的左表连接查询和右表连接查询有啥不同?有什么用?