sql plus命令
Sqlplus的使用
Sql*plus的使用Sql*plus的使用Sql*plus介绍Sql*plus是oracle提供的一个工具程序,既可以在oracle服务器使用,也可以在oracle 客户端使用。
在windows下分两种,sqlplus.exe是命令行程序,sqlplusw.exe是窗体程序,通常我们在开始菜单中启动的是后者,两者的功能是一致的。
Sql*plus是一个最常用的工具,具有很强的功能,主要有:1. 数据库的维护,如启动,关闭等,这一般在服务器上操作。
2. 执行sql语句执行pl/sql。
3. 执行sql脚本。
4. 数据的导出,报表。
5. 应用程序开发、测试sql/plsql。
6. 生成新的sql脚本。
7. 供应用程序调用,如安装程序中进行脚本的安装。
2 dual表dual是一张系统表,同时也被定义成了public同义词。
它只有一个字段和一条记录。
该表本身的结构和数据没有什么意义,主要是借助该表进行其它操作。
如:select sysdate from dual; --获取函数值select 21+15*3 from dual; --计算表达式的值说明:不要对dual表进行ddl与dml操作,只进行查询操作。
3 sql*plus使用3.1 启动sql*plus1. 不带参数启动启动sqlplusw.exe程序,会弹出登陆框,让输入用户名、密码和连接字符串,在用户名中输入“/nolog”,表示先进入sql>提示符,先不连接数据库,下面可以利用connect命令连接数据库。
启动sqlplus.exe程序,会提示输入用户名与密码。
如果用户名输入2. 带参数启动下面列举一些最常见的方式,还有很多可选参数。
1) 不连接数据库sqlplus /nolog2) 连接数据库sqlplus username/password3) 使用net8连接字符串连接数据库sqlplus username/password@connstr4) 连接后执行filename指定的sql脚本,sql脚本中是sql命令和sql*plus的设置命令sqlplus username/password[@connstr] @filename3.2 sql*plus的命令3.2.1 帮助命令1. help命令格式:help 命令名,用于知道某个具体命令的帮助信息。
sqlplus常用命令
6、显示一个表结构:
SQL> desc tab --如果tab不是表,则只显示其类型和名字
7、保存所有输入:
SQL> spool D:\xxx --建立一个xxx.LST文件
SQL> spool --显示当前spool状态
SQL> COLUMN id TRUNCATED --直接按长度截断
7、COLUMN--显示当前列所有属性
SQL> COLUMN id --后面不加列名时显示所有的COLUMN
8、OFF|ON--设置某一字段关闭
设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
常用的SQLPLUS输出格式化命令:
执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
将显示的内容输出到指定文件
SQL> SPOOL file_name
关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
SQL> BTITLE def --添加页脚“def”
SQL> TTITLE OFF --取消页眉显示
三、COLUMN[COL]命令修改字段属性:
可以修改的属性有:
ALI[AS] alias
SQL PLUS指令说明
Set 命令:該命令包含許多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 設置當前session是否對修改的數據進行自動提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令執行一個sql腳本時,是否顯示腳本中正在執行的SQL語句SQL> SET ECHO {ON|OFF}3).是否顯示當前sql語句查詢或修改的行數SQL> SET FEED[BACK] {6|n|ON|OFF}默認只有結果大於6行時才顯示結果的行數。
SQLPLUS命令语法自定义环境命令
自定义环境变量Show命令、set命令使用show命令显示当前SQL*PLUS的环境变量的值,使用set命令设置或者修改环境变量的值Show all显示所有环节变量的值信息。
1、Autocommit变量用于设置是否自动提交,当设置为ON 时,每次用户DML语句时都会自动提交。
Set autocommit on2、Colsep变量Colsep用于设置在选定列之间的分隔符,默认为空格。
Set colsep | ;3、Feedback变量当一个查询选择至少N行记录时,就会显示返回的行数,默认值是6,如果要禁止显示行数,则将feedback设置为OFFSet feedback off;4、Heading表示是否显示列标题,默认设置为ON,OFF表示不显示Set heading off;5、Linesize和pagesizeLinesize表示行宽度,默认为80,如果行数据长度查过80个字符,那么会换行显示。
Pagesiez表示每月所显示的行数,默认为24。
Set linesize 10Set pagesize 106、Serveroutput 变量用于控制是否显示存储过程的输出,例如dbms_output.put_line(…hello sql*plus‟)默认值为OFF,要显示时设置为ON7、Sqlprompt用于设置SQL*PLUS的命令提示符,默认为SQL>例如Set sqlprompt printout>8、TIME命令符用于设置是否在命令提示符中显示时间Set time on9、Underline变量用于设置下划横线字符默认值为:‘_’Set underline “|”注意事项:保存SQL*PLUS环境可以使用store set filename(spool命令)命令将自己定义好的SQL*PLUS环境保存到一个脚本文件中另外,如果下午在每次启动SQL*PLUS时都会自动使用特定环境变量的设置,则可以修改为sqlplus\admin\glogin.sql脚本。
连接oracle数据库的语句
连接oracle数据库的语句连接Oracle数据库是开发人员常常遇到的一个任务,下面我将列举一些连接Oracle数据库的语句,希望能够帮助你。
1. 使用SQL*Plus连接Oracle数据库:```sqlplus username/password@host:port/service_name```其中,`username`是Oracle数据库的用户名,`password`是密码,`host`是主机名,`port`是端口号,`service_name`是服务名。
2. 使用JDBC连接Oracle数据库:```import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class OracleJdbcExample {public static void main(String[] args) {String url = "jdbc:oracle:thin:@host:port:service_name";String username = "username";String password = "password";try {Connection connection = DriverManager.getConnection(url, username, password);System.out.println("Successfully connected to Oracle database!");// 执行其他操作...connection.close();} catch (SQLException e) {System.out.println("Failed to connect to Oracle database!");e.printStackTrace();}}}```其中,`url`是连接Oracle数据库的URL,`username`是用户名,`password`是密码,`host`是主机名,`port`是端口号,`service_name`是服务名。
slqplus命令
下面就介绍一下一些常用的sql*plus命令:1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
@与@@的区别是什么?@等于start命令,用来运行一个sql脚本文件。
@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。
该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件。
@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。
如:在c:\temp目录下有文件start.sql和nest_start.sql,start.sql 脚本文件的内容为:@@nest_start.sql - - 相当于@ c:\temp\nest_start.sql则我们在sql*plus中,这样执行:SQL> @ c:\temp\start.sql2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORKsql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNO ENAME JOB---------- ---------------------------------------- --------- 7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME JOB---------- ---------------------------------------- --------- 7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT ,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN ,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
sqlplus中arraysize描述
sqlplus中arraysize描述1. 介绍在Oracle数据库中,SQL*Plus是一个用于执行SQL语句的命令行工具。
它提供了许多有用的功能,包括数组大小(arraysize)设置。
数组大小是指在获取查询结果时,每次从数据库缓冲区中获取的行数。
通过适当地调整数组大小,可以优化查询性能并减少网络传输的开销。
2. 数组大小的设置在SQL*Plus中,可以使用SET ARRAYSIZE命令来设置数组大小。
该命令的语法如下:SET ARRAYSIZE {num | DEFAULT}其中,num表示要设置的数组大小,DEFAULT表示使用默认的数组大小。
3. 数组大小的影响数组大小的设置对查询性能有着重要的影响。
较大的数组大小可以减少从数据库缓冲区获取数据的次数,从而减少了与数据库之间的网络通信开销。
然而,如果数组大小设置得过大,可能会导致内存压力增大,甚至引起内存溢出的问题。
另外,较小的数组大小可能会导致频繁的网络通信,从而降低查询性能。
因此,设置合适的数组大小是优化查询性能的关键。
4. 数组大小的选择选择合适的数组大小需要根据具体的情况进行调整。
以下是一些选择数组大小的指导原则:4.1 查询结果的大小首先,需要考虑查询结果的大小。
如果查询结果较大,可以适当增大数组大小,以减少网络通信的次数。
如果查询结果较小,可以选择较小的数组大小,以减少内存的占用。
4.2 网络带宽和延迟其次,需要考虑网络带宽和延迟。
如果网络带宽较小或延迟较高,可以选择较小的数组大小,以减少网络传输的开销。
4.3 内存压力还需要考虑系统的内存情况。
如果系统内存较小,可以选择较小的数组大小,以减少内存的占用。
如果系统内存较大,可以适当增大数组大小,以提高查询性能。
4.4 实验和性能测试最后,可以通过实验和性能测试来选择合适的数组大小。
可以尝试不同的数组大小,并比较它们对查询性能的影响。
根据实验结果选择最佳的数组大小。
5. 示例下面是一个设置数组大小的示例:-- 设置数组大小为100SET ARRAYSIZE 100-- 执行查询语句SELECT * FROM employees;在上述示例中,数组大小被设置为100,然后执行了一个查询语句。
sqlplus -s用法
sqlplus -s用法
sqlplus是Oracle数据库的交互式命令行工具,-s选项是其中的一个参数,表示“静默模式”。
使用-s选项可以在执行sqlplus
命令时,不显示启动和退出信息,只显示查询结果。
这在需要在脚
本或者批处理中执行SQL语句时非常有用,可以避免额外的输出干扰。
举例来说,假设我们有一个脚本文件test.sql包含SQL查询语句,我们可以使用以下命令来执行该脚本并在静默模式下输出结果:
sqlplus-susername/password@*****************.
这样就会在不显示额外信息的情况下执行test.sql中的SQL语句,并将查询结果输出到标准输出。
需要注意的是,-s选项并不会隐藏错误信息,所以在实际使用中,仍然需要对SQL语句的执行结果进行适当的错误处理。
总之,sqlplus -s选项的主要作用是在执行SQL语句时以静默
模式输出结果,适用于需要在脚本或者批处理中执行SQL查询的场景。
SQL PLUS 命令大全
一、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus:Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须首先切换到root用户,如下su -roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪几种启动方式说明:有以下几种启动方式:1、startup nomount非安装启动,这种方式启动下可执行:重建控制文件、重建数据库读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startup mount dbname安装启动,这种方式启动下可执行:数据库xx归档、数据库介质恢复、使数据文件联机或脱机,重新定位数据文件、重做xx文件。
Oracle第二讲 SQLPlus的基本使用天津工业大学
2.2.2 SET命令
• 例2.13:下面的查询语句查询了V_$PARAMETER 视图的定义,如果不使用SET LONG命令设置text 列的显示长度则不能完全显示该列的内容。
• 例2.2:以数据库管理员的身份登录到数据库中。
Confidential © 2013 iSoftStone Holdings Limited. All Rights Reserved.
2.1.1 sqlplus命令
• 例2.6:以数据库操作员的身份登录到数据库中。 sqlplus sys/linDB123 as sysoper
tabs;
Confidential © 2013 iSoftStone Holdings Limited. All Rights Reserved. 13
2.2 SQL*Plus常用命令
• 2.2.1 HELP命令。 • 2.2.2 SET命令。 • 2.2.3 SHOW命令。 • 2.2.4 PROMPT命令。 • 2.2.2 SAVE和@命令。 • 2.2.6 EDIT命令。 • 2.2.7 RUN(/)命令。
Confidential © 2013 iSoftStone Holdings Limited. All Rights Reserved.
2.1 登录到数据库
2.1.1 sqlplus命令。 2.1.2 connect命令。
Confidential © 2013 iSoftStone Holdings Limited. All Rights Reserved.
2.2.1 help命令
sqlplus常用语句
sqlplus常用语句
SQLPlus是Oracle数据库中常用的交互式命令行工具,用于执行SQL语句和PL/SQL块。
以下是一些常用的SQLPlus语句:
1. 连接到数据库:
SQLPLUS username/password@database.
2. 退出SQLPlus:
EXIT 或 QUIT.
3. 执行SQL查询:
SELECT FROM table_name;
4. 显示表结构:
DESC table_name;
5. 执行存储过程或函数:
EXEC procedure_name;
6. 执行SQL脚本:
@path_to_script.sql.
7. 输出查询结果到文件:
SPOOL file_name.
8. 取消输出到文件:
SPOOL OFF.
9. 显示当前数据库会话信息: SHOW USER.
10. 设置SQLPlus环境变量:
SET option value.
这些是一些常用的SQLPlus语句,可以帮助你在SQLPlus中执行各种操作。
当然,SQLPlus还有很多其他命令和选项,具体使用取决于你的需求和情境。
希望这些信息能够帮助到你。
sqlPlus操作指南
---------- ------------------- -------------------
SCOTT ¥3000.00 04/19/1987 00:00:00
(2)在windows环境中运行sql*plus
如果在windows环境中安装了oralce数据库产品,那么可以在窗口环境中运行sql*plus
具体方法: "开始->程序->oracle-oradb10g_home1->application development->sql*plus"
2.连接命令
sql>col ename clear
sql>col sal clear
sql>select ename,sal,hiredate from emp
sql>where empno=7788;
(2)title
该命令用于指定页标题,页标题会自动显示在页的中央。如果页标题由多个词组成,则用单引号引住。如果要将页
SQL> l
1 select ename
2* from emp
如果一次要删除多行,则指定起始行号和终止行号,例如"del 3 5"
(5)i[nput]
该命令用于在sql缓冲区的当前行后新增加一行。示例如下:
SQL> l
1 select ename
3* where deptno=10
sql>a and job='CLERK'
sql>l
SQL> list
1 select empno,ename,sal,hiredate,comm,deptno
SQLPLUS命令语法-常用命令
帮助命令he l p为了获取SQ L*PLUS命令的帮助,输入help和命令,就可以查询到命令的相关帮助信息。
退出SQL*PLUS命令:exit或者q uit命令不再需要使用SQL*PLUS命令时,录入exit或者qui t命令直接退出。
3、输入、编辑命令(ed 、run / )在SQL*PLUS命令行下输入某些内容,按回车键,那么此时在S QL缓冲区中就放有该输入的内容。
数据ed[it]命令,按回车键,SQL*PLUS 将保存于SQ L缓冲区中的内容保存在默认文件a fie d t.buf中,打开后在文本中输入命令,然后保存在退出编辑,将返回到SQ L*PLUS中,输入命令run(或者/),按回车,将运行录入的命令.。
另外,如果要清楚屏幕及缓冲区的内容,输入命令clear screen。
4、保存文件命令-SPOOL在需要将命令运行情况及其结果发送到一个文件中保存起来,可以使用SP OOL filena me命令建立一个就假脱机文件,例如SPOO L e:\mysql\spooln a me,将会在e:\mysql目录中建立一个名为sp oolna me.LST的假脱机文件。
5、SPOOLOU T命令,将SQL语句及输出结果发送到假脱机文件中。
6、SPOOLOFF命令,如果不再需要输出到假脱机文件中,可以使用SP OOL OFF命令。
运行命令在SQL*PLUS 中,可以使用三种方式运行S Q L语句和P L/SQL快,分别是:命令行方式一、SQL缓冲区方式脚本文件方式。
1.命令行方式1)以命令方行式运行SQL语句以命令行方式运行SQL语句,只需要在输入完SQL语句之后,输入分号(;),或者在新的一行输入前斜线(/),按回车键就可以显示结果2)以命令行方式执行PL/SQL块只需要在输入完PL/SQL块之后,在新的一行输入前斜线(/),然后按回车键就显示出结果。
Oracle数据库基础及应用第05章SQLPlus命令
5.3.2 PROMPT命令
• 使用PROMPT命令可以在显示屏幕上输出指定的数据 和空行,这种输出方式非常有助于在脚本文件中向用 户传递相应的信息。
setsysytemoptionvalue选项描述setnumformatformat设置数字的默认显示格式setnulltext设置select语句返回null值时显示的字符串setpauseoffontext设置输出结果时是否滚动显示setpagesize14n设置每页打印的行数setrecsetwrappedeachoff显示或打印记录分隔符t1设置输出结果中列和列之间的空格数默set选项及说明续setspace1n设置输出结果中列和列之间的空格数默认值为10setsqlcasemixedlowerupper设置在执行sql命令之前是否转换大小写setsqlcontinuegt
设置输出结果中列和列之间的空格数,默 认值为10 设置在执行sql命令之前是否转换大小写 设置命令提示符 设置当前时间的显示 用于启动和关闭显示sql语句执行时间 设置是否在列标题下面添加分隔线
设置当一个数据项比当前行宽时,是否截 断数据项的显示
5.2.2 设置运行环境
• 在Oracle中怎么设置运行环境以及设置后的效果如何, 在这里可以通过具体的示例来进行演示。设置运行环 境中使用频率较高的操作如下所示。
第5章 SQLPlus命令
5.1使用SQL*P1us
• 在数据库系统中,可以使用两种方式 执行命令:
– 图形化工具
直观、简单、容易记忆;灵活性较差
– 使用各种命令
1.2 SQL Plus用法
sqlplusw /nolog
conn scott/tiger as sysdba
SQL>show user
®
2002 - 2005. All rights reserved. Copyright © Oracle Corporation, 2001. All rights reserved. 1-4
®
2002 - 2005. All rights reserved. Copyright © Oracle Corporation, 2001. All rights reserved. 1-13
5.
I[NPUT] text 在sql buffer后面插入 后面插入text(新行 新行) 后面插入 新行
SQL Plus Worksheet 主界面
®
2002 - 2005. All rights reserved. Copyright © Oracle Corporation, 2001. All rights reserved. 1-8
SQL*PLUS常用的查询显示命令
1) . 显示当前环境变量的值: 显示当前环境变量的值: Show all
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息 显示当前在创建函数、存储过程、触发器、 Show error
3) . 显示初始化参数的值: 显示初始化参数的值: show PARAMETERS [parameter_name]
®
2002 - 2005. All rights reserved. Copyright © Oracle Corporation, 2001. All rights reserved. 1-9
SQLPLUS基本命令的使用方法示例
SQLPLUS基本命令的使⽤⽅法⽰例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、descdesc:万能查看命令查看dept表SQL> desc deptName Null? Type----------------------------------------- -------- --------------------------DEPTNO NOT NULL NUMBER(2)DNAME VARCHAR2(14)LOC VARCHAR2(13)3、设置SQL*PLUS的运⾏环境,包括每⾏的显⽰字符数、每页显⽰⾏数、每页打印标题前空⾏数。
set命令基本语法在Oracle 11g数据库中,⽤户可以使⽤set命令来设置SQL*Plus的运⾏环境;set system_variable value;system_variable:变量名;value:变量值;通过set命令设置的环境变量是临时的,不是永久的;当⽤户退出SQL*Plus环境后,⽤户设置的环境参数会全部消失;使⽤set命令设置运⾏环境pagesize变量:该变量⽤来设置从顶部标题⾄页结束之间的⾏数;set pagesize value;value的默认值为14;使⽤show pagesize命令显⽰当前SQL*Plus环境中的⼀页有多少⾏;show pagesize;同理:newpage变量:该变量⽤来设置⼀页中空⾏的数量;set newpage value;value的默认值为1;show newpage;linesize变量:该变量⽤来设置在SQL*Plus环境中⼀⾏所显⽰的最多字符总数;set linesize value;value的默认值为80;show linesize;pause变量:该变量⽤来设置SQL*Plus输出结果是否滚动显⽰;set pause value;value变量值有以下三种情况:- off:默认值,表⽰返回结果⼀次性输出完毕,中间的每⼀页不会暂停;- on:表⽰输出结果的每⼀页都暂停,⽤户按后回车键后会继续显⽰;- text:在设置pause的值为on之后,再设置text的值,则每次暂停都将显⽰该字符串;当pause的值设置为off时,设置text的值没有任何意义;oracle⽤命令执⾏sql脚本⽂件当sql命令过多(sql⽂件过⼤)时,⽤plsql执⾏时⽐较慢⽽且容易超时,此时可以⽤sqlplus命令直接执⾏sql脚本⽂件。
SQLPLUS全部命令解释及应用实例
COL命令:主要格式化列的显示形式该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] alias --别名CLE[AR] --重置为默认值的列的显示属性。
ENTMAP {ON | OFF} --使实体映射被打开或关闭HTML输出选定列。
FOLD_A[FTER]--在select列表中的最后一列后插入一个额外的回车。
FOLD_B[EFORE]--在SELECT列表中的第一列前插入一个额外的回车。
FOR[MAT] format --指定列的显示格式。
表12-1数字格式HEA[DING] text --定义一个列标题JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} --设置列标题的对齐方式LIKE { expr|alias}--复制另一列或表达式(你已经与另一列命令中定义的属性)的显示属性。
类似文件的副本,只有属性没有定义在当前列命令的另一个条款。
NEWL[INE] --启动新行前显示的列的值。
NEW_V[ALUE] variable --指定一个变量来保存列值。
NOPRI[NT]|PRI[NT]--控制打印的列(列标题和所有选定的值)。
NOPRINT关闭屏幕输出和打印的列。
打印关闭打印列。
NUL[L] text--显示列值时,如果列值为NULL值,用text值代替NULL值OLD_V[ALUE] variable --指定一个变量来保存列值。
ON|OFF--控制列的显示属性的状态。
关闭停用不影响属性的定义为一列的属性。
关于恢复了属性。
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]--设置一个列的回绕方式指定的SQL * Plus将如何对待太宽,一列的数据类型或日期字符串。
包裹包装字符串列范围内,需要时,开始新的生产线。
已启用WORD_WRAP时,SQL * Plus中左每一新行辩护,跳过所有领先的空白(例如,换行符,制表符和空格),包括嵌入式换行符。
sqlplus详解
修改已有列属性
alter table dept
modify dname char(20);
注:只有当某列所有值都为空时,才能减小其列值宽度。
只有当某列所有值都为空时,才能改动其列值类型。
只有当某列所有值都为不空时,才能定义该列为not null。
谓词is null,is not null
没有奖金的雇员(即commision为null)
select ename,job from emp
where comm is null;
select ename,job from emp
where comm is not null;
select ename,deptno from emp
where ename like ’W___’;
(以W开头,后面仅有三个字母)
select ename,job from emp
where job not like ’sales%’;
(哪些雇员的工种名不以sales开头)
例:
alter table dept modify (loc char(12));
alter table dept modify loc char(12);
alter table dept modify (dname char(13),loc char(12));
创建视图
select ename,sal,comm,comm/sal "C/S RATIO" from emp
where comm>.05*sal
order by comm/sal desc;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字段的非唯一的结果集
DISTINCT 字段名1 [ ,字段名2]
数字类型字段名之间可以进行算术运算
+ - * / 等
例如: (字段名1*字段名2)/3
合并字段内容的连接字符 ||
字段名1 || 字段名2
DEL n 删除sql buffer里第n行
I[NPUT] text 在sql buffer后面插入text
L[IST] n 显示sql buffer里第n行
n 使第n行为当前行
n text 第n行替换成text
0 text 在第一行前面插入一行
(3) SQL*PLUS里的文件命令:
SAV[E] filename [REP[LACE] | APP[END] ]
3、PLSQL Developer 连接测试
输入正确的用户名/口令:
成功登陆:
4、创建表空间
打开sqlplus工具:
Sql代码
1.sqlplus /nolog
sqlplus /nolog
连接数据库:
Sql代码
1.conn /assysdba
conn /as sysdba
创建表空间:
Sql代码
1.createtablespace camds datafile'D:\oracle\product\10.2.0\oradata\camds\camds.dbf'size200m autoextendonnext10m maxsize unlimited;
imp userid/pwd@sid file=path/file fromuser=testcamds touser=userid
命令实例:
Sql代码
1.imp testcamds/123@camds file=c:\testcamds fromuser=testcamds touser=testcamds
说明: 一行只显示数字位的长度, 超过长度折行,加word_wrapped后, 单词不会折行
规定long字符的显示宽度
SQL>set long 200;
规定字段名的显示内容
SQL> column 字段名 heading '字段名显示内容';
SQL> set heading off; 查询时不显示字段名称
规定字段的对齐方向
SQL> column 字段名 justify [left | right | center];
清除字段的格式
SQL> column 字段名 clear;
5. SQL*PLUS里规定字段的显示格式例子
SQL> column last_name heading 'Employee|Name为你创建的数据库名,以后在访问数据,创建“本地Net服务名”时用到;
2)数据库口令在登录和创建“本地Net服务名”等地方会用到。
2、创建“本地Net服务名”
1)通过【程序】-》【Oracle - OraDb10g_home1】-》【配置和移植工具】-》【Net Configuration Assistant】,运行“网络配置助手”工具:
NVL(EXPR1, EXPR2)函数
解释: IF EXPR1=NULL RETURN EXPR2
ELSE RETURN EXPR1
编程技巧: NVL函数在多条件模糊查询的时候比较有用
nvl('+input_value+','0')='0' or filed_name like '%+input_value+%'
NVL函数可返回多种数据类型:
返回日期 NVL(start_date,'2002-02-01')
返回字符串 NVL(title,'no title')
返回数字 NVL(salary,1000)
3. 使用SQL*PLUS
(1)登录SQL*PLUS的方法
用户名,密码,数据库连接字符串
数据库连接字符串可以用net8 easy configuration建立本地网络服务名配置,
连接操作的字段名上最好要有索引
连接操作的字段最好用整数数字类型
有外连接时, 不能用OR或IN的比较操作
1、安装
Oracle 版本:Oracle Database 10gRelease 2 (10.2.0.1)
下载地址:
/technology/software/products/database/oracle10g/htdocs/10201winsoft.html
1. 数据表间的连接
简单的连接语法:
SELECT 字段名1, 字段名2, …… FROM 表名1, [表名2, ……]
WHERE 表名1.字段名 = 表名2. 字段名 [ AND ……] ;
SELECT 字段名1, 字段名2, …… FROM 表名1, [表名2, ……]
WHERE 表名1.字段名 = 表名2. 字段名(+) [ AND ……] ;
create tablespace camds datafile 'D:\oracle\product\10.2.0\oradata\camds\camds.dbf' size 200m autoextend on next 10m maxsize unlimited;
5、创建新用户
运行“P/L SQL Developer”工具,以DBA(用户名:System)的身份登录:
SQL> column salary justify right format $99,999.99;
SQL> column start_date format a10 null 'Not Hired';
说明:如果start_date为null, 显示字符串'Not Hired'
6. 判断题(T/F)
SQL>delete from table_name t1
where t1.rowid >
(select min(rowid) from table_name t2
where t1.email = t2.email
group by email
having count(email) > 1);
找到手机用户的服务区域:
命令实例:
Sql代码
1.exp testcamds/123@camdsora file=c:\testcamds owner=testcamds
exp testcamds/123@camdsora file=c:\testcamds owner=testcamds
导入结果:
一、选择行
1. 简单的SELECT 语句
imp testcamds/123@camds file=c:\testcamds fromuser=testcamds touser=testcamds
导入结果:
2
命令语法:
Sql代码
1.exp userid/pwd@sid file=path/file owner=userid
exp userid/pwd@sid file=path/file owner=userid
STA[RT] filename 运行上次保存到文件filename里的SQL命令
@filename 运行上次保存到文件filename里的SQL命令
EDIT 打开编辑窗口,编辑sql buffer里的SQL命令
EDIT filename 打开编辑窗口,编辑文件filename里的SQL命令
SPO[OL] filename [OFF | OUT] 把SQL命令结果输出到OS下一个文件filename OFF结束输出到文件, OUT结束输出到文件并打印文件
SQL> set pause on; 可以使大量结果集在用户按“Enter”(回车)后翻页
SQL> set pagesize 100; 设定SQL语句返回结果集一页的行数100, 默认值是14
SQL> set linesize 100; 设定SQL语句返回结果集一行的宽度100, 默认值是80
(2)SQL*PLUS里的编辑命令
(1). SQL command are always held in sql buffer. [T]
(2). SQL*PLUS command assit with query data. [T]
SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库.
四、从多个表里选取数据记录
1
2
3
4
5
6
输入新用户的“用户名/口令”:
新用户“testcamds”成功登陆:
6、导入导出数据库
先运行cmd命令,进入命令行模式,转到下面的目录:D:\oracle\product\10.2.0\db_1\BIN【该目录下有exp.exe文件】
1
命令语法:
Sql代码
1.imp userid/pwd@sid file=path/file fromuser=testcamds touser=userid
SQL> select a.handphoneno,nvl(,'null'),a.totalscore
from topscore a,chargeoperator cc,chargeoperatorinfo c
where substr(a.handphoneno,1,7)=cc.hpnohead(+)