当前位置:文档之家› SQL基本查询与SQL Plus的使用

SQL基本查询与SQL Plus的使用

SQL基本查询与SQL Plus的使用
SQL基本查询与SQL Plus的使用

实验3 SQL基本查询与SQL Plus的使用

姓名:学号:

专业:

同组人:无实验日期:2010-03-18

【实验目的与要求】

1.熟悉Oracle SQL Plus的使用

2.掌握SQL基本查询。

【实验内容与步骤】

3.1启动SQL*Plus

要调用SQL Plus,需依次完成如下步骤:

?单击Start(“开始”)按钮。

?指向Programs(“程序”)组图标。

?选择Oracle—oracle10g。

图3-1

?选择Application Development(“应用程序开发”)选项。

?单击SQL Plus。

启动SQL 之后,将会出现图3-2 所示的屏幕。填写相应的详细资料。按Tab 键转到下一个选项。安装Oracle 时创建的默认用户为Scott,密码为tiger。主机字符串是oracle。

图 3-2

单击 OK (“确定”)。

将会出现如下图所示的屏幕,显示产品信息。

图 3-3

SQL > 是 SQL 提示符。在此提示符下提供要执行的 SQL 命令和语句。

下面给出可通过 scott/tiger 登录访问的默认表及其列名。在本实验中,我们将使用这些表。

EMP DEPT SALGRADE EMPNO ENAME JOB MGR

HIREDATE SAL COMM DEPTNO

DEPTNO DNAME LOC GRADE LOSAL HISAL

3.2 从表中查看数据

输入表中的数据可通过使用SELECT语句进行查看。

3.2.1 查看所有列

语法如下:

SELECT * FROM tablename;

其中“*” 表示将显示所有列。

实验3-1 部门表中查看所有记录和所有字段,请执行如下步骤:

?在SQL 提示符下键入“Select * from dept”(从部门选择*)。

?按Enter。

您将得到图3-4 中显示的结果。

图3-4

3.2.2 查看选择列

要查看选择列,请输入列名,并用逗点而不是“*”隔开。

语法如下:

SELECT columnname1, columnname2, ?, columnnameN FROM tablename;

实验3-2只显示部门表中的部门名和位置,执行如下所示的语句:

图3-5

请给出运行结果:

某些列标题由于其列大小限制而使用缩写词。要将字符列的显示宽度设置为12,请给出如下语句:

COLUMN columnname FORMAT A12

COLUMN 语句不能以分号结尾,因为它是格式化命令。

通过COLUMN 命令可以使用的选项包括:

选项功能

FORMAT 指定数据格式

HEADING text text为列标题

JUSTIFY L R C 将标题对齐为LEFT RIGHT CENTER

WRAP TRUNC 在列中回行或截断数据

通过FORMAT 选项可用的掩码包括:

掩码功能

A n n 个字母数字字符

99[9…]不含前导零的数字

00[…]含前导零的数字

. 显示的小数点

V 隐藏的小数点

$ 先导$

MI 数字后面是减号

PR 负值包括在“<>”之内

B 显示空白而不是零

要显示包含前导零的薪金,请在SQL 提示符下给出如下命令。

SQL> column sal format 009999

实验3-3设置格式之后,执行如下所示的命令。

图3-5(a)

请给出运行结果:

这样,所有雇员的薪金就以包含前导零的格式显示。要删除此格式,请在提示符下输入如下给定命令。

SQL> column sal format 999999

3.2.3 查看符合条件的行

可以使用WHERE 子句完成对某些相关数据行的条件检索。WHERE 子句中指定的条件称为谓词。谓词可以是任意数据类型、字符、数字或日期。像AND、OR 和NOT 这样的逻辑运算符也可以用于合并谓词。

语法如下:

SELECT columnname1, columnname2, ?, columnnameN

FROM tablename

WHERE ;

实验3-4要从雇员表中只显示那些在部门20 工作的雇员,执行如下所示的语句:

图3-6

请给出运行结果:

在谓词中可以有效使用的其他运算符还有:

1.IN 运算符:此运算符用于显式规定可以接受的值组。

实验3-5要只显示属于“CLERK”(办事员)或“MANAGER”(经理)的雇员,执行如下命令。

图3-7

请给出运行结果:

另一方面,NOT IN 运算符将返回与条件不匹配的行。

2.BETWEEN 运算符:此运算符与IN 运算符相似,不过可以指定值的范围而不是匹

配的值组。

