ORACLE基础入门SQLPLUS与SQL语言篇

合集下载

第3章sql语言与sqlplus

第3章sql语言与sqlplus

第3章 SQL语言与SQL*PlusSQL语言是用来管理和操作数据库的一种声明式语言,类似于英语自然语言,目前已经成为管理数据库的国际标准语言。

SQL语言具有简单易学、操作直观的特点,相较之关系型数据库复杂的理论,它提供了一种清晰明了的操作方式。

SQL*Plus是Oracle提供的一种管理数据库的命令行工具,它可以用来编写SQL、PL/SQL代码,在它上面除了可以执行SQL语言外,还可以操作SQL*Plus特有的一些语言,该工具主要被DBA用来维护数据库。

3.1 SQL语言基础SQL语言的全称是Structured Query Language,即结构化查询语言,它是Oracle客户端操作数据库的语言,提供了在高层数据结构上执行数据库的操作,不需要了解关系型数据库原理,比如不用指定数据的存放方式和存放格式,而且目前已经被美国国家标准局ANSI和国际标准化组织制定了SQL标准,这也意味着使用相同的SQL语句,可以在不同的数据库系统上执行操作,而且它简单易懂,目前已经成为管理和操作关系型数据库的标准语言。

3.1.1 SQL、SQL*Plus与Oracle的关系SQL是一门操作数据库的语言,SQL*Plus提供了向服务器端操作SQL语言的工具,而Oracle负责接收到客户端发送过来的工具,在数据库上执行SQL语句,然后发送反馈结果给SQL*Plus客户端。

举个例子,想知道员工史密斯的基本信息,可以打开SQL*Plus,向Oracle服务器发送一条标准的SQL语句,如图3.1所示。

图3.1 在SQL*Plus中查询SQL语句第1篇 Oracle 基础·78·用户首先打开SQL *Plus ,在Windows 平台上,在“运行”菜单中输入cmd 打开命令提示窗口,在该窗口中启动sqlplus.exe 程序,在sqlplus.exe 命令后面添加用户名和密码就可以连接到Oracle 服务器。

Oracle数据库基础及应用第05章SQLPlus命令

