(Oracle管理)ORACLE数据库sqlplus使用技巧

合集下载

OracleSqlplus命令登录多种方式案例讲解

OracleSqlplus命令登录多种方式案例讲解

OracleSqlplus命令登录多种⽅式案例讲解⽬录Oracle Sqlplus命令登录的⼏种⽅式1. sqlplus / as sysdba2. sqlplus “/as sysdba”3. sqlplus username/pwd@host/service_name4. sqlplus /nologOracle Sqlplus命令登录的⼏种⽅式sqlplus 命令语法sqlplus [ [<option>] [{logon | /nolog}] [<start>] ]<option> 为: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]-C <version> 将受影响的命令的兼容性设置为<version> 指定的版本。

该版本具有"x.y[.z]" 格式。

例如, -C 10.2.0-L 只尝试登录⼀次, ⽽不是在出错时再次提⽰。

-M "<options>" 设置输出的⾃动 HTML 标记。

选项的格式为:HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text][ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]-R <level> 设置受限(restricted)模式, 以禁⽤与⽂件系统交互的SQL*Plus 命令。

级别可以是 1, 2 或 3。

最⾼限制级别为 -R 3, 该级别禁⽤与⽂件系统交互的所有⽤户命令。

-S 设置⽆提⽰(slient)模式, 该模式隐藏命令的提⽰和回显的显⽰。

<logon> 为: {<username>[/<password>][@<connect_identifier>] | / }[AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value]指定数据库帐户⽤户名, ⼝令和数据库连接的连接标识符。

sqlplus的使用

sqlplus的使用

前言SQL*PLUS是Oracle公司提供的一个工具程序,可以用于运行SQL语句和PL/SQL程序块、处理数据、生成报表、控制屏幕显示和打印输出。

从Oracle 8i开始,SQL*PLUS还可以用于执行数据库管理操作,包括启动数据库、关闭数据库、备份和恢复数据库等。

SQL*PLUS分两种运行方式:sqlplus.exe 和sqlplusw.exesqlplus.exe是Dos版本sqlplusw.exehttp://192.168.5.2:5560/isqlplus第三方厂商的sql开发工具Sqlplusw比较常用,因为编辑方便。

格式化输出:⏹在使用SQL*Plus执行查询操作时,经常会遇到查询结果的显示格式非常混乱的情况,遇到此种问题时,通常可以使用以下3种方法:⏹忍受它。

⏹查询少量的列。

⏹格式化查询结果。

SET LINESIZE 80; 制定行显示宽度SET PAGESIZE 80; 用于设置每页所显示的行数以上命令只能在sqlplus中为显示方便而使用,编程时不使用。

Sqlplus本身编辑性能比较差,往往使用ed 文件名,打开nodepad,需要确认建立文件,编辑完后,保存退出,在sqlplus界面上,使用@ 文件名形式。

当使用外部文件的sql语句时,用@+绝对路径执行。

如果是sql结尾,则可省略,如c:\sqltest查看某个表格的结构,用DESC(RIBE) tablename;Sqlplus的sql使用快捷指令:R(un)或/ 运行缓存sql指令L(ist)显示缓存内容A 追加内容到缓存C 更新缓存内容CL BUFF 清除Sqlplus的文件支持指令:Sav(e)文件名:保存缓存内容到指定文件中Sta(rt)或@ 文件名:运行一个文件Get 文件名:只载入不运行Spo 文件名/ spo off : 将结果输出到指定文件中Sqlplus对管理的支持:显示当前用户:show user切换用户:conn 用户名/密码[as sysdba]调用非本用户的table,必须写用户名.table建立新用户:create user 用户名identified by 密码给新用户授权:GRANT connect,resource TO 用户名删除用户:DROP user用户名解锁用户:alter user 用户名account unlock;锁定用户:alter user 用户名account lock;修改用户密码:alter user 用户名identified by 密码启动数据库: startup关闭数据库:shutdown immediateDOS指令:HOST dos命令作业:1、在oracle系统中有一个大数据用户账号,是sh,现在处于锁定状态,请将其解锁,并设置其密码为sh。

sqlplus 查询建表语句

sqlplus 查询建表语句

SQL*Plus(即 SQL*Plus)是 Oracle 数据库管理系统中的一个工具,它允许用户以交互式的方式使用 SQL 语言进行数据库操作。