实验3-6要只显示在“03-JAN-82”(1982 年1 月1 日)和“33-DEC-87”(1987 年12 月31 日)之间加入的雇员,请给出如下命令。

图3-8

请给出运行结果:

NOT BETWEEN 运算符将获取与条件不匹配的行。

3.LIKE 运算符:该运算符用于匹配字符串或字符串的一部分(称为子字符串)。该

运算符使用通配符扩展其字符串匹配功能。有两种通配符与LIKE 运算符一起使用:

下划线(_):这表示任意单字符。

百分号(%):这表示多字符的序列。

实验3-7 要显示姓名以“J”开头的雇员,请给出如下命令。

图3-9

请给出运行结果:

3.2.4 查看汇总数据(使用统计函数)

GROUP BY 子句根据字段值对行进行分组。该子句在应用时将与聚合函数联合。有时,也要求对已分组的查询进行条件检索。可以使用“HAVING”子句对已分组查询进行条件检索。“HAVING”子句与“WHERE”子句相似,只不过“WHERE”子句用于行,而“HAVING”子句用于已分组的结果。

语法如下:

SELECT columnname1, aggregate_function(columnname2)

FROM tablename

GROUP BY columnname1;

实验3-8要从雇员表中显示付给经理的最高薪金,执行如下所示的语句:

图3-10

请给出运行结果:

聚合函数通常与Group by 和Having 子句一起使用。要讨论的聚合函数是:

1. Count:此函数对包括Null 值的查询所返回的行数进行记数。

实验3-9要查找每个工作类别的人数,执行如下所示的语句:

图3-11

请给出运行结果:

2. Max:从查询返回的值中返回最大值。

Selelct job,count(job)

From emp

Group by job

Having

3.Min:从查询返回的值中返回最小值。

4. Avg:用来确定某个列中出现的值的平均数。

5. Sum:用来获取查询输出的行的算术和。

实验3-10要从雇员表中显示付给经理的最高、最低、平均和总薪金,执行如下所示的语句:

图3-12

请给出运行结果:

3.2.5 以指定顺序查看数据

ORDER BY子句可帮助按照希望出现的顺序检索查询。可以通过指定DESC 参数或ASC 参数来按升序顺序或降序顺序进行排序。如果没有指定任何参数,则默认为升序排序。还可对多列进行排序。

语法如下:

SELECT columnname1, columnname2, ?, columnnameN

FROM tablename

WHERE ;

ORDER BY columnname1, columnname2, … , columnnameN;

实验3-11要以雇员的工作的顺序显示收入大于或等于3000 的雇员,执行如下所示的语句:

图3-13

请给出运行结果:

3.2.6 使用计算列查看数据

除了从数据库表中直接提取的列外,SQL 还可以用于计算多个列中的数据的值。可在查询中使用SQL 表达式执行所有类型的算术操作。唯一必须注意的是,这些表达式涉及的列应该只属于数字数据类型。

语法如下:

SELECT columnname1, (columnname2 columnname3)

FROM tablename

实验3-12要从雇员表中显示雇员总薪金,执行如下语句:

图3-14

请给出运行结果:

注意:在上面的命令中,NVL 函数用来将空值转换为数字值,我们在此将其转换为“0”。我们必须按任意表达式执行此操作,表达式中包含空值,因为操作数返回NULL。因此,为避免在任何操作中出现这种错误,我们使用NVL 函数。

3.3退出SQL

在SQL 提示符下键入Exit (“退出”)或执行如下步骤:

?从Main Menu(“主菜单”)中选择File(“文件”)选项。

?单击Exit(“退出”)。

?您也可以在命令提示符下输入“Exit”。

3.4 实验练习:

在scott用户模式下,完成下查询需求,给出相关查询语句和运行结果:

(1)列出各种类别"SALES"工作的雇员的姓名,假定不知道销售部的部门编号.

(2)列出薪金高于公司平均水平的所有雇员.

(3)列出与"SCOTT"从事相同工作的所有雇员.

select ename

from emp

where job=

(select job

from emp

where ename=upper('scott'));

(4)列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员. select dept.deptno,dname,loc,count(empno)

from dept,emp

where dept.deptno=emp.deptno(+)

group by dept.deptno,dname,loc ;

(5)列出各种类别工作的最低工资.

Select min(sal) from emp group by job;

(6)列出各个部门MANAGER的最低薪金.

select deptno,min(sal)

from emp

where job=upper('manager')

group by deptno;

(7)列出按计算的字段排序的所有雇员的年薪.

(8)选择部门 30 中的雇员。