Oracle数据库基础及应用第05章SQLPlus命令
1. SET PAGESIZE n 选项 当执行有返回结果的查询语句时,SQL*Plus首先会
显示用户所选择数据的列名,然后在相应的列名下显 示数据,列名之间的空间就是SQL*Plus的一页。
SQL*Plus的一页多大,可以使用命令SHOW PAGESIZE显示SQL*Plus默认的一页的大小。可以通过使 用PAGESIZE命令来改变这个默认值。
• 其中:username指的是连接数据库的用户名, password指的是密码,如果不省略它们,则会直接登 录到SQL*Plus中;如果省略,可以在启动SQL*Plus之 后再输入连接数据库的用户名和密码。
5.1.3退出SQL*P1us
• 用户如果不需要再使用SQL*Plus命令时,想返回到操作系 统,只需在SQL*Plus命令提示符下,输入exit或quit命令, 按Enter键即可。
5.2.1 SET命令选项
• 在Oracle 11g系统中,用户可以使用SET命令来设置 SQL*Plus的运行环境。
• SET命令是SQL*Plus内部命令中最重要、使用频率最高 的命令。
• 使用SET命令的语法格式为:
set sysytem_option value
Set 选项及说明
选项 set autocommit {on|off|immediate} set autoprint{on|off} set autorecovery{on|off}
5.1.2登录数据库命令
• CONNECT命令的作用是连接数据库,若是当前已经有 用户连接了数据库,那么将会中断当前的连接,而使 用该命令指定的用户进行建立新的连接。
• CONNECT命令的语法格式为:
• CONN[ECT] [{<username>/<password> [@<connect_identifier>]/}[as{sysdba/sysoper}]

Oracle PL-SQL语言初级教程

Oracle PL-SQL语言初级教程

Oracle PL/SQL语言初级教程PL/SQL语言基础PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。

通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。

•Oracle PL/SQL语言基础(1)•Oracle PL/SQL语言基础(2)•Oracle PL/SQL语言基础(3)复合数据类型PL/SQL有两种复合数据结构:记录和集合。

记录由不同的域组成,集合由不同的元素组成。

在本文中我们将讨论记录和集合的类型、怎样定义和使用记录和集合。

•复合数据类型(1)•复合数据类型(2)•复合数据类型(3)•复合数据类型(4)•复合数据类型(5)单行函数和组函数函数是一种有零个或多个参数并且有一个返回值的程序。

在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:单行函数和组函数。

•单行函数和组函数详解(1)•单行函数和组函数详解(2)•单行函数和组函数详解(3)•单行函数和组函数详解(4)•单行函数和组函数详解(5)表和视图Oracle中表是数据存储的基本结构。

Oracle中引入了分区表和对象表,视图是一个或多个表中数据的逻辑表达式。

本文我们将讨论怎样创建和管理简单的表和视图。

•表和视图(1)•表和视图(2)完整性约束完整性约束是一种规则,不占用任何数据库空间。

完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。

用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。

•完整性约束(1)•完整性约束(2)•完整性约束(3)过程和函数过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。

过程有零个或多个参数,没有返回值。

函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。

第3章 sqlplus基础

第3章 sqlplus基础

3第3 章SQL*PLUS基础SQL*PLUS概述3.1 SQL*PLUS3.1311SQL*PLUS⏹ 3.1.1 什么是SQL*PLUS3.1.2 SQL*PLUS的启动、退出Q3.1.3 常用环境选项3.2 常用SQLPlus命令32SQLPl报令3.3 报表命令⏹使用SQL*PLUS可以很好地生成相关格式化报表3.1 SQL PLUS概述31SQL*PLUS3.1.1 什么是SQL*PLUS⏹Oracle的sql*plus是与oracle进行交互的客户端工具。

⏹在sql*plus中,可以运行sql*plus命令与sql*plus语句。

我们通常所说的DML、DDL、DCL语句都是sql*plus语句,l*l它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存条最近执行的sql语句,我们存区域中,并且只能保存一条最近执行的可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。

除了语句在l*l⏹除了语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。

它们执行完后,不保存在sql buffer的内存区域中,它们般用来对输出的结果进行格式化显示,存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。

⏹10g中的sql*plus增加了很多新特性,使得用起来很方便。

便。

3.1.2SQL*PLUS 3.1.2 SQL PLUS 的启动、退出⏹SQL*Plus 用于运行和跟踪调试SQL 语句和PL/SQL 块,该工具可以在命令行运行,也可以在Windows 窗口环境中运行。

Oracle10g 还提供个在的具供一个在WEB 页面中运行SQLPlus 的工具iSQLPlus 。

(1) 在dos 命令行运行SQLPlus⏹在实例启动时:实⏹SQLPLUS [username]/[password] [@server]⏹username 用户名,password 口令,server 网络服务名。

Oracle SQL语言基础

Oracle SQL语言基础

2.注意事项
(1)删除记录并不能释放Oracle里被占用的数据块表空间。它只把那些 被删除的数据块标成unused。
(2)如果确实要删除一个大表里的全部记录,可以用TRUNCATE语句, 它可以释放占用的数据块表空间,其语句格式为:
TRUNCATE TABLE 表名;
(3)此操作不可回退。
2.4.3 UPDATE语句
2.2.1 SQL语言的主要功能 2.2.2 SQL语言的语法结构
通过SQL语句,程序员或数据库管理员(DBA)可以做如下的 主要工作: (1)建立数据库的表格,包括设置表格所可以使用之空间。 (2)改变数据库系统环境设置。 (3)针对某个数据库或表格,授予用户存取权限。 (4)对数据库表格建立索引值。 (5)修改数据库表格结构(新建、删除或是修改表格字段)。 (6)对数据库进行数据的新建。 (7)对数据库进行数据的删除。 (8)对数据库进行数据的修改。 (9)对数据库进行数据的查询。
2.3.2 复合查询
1.连接查询
连接可以在SELECT 语句的FROM子句或WHERE子句中建立,在FROM 子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。 这样就可以将多个表中的数据进行有条件的查询:
select * from tablename1 , tablename2,… where expre
(4)ORDER BY条件子句 SELECT fieldlist FROM table WHERE selectcriteria ORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]] (5)GROUP BY 条件子句 SELECT fieldlist FROM table WHERE criteria GROUP BY groupfieldlist (6)HAVING 条件子句 SELECT fieldlist FROM table WHERE selectcriteria GROUP BY groupfieldlist HAVING groupcriteria