在SQL*Plus 中,用户可以执行各种SQL 命令,包括查询、插入、更新、删除等操作。

其中,查询建表语句是常见的需求之一,它允许用户查看数据库中已经创建的表的表结构。

下面将介绍如何在 SQL*Plus 中查询建表语句,并提供具体的操作步骤和示例。

1. 进入 SQL*Plus需要使用命令行或终端进入 SQL*Plus。

在命令行中输入以下命令并按Enter 键:```sqlplus username/passwordconnect_identifier```其中,`username` 是数据库用户的用户名,`password` 是该用户的密码,`connect_identifier` 是数据库的连接标识符(数据库的 SID 或服务名)。

输入完毕后,按下 Enter 键,系统会提示输入密码,输入密码后按下 Enter 键即可登录 SQL*Plus。

2. 查询建表语句登录成功后,即可输入SQL 命令进行查询建表语句。

具体的命令如下:```DESCRIBE table_name;```其中,`table_name` 是需要查询的表的名称。

执行以上命令后,系统会返回该表的表结构信息,包括各个字段的名称、数据类型、约束等。

3. 示例假设有一个名为 `employees` 的表,我们可以通过以下步骤查询该表的建表语句:1. 进入 SQL*Plus。

在命令行中输入以下命令并按 Enter 键:```sqlplus scott/tigerorcl```2. 查询建表语句。