select * from emp

where deptno=30;

(9)列出所有办事员的姓名、编号和部门。

select ename,empno,dname

from emp e

inner join dept d on e.deptno = d.deptno where job=upper('clerk');

(10)找出佣金高于薪金的雇员。

select * from emp where comm>sal;

(11)找出佣金高于薪金 60% 的雇员。

select *

from emp

where comm>sal*0.6;

(12)找出部门 10 中所有经理和部门 20 中所有办事员的详细资料。

select * from emp

where (deptno=10 and job=upper('manager'))

or (deptno=20 and job=upper('clerk'));

(13)找出部门 10 中所有经理、部门 20 中所有办事员以及既不是经理又不是办事员但

其薪金大于或等于 2000 的所有雇员的详细资料。

select * from emp

where (deptno=10 and job=upper('manager'))

or (deptno=20 and job=upper('clerk'))

or (job<>upper('manager')

and job<>upper('clerk') and sal>=2000);

(14)找出不收取佣金或收取的佣金低于 100 的雇员。select * from emp

where nvl(comm,0)<100;

(15)找出早于 12 年之前受雇的雇员。

select *

from emp

where months_between(sysdate,hiredate)/12>12;

(16)显示只有首字母大写的所有雇员的姓名。select ename

from emp

where ename=initcap(ename);

(17)显示雇员的详细资料,按姓名排序。

select *

from emp

order by ename;

(18)显示雇员姓名,根据其服务年限,将最老的雇员排在最前面。select ename

from emp

order by hiredate;

(19)显示所有雇员的姓名、工作和薪金,按工作内的工作的降序顺序排序,同工作按薪

金排序。

select ename,job,sal

from emp

order by job desc ,sal asc;

ORACLE SQLPLUS 常用命令及解释

Oracle SQLPlus常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

SQLPLUS用法大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus 命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer 中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ 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.sql 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。

oracle的sqlplus学习笔记

使用SQLPLUS 可以用它运行SQL查询和PL/SQL代码块并接收结果信息 可以发布DBA命令并自动工作 可以启动和关闭数据库 一种创建数据库管理报告的便利方法 设置环境变量 在调用SQLplus前,必须正确设置oracle环境变量, 包括设置ORACLE_SID,ORACLE_HOME和LD_LIBBARY_PATH,有时还须设置NLS_LANG和ORA_NLS11 用CONNECT(conn)命令连接 CONNECT(conn)命令可以以一个不同的用户身份进行连接 例: SQL> conn scott/tiger 已连接。 SQL> connect scott/tiger 已连接。 SQL*Plus登录模式 C:\>sqlplus -h SQL*Plus: Release 10.2.0.1.0 - Production Copyright (c) 1982, 2005, Oracle. All rights reserved. 用法1: sqlplus -H | -V -H 显示SQL*Plus 版本和用法帮助。 -V 显示SQL*Plus 版本。 为: ([/][@] | /) [AS SYSDBA | AS SYSOPER] | /NOLOG 指定数据库帐户用户名, 口令和数据库连接 的连接标识符。如果没有连接 标识符, SQL*Plus 将连接到默认数据库。 AS SYSDBA 和AS SYSOPER 选项是数据库管理 权限。

/NOLOG 选项可启动SQL*Plus 而不连接到 数据库。 为: @|[.] [ ...] 使用将分配给脚本中的替代变量的指定参数 从Web 服务器(URL) 或本地文件系统(filename.ext) 运行指定的SQL*Plus 脚本。 在启动SQL*Plus 并且执行CONNECT 命令后, 将运行站点概要 文件(例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件 (例如, 工作目录中的login.sql)。这些文件 可包含SQL*Plus 命令。 SQLPLUS的执行操作 一条SQL语句由一个分号(;)或一个反斜杠(/)结束 一个PL/SQL块由一个反斜杠(/)结束 可以使用连字符(-)作为语句行的继续字符 例: SQL> select 200 - <==此时sqlplus自动将'-'字符解释成继续字符并发布一条错误信息 > 100 from dual; select 200 100 from dual * 第 1 行出现错误: ORA-00923: 未找到要求的FROM 关键字 SQL> select 200 - - > 100 from dual; 200-100 ---------- 100 退出SQLPlus 在SQL*Plus输入exit(quit)命令正常退出会话,则事务立即被提交.如果不打算提交事务,必须在退出前执行rollback命令,就算autocommit设置值为off也是如此.在使用exit/quit时,会出现以下情况 ?所有未决的更改被回滚或提交; ?用户退出oraclesqlplus会话终止 ?控制权返回到操作系统

SQL-Plus的使用

SQL*Plus的使用 1. SQL*Plus介绍 SQL*Plus是oracle提供的一个工具程序,既可以在oracle服务器使用,也可以在oracle客户端使用。 SQL*Plus是一个最常用的工具,具有很强的功能,主要有: 1). 数据库的维护,如启动,关闭等 2). 执行SQL语句、执行PL/SQL程序 3). 执行SQL脚本 4). 数据的导出,报表 5). 应用程序开发、测试SQL/PLSQL 6). 生成新的SQL脚本 7). 供应用程序调用,如安装程序中进行脚本的安装 2. dual表 dual是一张系统表,同时也被定义成了public同义词。它只有一个字段和一条记录。该表本身的结构和数据没有什么意义,主要是借助该表进行其它操作。 Dual表的使用例如获取函数值、计算表达式的值: 说明:不要对dual表进行DDL与DML操作,只进行查询操作。