Oracle+SQLPLUS基础及sqlplus命令详解

Oracle+SQLPLUS基础及sqlplus命令详解
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/app/oracle/product/8.1.7)
Drop index 删除索引
Grant 授权给用户或角色
Truncate 删除表中的所有行
Revoke 从用户或角色收回权限
4.DML(Data Manipulation Language)
对于结构查询语言的另一组是数据操纵语言(DML)。DML其中用于数据操纵的命令如下:
Insert
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
S450 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
Oracle SQLPLUS基础及sqlplus命令详解
1.2 关系数据库系统(RDBMS)的组成
RDBMS由两部分组成,即数据库系统内核(软件)和数据字典(内核用于管理数据库系统的数据结构)两部分。
§1.2.1 RDBMS 内核
RDBMS就是用来控制数据访问的操作系统。它的任务是按照一定的规则存储数据、检索数据及保护数据。

ORACLE4SQL语言简介

ORACLE4SQL语言简介

俄SQL语言简介1、SQL概述SQL功能:①提取查询数据,②插入修改删除数据,·③生成修改和删除数据库对象,④数据库安全控制,⑤数据库完整性及⑥数据保护控制。

数据库对象包括表、视图、索引、同义词、簇、触发器、函数、过程、包、数据库链、快照等(表空间、回滚段、角色、用户)。

数据库通过对表的操作来管理存储在其中的数据。

1)SQL*PLUS界面:登录:输入SQLPLUS回车;输入正确的ORACLE用户名并回车;输入用户口令并回车,显示提示符:SQL>退出:输入EXIT即可。

2)命令的编辑与运行:●在命令提示符后输入SQL命令并运行,以分号结束输入;以斜杠结束输入;以空行结束输入;利用SQL缓冲区进行PL/SQL块的编辑和运行;●利用命令文件进行PL/SQL块的编辑和运行。

2、数据库查询1)用SELECT语句从表中提取查询数据。

语法为SELECT[DISTINCT]{column1,column2,…}FROM tablename WHERE{conditions}GROUP BY{conditions}ORDER BY{expressions} [ASC/DESC];说明:SELECT子句用于指定检索数据库的中哪些列,FROM子句用于指定从哪一个表或视图中检索数据。

2)SELECT中的操作符及多表查询WHERE子句。

(LIKE,IS,…)WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL 等比较运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。

3)ORDER BY子句ORDER BY子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY子句指定的表达式的值确定。

4)连接查询利用SELECT语句进行数据库查询时,可以把多个表、视图的数据结合起来,使得查询结果的每一行中包含来自多个表达式或视图的数据,这种操作被称为连接查询。

Oracle+PLSQL语言入门

Oracle+PLSQL语言入门

Oracle PL/SQL语言入门一、背景介绍结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。

显然,这种不关注任何实现细节的语言对于开发者来说有着极大的便利。

然而,有些复杂的业务流程要求相应的程序来描述,这种情况下4GL就有些无能为力了。

PL/SQL的出现正是为了解决这一问题,PL/SQL是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。

本文主要介绍PL/SQL的编程基础,以使入门者对PL/SQL语言有一个总体认识和基本把握。

二、编程基础知识1. 程序结构PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare 开头)、执行部分(以begin开头)和异常处理部分(以exception开头)。

其中执行部分是必须的,其他两个部分可选。

无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。

如下所示为一段完整的PL/SQL块:/*声明部分,以declare开头*/declare v_id integer;v_name varchar(20);cursor c_emp is select * from employee where emp_id=3;/*执行部分,以begin开头*/begin open c_emp;//打开游标loopfetch c_emp into v_id,v_name;//从游标取数据exit when c_emp%notfound ;end loop ;close c_emp;//关闭游标dbms_output.PUT_LINE(v_name);/*异常处理部分,以exception开始*/exceptionwhen no_data_found thendbms_output.PUT_LINE('没有数据');end ;2. 控制结构PL/SQL程序段中有三种程序结构:条件结构、循环结构和顺序结构。

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