在 SQL*Plus 中输入以下命令并按 Enter 键:```DESCRIBE employees;```执行以上命令后,系统会返回 `employees` 表的表结构信息,类似如下:```Name Null? Type----------------------------------------- -------- ----------------------------EMPLOYEE_ID NOT NULL NUMBER(6)FIRST_NAME VARCHAR2(20)LAST_NAME NOT NULL VARCHAR2(25)EM本人L NOT NULL VARCHAR2(25)PHONE_NUMBER VARCHAR2(20)HIRE_DATE NOT NULL DATEJOB_ID NOT NULL VARCHAR2(10)SALARY NUMBER(8,2)COMMISSION_PCT NUMBER(2,2)MANAGER_ID NUMBER(6)DEPARTMENT_ID NUMBER(4)通过以上示例,我们可以看到 `employees` 表的建表语句,从而了解该表的结构和字段类型。

ORACLElinux下sqlplus命令

ORACLElinux下sqlplus命令

ORACLElinux下sqlplus命令⼀、ORACLE的启动和关闭 1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quitoracle关闭的⼏种⽅式:shutdown(正常的库关闭,等待每个⽤户的数据库连接断开,才可以关闭。

);shutdown immediate(每个⽤户在执⾏完当前的SQL后,⽴即关闭。

平时⽤的⽐较多的是这个);shutdown abort(强制关闭) 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C SQL> startup ORACLE instance started. 2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下 su - root a、启动ORACLE系统 hareg -y oracle b、关闭ORACLE系统 hareg -n oracle Oracle数据库有哪⼏种启动⽅式 说明: 有以下⼏种启动⽅式: 1、startup nomount ⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库 读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。

Oracle第二讲 SQLPlus的基本使用天津工业大学

Oracle第二讲 SQLPlus的基本使用天津工业大学
Confidential © 2013 iSoftStone Holdings Limited. All Rights Reserved.
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基本操作1.登陆用户:sqlplus /as sysdba --以操作系统权限认证的oracle sys管理员登陆conn /as sysdba --不在cmd或者terminal当中暴露密码的登陆方式sqlplus scott/tiger --非管理员用户登陆sqlplus scott/tiger@orcl --非管理员用户使用tns别名登陆sqlplus sys/password@orcl as sysdba --管理员用户使用tns别名登陆sqlplus --不显露密码的登陆方式Enter user-name:sysEnter password:password as sysdba--以sys用户登陆的话必须要加上 as sysdba 子句cmd下登陆:sqlplus /nolog --进入sqlplus环境,如果直接打来sqlplus则不用这一步conn /as sysdba --以系统管理员身份(sysdba)登陆数据库2.用户管理系统用户sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//登陆sys账户,方法二sqlplus scott/tiger;//登陆普通用户scott管理用户create user starive;//在管理员帐户下,创建用户starivealert user scott identified by tiger;//修改密码解锁scott用户:cmd下sqlplus /nolog --进入sqlplus环境conn /as sysdba --以系统管理员身份(sysdba)登陆数据库也可:sqlplus请输入用户名:sys输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上as sysdba 才可以然后:alter user scott account unlock;commit;conn scott/tiger输入新口令:tiger。

sqlplus命令

sqlplus命令
select * from CQI.T_BBS_XUSER;
14、增加数据库用户:(test11/test)
create user test11 identified by test default tablespace users Temporary TABLESPACE Temp;
15、用户授权:
3、将显示的内容输出到指定文件
SQL幕上的所有内容都包含在该文件中,包括你输入的sql语句。
关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
conn sys/change_on_install as sysdba;
4、SQL>startup; 启动数据库实例
5、 查看当前的所有数据库: select * from v$database;
select name from v$database;
desc v$databases; 查看数据库结构字段
----------------------------------------------------------------------------------------------------------------------
oracle数据库时常用的操作命令最近遇到一个使用了oracle数据库的服务器,在狂学oracle+请教高手后终于搞到了网站后台管理界面的所有用户密码,我发现oracle操作起来真是太麻烦,为了兄弟们以后少走些弯路,我把入侵当中必需的命令整理出来,一个星期的心血,版权所有,转载请注明作者.
SQL>set TIMING {ON|OFF}

sqlplus 查询建表语句

sqlplus 查询建表语句

sqlplus 查询建表语句摘要:一、引言二、SQLplus 简介三、创建表的基本语法四、使用SQLplus 创建表的实例五、创建表时需要注意的要点六、总结正文:一、引言SQLplus 是Oracle 数据库的一个命令行工具,它允许用户通过交互式方式执行SQL 语句,进行数据库操作。

在数据库设计中,创建表是非常重要的一个步骤。

本文将介绍如何使用SQLplus 查询建表语句。

二、SQLplus 简介SQLplus 是一个强大的数据库管理工具,它支持大部分的SQL 语法,可以执行创建表、插入数据、查询数据、修改数据等操作。

在Oracle 数据库中,SQLplus 是默认的命令行工具,可以通过它执行所有的SQL 语句。

三、创建表的基本语法在SQLplus 中,创建表的语法如下:```CREATE TABLE 表名(列名1 数据类型,列名2 数据类型,...);```其中,表名需要符合标识符的命名规则,列名也需要符合标识符的命名规则,数据类型包括字符型、数字型、日期型等。

四、使用SQLplus 创建表的实例假设我们要创建一个名为`students`的表,包括`id`、`name`、`gender`、`age`、`class`五列,数据类型分别为`number`、`varchar2`、`char`、`number`、`varchar2`,可以使用以下SQL 语句创建:```CREATE TABLE students (id NUMBER,name VARCHAR2,gender CHAR,age NUMBER,class VARCHAR2);```五、创建表时需要注意的要点1.表名和列名需要符合标识符的命名规则,不能包含空格、小于号、大于号等特殊字符。

2.数据类型需要与实际存储的数据类型相匹配,例如,存储整数时不能使用字符型数据类型。

3.在创建表时,可以指定主键、外键等约束条件,以保证数据的完整性和一致性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Sql*plus中蕴藏着好多技巧,如果掌握这些技巧,对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。

1.使用SQL*PLUS动态生成批量脚本将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。

例1:生成一个脚本,删除SCOTT用户下的所有的表:a. 创建gen_drop_table.sql文件,包含如下语句:SPOOL c:\drop_table.sqlSELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;SPOOL OFFb. 以SCOTT用户登录数据库SQLPLUS > @ …..\gen_dorp_table.sqlc. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示:SQL>SELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;'DROPTABLE'||TABLE_NAME||';'------------------------------------DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STA T_VENDER_TEMP;DROP TABLE TABLE_FORUM;5 rows selected.SQL>SPOOL OFFd. 对生成的drop_table.sql文件进行编辑去掉不必要的部分,只留下drop table …..语句e. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。

SQLPLUS > @ c:\dorp_table.sql在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的sql语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。

懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。

a. 创建gen_drop_table.sql文件,包含如下语句:set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term offset trims onset linesize 600set heading offset timing offset verify offset numwidth 38SPOOL c:\drop_table.sqlSELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;SPOOL OFFb. 以SCOTT用户登录数据库SQLPLUS > @ …..\gen_dorp_table.sqlc. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示: DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STA T_VENDER_TEMP;DROP TABLE TABLE_FORUM;d. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。

SQLPLUS > @ c:\dorp_table.sql2.将一个表中的数据导出生成一个文本文件,列与列之间以”,”隔开set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term offset trims onset linesize 600set heading offset timing offset verify offset numwidth 38SPOOL c:\drop_table.sqlselect DEPTNO || ',' || DNAME FROM DEPT;SPOOL OFF将上面的内容保存为一个文本文件后,以scott登录,执行该文件后显示结果:10,ACCOUNTING20,RESEARCH30,SALES40,OPERATIONS通过上面的两个例子,我们可以将:set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term offset trims onset linesize 600set heading offset timing offset verify offset numwidth 38SPOOL c:\具体的文件名你要运行的sql语句SPOOL OFF作为一个模版,只要将必要的语句加入这个模版就可以了。

在oracle的较新版本中,还可以用set colsep命令来实现上面的功能:SQL> set colsep ,SQL> select * from dept;10,ACCOUNTING,NEW YORK20,RESEARCH,DALLAS30,SALES,CHICAGO40,OPERATIONS,BOSTON35,aa,bb3.动态生成spool命令所需的文件名在我们上面的例子中,spool命令所需要的文件名都是固定的。

有时我们需要每天spool 一次,并且每次spool的文件名都不相同,如文件名包含当天的日期,该如何实现呢?column dat1 new_value filename;select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual;spool c:\&&filename..txtselect * from dept;spool off;4.如何从脚本文件中得到WINDOWS环境变量的值:在windos中:spool c:\temp\%ORACLE_SID%.txtselect * from dept;spool off在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt在UNIX中:spool c:\temp\$ORACLE_SID.txtselect * from dept;...spool off在上面的例子中,通过$ORACLE_SID的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt5.如何指定缺省的编辑脚本的目录在sql*plus中,可以用save命令,将上一条执行的sql语句保存到一个文件中,但是如何设置该文件的缺省目录呢?通过SQL> set editfile c:\temp\file.sql 命令,可以设置其缺省目录为c:\tmpe,缺省文件名为file.sql。

6.如何除去表中相同的行找到相同的行:SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a.deptno = b.deptnoAND a.dname = b.dname-- Make sure all columns are comparedAND a.loc = b.loc);注释:如果只找deptno列相同的行,上面的查询可以改为:SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a.deptno = b.deptno)删除相同的行:DELETE FROM dept aWHERE ROWID <> (SELECT MAX(ROWIDFROM dept bWHERE a.deptno = b.deptnoAND a.dname = b.dname -- Make sure all columns are comparedAND a.loc = b.loc);注意:上面并不删除列值为null的行。

7.如何向数据库中插入两个单引号(’’)Insert inot dept values(35,’aa’’’’bb’,’a’’b’);在插入时,用两个’表示一个’。

8.如何设置sql*plus的搜寻路径,这样在用@命令时,就不用输入文件的全路径。

设置SQLPATH环境变量。

如:SQLPATH = C:\ORANT\DBS;C:\APPS\SCRIPTS;C:\MYSCRIPTS9.@与@@的区别是什么?@等于start命令,用来运行一个sql脚本文件。

@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。

@@用在脚本文件中,用来指定用@@执行的文件与@@所在的文件在同一目录,而不用指定全路径,也不从SQLPATH环境变量指定的路径中寻找文件,该命令一般用在嵌套脚本文件中。

10.&与&&的区别&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。

&&用来创建一个持久变量,就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。

当用&&命令引用这个变量时,不会每次遇到该变量就提示用户键入值,而只是在第一次遇到时提示一次。

如,将下面三行语句存为一个脚本文件,运行该脚本文件,会提示三次,让输入deptnoval 的值:select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;将下面三行语句存为一个脚本文件,运行该脚本文件,则只会提示一次,让输入deptnoval的值:select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;11.引入copy的目的Copy命令在两个数据库之间拷贝数据时特别有用,特别是该命令可以在两个数据库之间传递long型字段的数据。

相关文档
最新文档