3. SQL*Plus使用 3.1 启动SQL*Plus及连接数据库 1). 不连接数据库 > sqlplus /nolog 2). 连接数据库 > sqlplus username/password 3). 使用连接字符串连接数据库 > sqlplus username/password@connect_identifier 4). 使用操作系统权限连接数据库 > sqlplus / as sysdba 3.2 SQL*Plus的命令 3.2.1 帮助命令 1). help命令 格式:help 命令名,用于知道某个具体命令的帮助信息。 如:SQL> help connect 2). describe命令 用户查看表的结构;获取函数,存储过程和包的描述。 如:SQL> desc user_tables 说明:在SQL*Plus中,所有命令都可以用前面的四个字母作为整个命令。 3.2.2 编辑命令 SQL*Plus会将上一次执行过的SQL命令(包括SQL语句和PL/SQL语句,包括一行或多行)保存到缓存区中,可以对缓存区中信息进行编辑。编辑后可以通过“/ ”命令执行修改后的缓存区中的命令,如果不修改,则是执行原有命令。 1). list [n] 命令 显示上一条命令中的第n行,如果不指定n,则显示上一命令的所有行,这样当前行就是最后一行。 如:

lab1 SQLPlus使用及简单Select语句

实验1 SQL*Plus使用及简单Select语句 实验人:_________ 学号_____ 班级____________ 实验目的: 1.掌握SQL*Plus常用功能的使用。 2.掌握简单查询的语法。 实验平台: 1.Windows 2000/XP。 2.Oracle 10g 实验过程记录及分析: 1.SQL*Plus的使用: 1) 2) 3)如果某个用户连接数据库时,发生了“协议适配器错误”,分析其原因,并给出解决错 4)

5) 6) 7) 2. SQL 1) 2)3

4)查询emp表中,工资额大于2000的员工的姓名及其工资额。 5) 6) 7)查询emp表中,ename列含有字母A的员工的姓名。

8) 9) 10

11)使用to_date函数查询1981年入职的员工姓名。 SQL> select * from emp 2 where to_char(hiredate,'yyyy')='1981'; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ----------

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

Sql*plus中蕴藏着好多技巧,如果掌握这些技巧,对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。 1.使用SQL*PLUS动态生成批量脚本 将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。 例1: 生成一个脚本,删除SCOTT用户下的所有的表: a. 创建gen_drop_table.sql文件,包含如下语句: SPOOL c:\drop_table.sql SELECT 'DROP TABLE '|| table_name ||';' FROM user_tables; SPOOL OFF b. 以SCOTT用户登录数据库 SQLPLUS > @ …..\gen_dorp_table.sql c. 在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 OFF d. 对生成的drop_tabl e.sql文件进行编辑去掉不必要的部分,只留下drop table …..语句 e. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。 SQLPLUS > @ c:\dorp_table.sql 在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的sql语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。 a. 创建gen_drop_table.sql文件,包含如下语句: set echo off set feedback off set newpage none set pagesize 5000 set linesize 500 set verify off set pagesize 0

SQLPLUS常用命令列表