GRANT、REVOKE
与本课程有关的表
EMP(雇员表) 表列
empno ename job mgr hiredate sal comm deptno
DEPT(部门表) 表列
deptno dname loc
描述
雇员代码 雇员姓名 职务 经理代码 受雇日期 工资 奖金 部门代码
描述
部门代码 部门名称 地理位置
SQL*PLUS简介
SQL*PLUS是ORACLE数据库的一个基本应用工具。它允许用户用SQL命 令交互地访问数据库。 SQL语言是一种非结构化相当高的语言,语法类似于英语,所以易于 学习。使用这种语言编程,用户只要指出要做什么,至于如何做则是由系 统来完成。 启动SQL*PLUS
1. 2. 3. 4. 运行,开始->程序->Oracle for Window95-SQL*PLUS 在弹出的窗口中,输入一个合法的用户名、口令 输入一个数据库连接串。(指定到要访问的数据库) 如果输入正确,屏幕上将出现提示符:SQL>,这说明你已经与指定的ORACLE数据库 连接成功。 数据库连接串: 指定要访问的数据库,使用Oracle Net8 Easy Config工具生成,需要给出的数据: • 数据库宿主机的机器名或IP地址 • 数据库的实例名 • 数据库监听器的端口号
分布式数据库与集中式数据库一样具有用户透明性和数据一致性
Oracle也支持分布式的处理,它上一个客户/服务器 (Client/Server)结构。数据库及其操作管理被分配在服务器 上,应用的执行都被分配在客户机上。
提供了强有力的集成化开发环境
提供了与第三代高级语言的接口软件PRO*系列,能在 C,C++等宿主语言中嵌入SQL语句及过程化(PL/SQL)语 句,对数据库中的数据进行操纵。加上它有许多优秀 的前台开发工具如 PowerBuilder、Dephi、 SQL*FORMS、VISIA BASIC 等,可以快速开发生成基 于客户端PC 平台的应用程序,并具有良好的移植性。
例:begin for I in 1..100 loop insert into temp (id) values (I); end loop; end;
SQL*PLUS的常用命令
1. Connect <用户名> <口令>@<连接串>:与数据库建立连接
例:SQL>connect system/manager
例1:按部门统计员工的个数、工资和、平均工资、最大工资、最小工资 SQL>SELECT DEPTNO,COUNT(*),SUM(SAL), AVG(SAL),MAX(SAL), MIN(SAL) FROM EMP GROUP BY DEPTNO;
数据更新命令-数据插入
数据插入命令 用INSERT命令向基表插入新的数据。 基本语法:
ORACLE基础入门 -SQL*PLUS与SQL语言篇
技术支持部 汤庆锋 福州磬基电子有限公司
Oracle数据库管理系统的特点
支持大容量、多用户的事务处理 是一个真正开放式的数据库管理系统 实施安全性和完整性控制 支持分布式数据库和分布式处理 具有良好的可移植性、兼容性和连接性 WEB支持(支持基于INTERNET的应用) 提供了强有力的集成化开发环境和管理工具
简单的数据查询命令
SELECT 子句
SELECT子句的<查找内容>指出要查找的数据,FROM的子句的<表名>指找过 程中要涉及的表。 例1:查找整个雇员表的内容 SQL>SELECT * FROM EMP; 说明:“*”代表所有字段 例2:查看雇员姓名和工资 SQL>SELECT ename,sal FROM EMP; 说明:查找多列数据,则用逗号将各个列名隔开。 例3:查看雇员姓名和工资,且用汉字做标题 SQL>SELECT ename “姓名”,sal “工资” FROM EMP; 例4:计算奖金占工资的比率 SQL>SELECT ename,sal,comm,comm/sal FROM EMP; 说明:SELECT语句中可以包含运算表达式
空值
非空
7
8
逻辑运算符
NOT 逻辑非 9
AND
OR
逻辑与
逻辑或
10
11
简单的数据查询命令
ORDER BY子句-排序
例1:按字母顺序显示雇员的名字
SQL>SELECT ENAME FROM EMP ORDER BY ENAME;
例2:按部门号降序显示雇员信息
SQL>SELECT * FROM EMP ORDER BY DEPTNO DESC; 说明:如果降序显示,必须加上关键字“DESC”
特性:
单个LOB列可以存储4GB的容量 每个表可以有多个LOB ORACLE允许为LOB指定单独的储存区域,而不是表的剩余空间这种分 开储存的方法大大简化了表的规模和数据管理活动。 可以通过禁止日志(NOLOGGING)参数指定是否在联机日志文件中记 录LOB数据中的修改部分。
支持多用户的事务处理
具有良好的可移植性、兼容性和连接性
Oracle可以在上百个操作系统平台和硬件平台上运行在 一个Oracle系统环境上开发的应用只需经过很少的修改 或者完全不用修改就可方便地移植到另一个系统上 Oracle允许不同类型的计算机和操作系统通过网络来共 享信息
实施安全性和完整性控制
安全性通过用户名、口令、系统权限、对象权限来实现 完整性通过列约束和触发器来实现。 使用列约束和触发器,在创建表时就可以定义大部分有效性检查(例如 主键、外键)和其他数据处理过程。这就使得用户在创建数据库结构时 可以定义自己的“业务规则”。
INSERT INTO <表名> [<(列名表)>] VALUES (<值表>); 例1:插入一新的部门-ACCOUNTING SQL> INSERT INTO DEPT VALUES (50, ’ACCOUNTING’,’NEW YORK’);
说明:值表中的值应与基表中的列名一一对应
例2:插入一新的雇员TOM SQL> INSERT INTO EMP (EMPNO,ENAME,hiredate) VALUES (2000,‘TOM’,to_date(‘20001010’,’yyyymmdd’));
例:SQL>save c:\sql\abc.sql
9. start <sql文件> 或 @ <sql文件>:执行SQL文件
例:SQL>@ c:\sql\abc.sql
SQL命令
SQL命令
数据操纵命令 (DML) 数据定义命令 (DDL) 数据控制命令 (DCL)
数据查询命令 数据更新命令 事务控制命令 CREATE…
例3:查看雇员姓名的第二个字母有“A”的雇员信息
SQL>SELECT * FROM EMP WHERE ENAME LIKE ’_A%‘; 说明:在LIKE运算符中,“%”匹配0个或多个字符,“_”匹配一个 字符
注意:使用where子句时,应注意值的使用方法,若该列为字符串,需用单引号(‘’)将字符 括起来,如:where ename=‘SMITH’,并且有要区分大小写。
数据操纵语言(DCL)
一、简单的数据查询命令
所谓查询就是从数据库中提取满足用户需要的数据,查询是由SELECT命 令实现的。 基本语法: SELECT <查询内容> 查找什么数据? FROM <表名> 从哪里找? WHERE <条件> 查找条件是什么? GROUP BY <分组内容> HAVING <组内条件> ORDER BY <排序内容>
2. disconnect:与数据库断开连接 3. host <操作系统命令>:在SQL*PLUS下执行操作系统命令
例:SQL>host dir c:\
4. 5. 6. 7. 8.
show user: 显示当前连接用户名 desc <表或视图>:查看表或视图的结构信息 list :显示当前SQL缓冲区里的命令 edit:编辑当前SQL缓冲区里的命令 save <磁盘文件>:保存当前缓冲区的命令到一磁盘文件
例如:创建一带约束的员工表 CREATE TABLE EMP ( EMPNO NUMBER(4) PRIMARY KEY , ENAME VARCHAR(10) NOT NULL, JOB VARCHAR(20), SAL NUMBER(6,1) CHECK (SAL>1000), HIREDATE DATE, DEPTNO NUMBER(2) REFERENCES DEPT(DEPTNO) ) ;
SQL和SQL*PLUS命令
SQL*PLUS可以处理的命令: SQL
SQL命令主要用来检索、创建、改变、存储和维护ORACLE数据库的信息。当 输入SQL命令完成时,可以用(;)、(/)或空行来结束当前命令的输入。 输入(;) 并按回车键,则结束SQL命令的输入,并运行命令。 输入(/ )并按回车键,则运行存放在SQL缓冲区中的命令。
简单的数据查询命令
WHERE子句-选择指定满足条件的行
例1:查找在10号部门中工作的雇员
SQL>SELECT * FROM EMP WHERE DEPTNO=10; 说明:DEPTNO=10 就是查询条件
例2:查找20号部门里职务不是经理的雇员信息
SQL>SELECT * FROM EMP WHERE DEPTNO=20 AND JOB!=’MANAGER‘; 说明:在WHERE子句中,可以使用逻辑运算符“NOT、AND、OR”
例3:查找工资高于2000的雇员信息,按部门号和雇员名字排序
相关文档
最新文档