当前位置:文档之家› ORACLE基础入门SQLPLUS与SQL语言篇

ORACLE基础入门SQLPLUS与SQL语言篇


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的雇员信息,按部门号和雇员名字排序
相关主题