SQL*PLUS常用命令列表 ?软件环境: 1、Windows 98 第二版 2、Oracle数据库版本为:Personal Oracle7 Release 7.3.4.0.0 3、Oracle安装路径为:C:\ORAWIN95 ?命令列表: ?假设当前执行命令为:select * from tab; ? ?(a)ppend 添加文本到缓冲区当前行尾 a order by tname 结果:select * from tab order by tname; ? (注:a后面跟2个空格) ?(c)hange/old/new 在当前行用新的文本替换旧的文本c/*/tname 结果:select tname from tab; ?(c)hange/text 从当前行删除文本c/tab 结果:select tname from ; ?del 删除当前行 ?del n 删除第n行 ?(i)nput 文本在当前行之后添加一行 ?(l)ist 显示缓冲区中所有行 ?(l)ist n 显示缓冲区中第 n 行 ?(l)ist m n 显示缓冲区中 m 到 n 行 ?run 执行当前缓冲区的命令 ?/ 执行当前缓冲区的命令 ?r 执行当前缓冲区的命令 ?@文件名运行调入内存的sql文件,如: ? ?SQL> edit s<回车> ?如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件, ?在其中输入“select * from tab;”,存盘退出。 ? ?SQL> @s<回车> ?系统会自动查询当前用户下的所有表、视图、同义词。 ? ?@@文件名在.sql文件中调用令一个.sql文件时使用 ? ?save 文件名将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql ?get 文件名调入存盘的sql文件 ?start 文件名运行调入内存的sql文件 ? ?spool 文件名把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,

SQLPLUS中SET命令

Set 命令 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行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。 当为off 时,一律不显示查询的行数 4). 是否显示列标题 SQL> SET HEA[DING] {ON|OFF} 当set heading off 时,在每页的上面不显示列标题,而是以空白行代替 5). 设置一行可以容纳的字符数 SQL> SET LIN[ESIZE] {80|n} 如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。 6). 设置页与页之间的分隔 SQL> SET NEWP[AGE] {1|n|NONE} 当set newpage 0 时,会在每页的开头有一个小的黑方框。 当set newpage n 时,会在页和页之间隔着n个空行。 当set newpage none 时,会在页和页之间没有任何间隔。 7). 显示时,用text值代替NULL值 SQL> SET NULL text 8). 设置一页有多少行数 SQL> SET PAGES[IZE] {24|n} 如果设为0,则所有的输出内容为一页并且不显示列标题

9). 是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。 SQL> SET SERVEROUT[PUT] {ON|OFF} 在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。 10). 当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。 SQL> SET WRA[P] {ON|OFF} 当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。 11). 是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。 SQL> SET TERM[OUT] {ON|OFF} 在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。 12). 将SPOOL输出中每行后面多余的空格去掉 SQL> SET TRIMS[OUT] {ON|OFF} 13). 设置是否显示当前时间 SQL> SET TIME {ON|OFF} 14). 显示每个sql语句花费的执行时间 SQL> SET TIMING {ON|OFF} 15). 设置列与列之间的分割符号 SQL> SET COLSEP { | } 16). 设置是否允许显示输出类似DBMS_OUTPUT SQL> SET SERVEROUTPUT {ON|OFF} 17). 设置是否允许对执行的sql进行分析 SQL> SET AUTOTRACE {ON|OFF}

Oracle SQLPlus 常用命令及解释

Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

Oracle安装与配置、SQLPlus(一)

1.1、O racle简介 Oracle是一个生产中间件和数据库的较大的生产商,Oracle原本的含义:“神喻”,指的是神说的话。中国在商朝的时代,把一些刻在龟壳上的文字当成是上天的指示,所以在中国将Oracle也翻译成“甲骨文”。 Oracle公司的发展实际还是依靠IBM公司。 Oracle的创始人:Larry Ellison,创办了Oracle公司。 他一生的最大目标,“财富榜超过比尔·盖茨” Bruce Scott现在已经离开了Oracle公司,开发出了一套新的数据库-------PointBase 1.2、O racle安装 现在使用的Oracle是10g的版本,Oracle中的版本主要分为以下几个: ●Oracle 8 ●Oracle 8i i表示Internet,表示此时Oracle公司正式开始进军互联网 ●Oracle 9i Oracle9i与8i相比是非常相似的 ●Oracle 10g g表示网格技术 例如,以baidu搜索为准,现在想使用一款软件,但是此软件在离自己非常近的地方就存在了下载地址,但是与自己非常远的地方也同样存在一个下载地址,那么有没有可能现在通过搜索引擎没有搜索到离自己近的下载,而使用了更远的下载,那么这样一来肯定会造成

资源的浪费。 所以新的网络概念就是将网络划分成一个个网格,通过网格表示一个区域 选择Oracle 10g下的install目录中的setup.exe就可以执行Oracle的安装指令了如果不能安装有可能是防火墙造成的,此时可以将防火墙暂时禁用 安装步骤

此时将Oracle安装在D盘之中

选择企业版进行安装

实验2 SQLPlus的使用

实验2 SQL*Plus工具的使用 一、实验目的 1.了解SQL*Plus工具的功能; 2.熟练掌握SQL*Plus工具连接与断开数据库的多种方式; 3.熟练掌握SQL*Plus常用命令的使用。 二、实验环境 1.硬件 每位学生配备计算机一台,满足下列软件的安装; 2.软件 Windows操作系统,安装Oracle Database 11g企业版; 3.网络 需要局域网支持; 4.工具 无 三、实验理论与预备知识 1.SQL*Plus工具连接数据库; 2.SQL*Plus工具的常用命令。 四、实验任务 1.SQL*Plus工具连接与断开数据库; 2.SQL*Plus工具的常用操作; 3.创建报表。 五、实验内容及步骤 1.SQL*Plus工具连接与断开数据库 (1)连接到默认数据库 具体步骤: 1)启动相应的数据库服务; 2)选择【开始】→【所有程序】→【Oracle-OraDB11g_Home1】→【应用程序开发】→【SQL Plus】,即可打开SQL*Plus工具的登录页面;

3)根据提示输入正确的用户名和口令,按回车键,则可以连接到默认数据库;4)连接到数据库之后,显示SQL>提示符,可以输入相应SQL命令; (2)连接默认数据库的其他方式 方式1:指定某个用户身份 选择【开始】→【附件】→【运行】,输入命令“sqlplus system/123456 ”,如图4-1所示; 图2-1 连接Oracle数据库 单击【确定】按钮,可直接进入新的SQL*PLUS主界面,如图2-2所示; 图2-2 SQL Plus主界面 方式2:以sys dba身份登录数据库 选择【开始】→【运行】,输入命令“sqlplus "/as sysdba" ”,单击【确定】按钮,可直接进入新的SQL*PLUS主界面,如图2-3所示;

SQLPLUS命令的使用大全资料

SQLPLUS命令的使用大全 (加入日期:2005-12-12) 【保存文章至硬盘】【打印文章】【字体:大中小】 分享到: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR]

FOLD_A[FTER] FOLD_B[EFORE] FOR[MAT] format 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] NUL[L] text OLD_V[ALUE] variable ON|OFF WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME LOC ---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location --------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from emp Department name Salary ---------- ---------- ---------- 10 aaa 11 SQL> COLUMN ENAME HEADING ’Employee|Name’ Sql>select * from emp Employee Department name Salary ---------- ---------- ---------- 10 aaa 11 note: the col heading turn into two lines from one line.

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:sys Enter 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;//在管理员帐户下,创建用户starive alert 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

实 验 一 SQL Plus的使用

实验一SQL Plus的使用 一、实验目的 掌握SQL PLUS的基本操作;掌握SQL PLUS基本命令;掌握数据的导入及导出方法。 二、实验属性 设计性 三.实验仪器设备及器材: 1.安装有windows操作系统计算机。 2.安装有Oracle11g的计算机,并且已经安装了一个数据库。 3.安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。 4.计算机具备网络环境。 四.实验要求 理解ORACLE的四种工作状态:打开状态(Open),关闭状态(Close),装载状态(Mount),启动状态(NoMount)。 使用SQL PLUS登录数据库。 带用户名及口令:$sqlplus system/manager as sysdba; 启动数据库:在命令提示符SQL>下,DBA用户可以对Oracle数据库做以下的启动:启动数据库实例,不装载数据库 SQL>startup nomount 启动实例,常用来创建数据库,创建控制文件。 启动数据库实例,装载数据库 SQL>startup mount 打开控制文件(常用来改变日志模式,重命名文件,数据库恢复等),装载数据库,并打开数据库 强制启动数据库, SQL>startup force 执行该命令时,数据库首先强制关闭当前正在运行的数据库,然后再执行打开数据库实例、装载数据库和打开数据库操作,因此,这条命令能够直接打开数据库。 在打开了数据库实例并装载了数据库后,要打开数据库可使用命令: SQL>alter database open; 执行以下查询语句: select * from V$ dba_tablespaces; 如果有查询结果,说明已经打开数据库。 关闭数据库:在sqlplus中关闭数据库有以下几种方法: a)正常关闭 SQL>shutdown normal b)立即关闭 SQL>shutdown immediate 该命令包括关闭数据库、卸载数据库、关闭实例。 c)中止关闭

Oracle数据库SQLPLUS中几个常用set语句

Oracle数据库SQLPLUS中几个常用set语句 在大家写脚本的时候,我们常常用set语句在设置一些需要的格式规范。下面,列举了几个常见set语句的应用。 SQL> set echo on—————————————————设置运行命令是是否显示语句 SQL> set feedback on———————————————-设置显示“已选择XX行” SQL> set colsep | —————————————————设置列与列之间的分割符号 SQL> set pagesize 10———————————————–设置每一页的行数 SQL> SET SERVEROUTPUT ON——————————-设置允许显示输出类似dbms_output.putline SQL> set heading on————————————————设置显示列名 SQL> set timing on————————————————–设置显示“已用时间:XXXX” SQL> set time on—————————————————–设置显示当前时间 SQL> set autotrace on———————————————–设置允许对执行的sql进行分析00:38:28 SQL> set echo on 00:38:37 SQL> @E:echo.sql 00:38:41 SQL> select status from v$datafile where rownum<6;

STA TUS ------- SYSTEM ONLINE ONLINE ONLINE ONLINE 已选择5行。 已用时间: 00: 00: 01.08 00:38:43 SQL> set echo off 00:38:58 SQL> @E:echo.sql STA TUS ——- SYSTEM ONLINE

sqlplus基本属性配置方法

LONG 数据类型 ?1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 2、对于超出一定长度的文本,基本只能用LONG类型来存储,数 据字典中很多对象的定义就是用LONG来存储的。 3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要 进行字符搜索就要用varchar2类型。 4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 5、LONG 数据类型的使用中,要受限于磁盘的大小。 ?能够操作 LONG 的 SQL 语句: 1、Select语句 2、Update语句中的SET语句 3、Insert语句中的VALUES语句 ?限制: ? ?1、一个表中只能包含一个 LONG 类型的列。 ? ?2、不能索引LONG类型列。 ? ?3、不能将含有LONG类型列的表作聚簇。 ? ?4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中,如insert into ...select。 ? ?5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。 ? ?6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT 除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。 ? ?7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。 ? ?8、LONG类型列不能用于分布查询。

? ?9、PL/SQL过程块的变量不能定义为LONG类型。 ? ?10、LONG类型列不能被SQL函数所改变,如:substr、instr。 ? ? ? ? ?SQL*Plus 中操作 LONG类型列: 1、set long n 2、col 列名 format An n代表n位字符(n为大于零的整数),An表示将此列的数据显 示宽度限制为不超过n位。 2 Oracle是C/S(Client/Server)结构的大型数据库,主要语言是4GLSQL语言,具有功能强大而简单易学的优点。C/S结构的工作过程是:当客户端(C端)输入并发送一条SQL语句后,便通过网络送到服务器端(S端),在那里被分 析执行然后再将结果通过网络返回到客户端,此时客户端可以再发下一条SQL 语句。可见,客户端是一条语句一条语句的发送,服务器端是一条一条的分析 执行,结果再一次次的返回。但是,这样单个的SQL语句引起了频繁的网络通信,大大降低了系统性能。PL/SQL是扩展SQL后的语言,PL/SQL块作为一个单位发送,使用了较少的网络通信,而且在运行中能根据条件,决定执行或重复 执行什么语句,既保留了SQL的强大性,又弥补了不足。 1 提高程序的运行速度 1.1 使用存储过程 存储过程是Oracle数据库的一种对象,是一种带名的PL/SQL过程程序块,它在创建后,被数据库服务器进行语法和句法分析,以编译了的形式存储在数 据库中,可以被有权用户在任何需要的地方调用。当客户端应用程序调用时, 只需发送一条调用命令,数据库服务器就会执行该过程。与一般的PL/SQL块主要的不同是:无需在网上传送大量的源程序代码,只传送一条调用命令,这就 大大降低了网络通信的负担;而且只在刚创建时分析编译一次,每次调用直接 执行编译了的代码,因此运行速度较快。 在实际开发时,对于具有共同特性的功能模块最好使用存储过程,调用时 通过使用不同的实际参数值来实现某一具体的处理。如果能充分利用存储过程 来完成应用系统的操作与处理,则可大大提高系统的运行性能。 1.2 编写可重用共享池中已有语句的SQL语句

实验1 ORACLE基本操作-使用SQL PLUS

实验1 ORACLE 基本操作-使用SQL PLUS 实验目的:掌握ORACLE的连接,了解ORACLE的数据库结构;熟悉SQL plus 命令行工具的使用。 实验内容: 一、机房环境的准备工作(每次重新启动机器后必做的工作) 为了能启动ORACLE并利用图形化的管理工具PLSQL/Developer对ORACLE数据库进行操作,在机房的机器中要先做如下的准备工作: 1、查看自己的机器名 方法:右击“我的电脑”→“属性”,找到并记住自己的计算机名 2、修改监听程序 方法:“开始”→“所有程序”→“Oracle-OraDb11g_home1”→“配置和移植工具”→“Net Manager”,在弹出的窗口中展开目录至最后的“LISTENER”,在右侧的窗口中将主机名改成自己的主机名→单击窗口右上角的红色叉号按钮关闭→在弹出的对话框中选择“保存”。

3、启动服务 右击“我的电脑”→“管理”→“服务和应用程序”→“服务” 找到并按顺序启动如下两个服务: 。 启动顺序:先启动,再启动 启动方法:右击服务名选择“启动” 注:当在自己的机器上使用时,这两个服务若显示已启动则不用重新再启动。 二、运行SQL Plus,建立与ORACLE数据库的连接 1.启动SQL Plus 方法:“开始”→“所有程序”→“Oracle-OraDb11g_home1”→“应用程序开发”→“SQL Plus” 2、以system用户建立与数据库的连接 在SQL Plus窗口中输入用户名为system,回车,输入口令是123456,回车。 注:输入的口令是不显示的。

若出现以下信息和SQL> 提示符,则表示已连接上。 三、SQL Plus命令窗口中命令的书写规则 (1)命令中的命令动词和关键字不区分大小写,只有字符串内部的字符区分大小写 (2)命令均以分号;结束 (3)所有的标点符号都是英文的标点 (4)命令的执行:输完命令后以分号结束,并按回车来运行该命令 (5)若想重复执行以前的输入的某个命令,则按:↑键上翻并显示以前输入的命令。 例1:对SCOTT用户解锁 在SQL>提示符后面输入以下命令来实现对用户SCOTT解锁。若出现“用户已更改”则表明修改成功。Scott用户的密码是本命令中设置的Orcl123456。 四、建立与断开与数据库的连接 1. 断开当前用户与数据库的连接 命令格式:disconnect 或disconn 例2:断开当前用户system 与数据库的连接

SQLPLUS的使用

SQL*PLUS的启动和使用 1.SQL*PLUS的启动 在UNIX平台下,登录用户的.profile文件(或者.login)文件中要配置了有关Oracle数据库的信息。形如下例所示: DISPLAY=IPADDRESS:0.0 ORACLE_HOME=/usr/oracle/app/oracle/product/8.1.6 PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/ccs/bin:/usr/bin/X11:/usr/local/bin:$PATH:. NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16cgb231280' ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data ORACLE_SID=o816 LD_LIBRARY_PA TH=$ORACLE_HOME/lib:/usr/lib export DISPLAY ORACLE_HOME PATH NLS_LANG ORA_NLS33 ORACLE_SID LD_LIBRARY_PA TH 这样就可以使用SQL*PLUS了。SQL*PLUS的启动输入有几种方式。 1.1快速启动 这种方式直接在命令行敲入所有的参数,不用提示。 Host>sqlplus UserName/passwd@RemoteDatabaseName其中: UserName是数据库系统管理员分配给你的用户名,passwd则是对应的密码。RemoteDatabaseName则是远端数据库的名字,若你想在本地终端上连接远端数据库时,就需要加上这一项,若只是连接本地数据库,则只需UserName和passwd就足够了。RemoteDatabaseName应该是db_domain和db_name组成的,但在香港,因为我们用了复制,所以用global_name做为各个数据库的名字。我们用在$ORACLE_HOME/network/admin目录下tnsname.ora文件中所定义的服务名来代指远端数据库名。 例如:四台机器上都装了Oracle数据库(scp1,scp2,smp1,smp2),且用了复制。(就和香港的情况一样)。我们还假设各台数据库上的tnsname.ora文件中所定义的服务名与数据库的全局名字是一样的。 有一个SQL*PLUS的用户名是hkcin,密码是test。我想登录scp1上的数据库,进入到SQL*PLUS中去,可以 telnet scp1 SCP1>sqlplus hkcin/test SQL> 也可以登录到除了scp1上的任一台机器上去,比如说scp2,然后 telnet scp2 SCP2>sqlplus hkcin/test@scp1 SQL> 最后结果是一样的,若想知道你到底是不是在SCP1的数据库上,可以通过下列语句验证一下:

相关主题
相关文档 最新文档