oracle教程SQL基础演示文稿
合集下载
OracleSQL基础培训PPT课件93页

• 课程目标是完成课程后可进行项目中大部分Oracle SQL开发
• 适用对象
• 学习过标准SQL,未使用过Oracle数据库的读者 • 适用过SQL Server或其他数据库,未使用过Oracle数据库的读者
目录
课程介绍 SQL介绍 DML基础 DDL基础 DCL基础 TL基础
SQL介绍
目录
课程介绍 SQL介绍 DML基础 DDL基础 DCL基础 TL基础
课程介绍
• 教程概述
• 本教程假设读者已了解关系型数据库基本原理,明白表、视图、 主键、索引、外键、约束、关联等基本概念
• 本教程定位是Oracle SQL简明、实用教程,偏向于SQL开发,若 进一步学习Oracle数据库设计,请参阅其他教程或书籍文档
DML基础
• 逻辑运算符号
• AND 两个为真则结果为真 • OR 一个为真即为真 • NOT 取相反的逻辑值
DML基础
• SELECT语句
• 完整SELECT语句 • 基本SELECT语句 • ORDER BY从句 • DISTINCT从句 • WHERE从句 • AND条件 • OR条件 • AND、OR复合条件 • IN 与 NOT IN • BETWEEN 与 NOT BETWEEN • LIKE与NOT LIKE • EXISITS 与 NOT EXISITS • GROUP BY从句 • HAVING从句 • JOINS关联
• 示例
• SELECT * FROM suppliers WHERE (city = ‘Chicago’ AND name = ‘IBM’) OR (city = ‘Seattle’);
DML基础-SELECT语句-IN 与 NOT IN
• 用途
• 适用对象
• 学习过标准SQL,未使用过Oracle数据库的读者 • 适用过SQL Server或其他数据库,未使用过Oracle数据库的读者
目录
课程介绍 SQL介绍 DML基础 DDL基础 DCL基础 TL基础
SQL介绍
目录
课程介绍 SQL介绍 DML基础 DDL基础 DCL基础 TL基础
课程介绍
• 教程概述
• 本教程假设读者已了解关系型数据库基本原理,明白表、视图、 主键、索引、外键、约束、关联等基本概念
• 本教程定位是Oracle SQL简明、实用教程,偏向于SQL开发,若 进一步学习Oracle数据库设计,请参阅其他教程或书籍文档
DML基础
• 逻辑运算符号
• AND 两个为真则结果为真 • OR 一个为真即为真 • NOT 取相反的逻辑值
DML基础
• SELECT语句
• 完整SELECT语句 • 基本SELECT语句 • ORDER BY从句 • DISTINCT从句 • WHERE从句 • AND条件 • OR条件 • AND、OR复合条件 • IN 与 NOT IN • BETWEEN 与 NOT BETWEEN • LIKE与NOT LIKE • EXISITS 与 NOT EXISITS • GROUP BY从句 • HAVING从句 • JOINS关联
• 示例
• SELECT * FROM suppliers WHERE (city = ‘Chicago’ AND name = ‘IBM’) OR (city = ‘Seattle’);
DML基础-SELECT语句-IN 与 NOT IN
• 用途
Oracle_数据库应用教程课件_第2章 SQL基础

第2章 SQL基础
2.3.4 TRUNCATE TABLE命令 使用TRUNCATE TABLE可以删除表中的全部记录。利用此
第2章 SQL基础
图2-1 Oracle中的常用数据类型
第2章 SQL基础
2.2.1 常用数据类型 1.CHAR CHAR数据类型用来存储固定长度的字符数据。 语法格式: Var_field CHAR(n) 其中,n是指定的字符长度。如果不指定n的值,则n默
认为1。在定义表的列类型(如定义CHAR类型)时,其数值的 长度不超过2000字节,例如:
约束 主键 非空
与部门表中 cPcode 外键关联
与雇员技能表中 cScode 外键关联
第2章 SQL基础
表2-2 部门表(Department1)
字 段 名 部 门 代 码 部 门 名 称 部 门 负 责 人 部 门 地 址
代码 cPcode cPname cPhead clocation
类型 Char(6) Char(20) Char(10) Char(20)
【例】 修改雇员表Employee1。在列中增加一列,用来 存放性别数据。查看修改后的结果,如图2-2所示。
SQL>ALTER TABLE Employee1 ADD CSEX CHAR(2); 表已更改。 如果所添加的列包含空值,则必须分三步进行:① 添 加没有NOT NULL说明的列;② 在新列中添加数据到所有 行;③ 将列修改成NOT NULL。
第2章 SQL基础
SQL是所有RDBMS使用的公共语言,它不遵循任何特 定的执行模式,一次可以访问多个记录。其功能不仅仅是查 询,它使用简单的维护数据的命令,能够完成数据查询 (Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)等功能。
OracleSQL实用基础教程.ppt

关于空值(NULL)
SQL> SELECTename NAME, 12*sal+comm FROM emp WHERE ename = ‘KING’; NAME 12*SAL+COMM ------------------------------------------KING
• 标准化
–Hale Waihona Puke 有关组织SQL概述• ANSI(American Natural Standard Institute) • ISO(International Organization for Standardization)
– 有关标准
• SQL-86
– “数据库语言SQL”
• SQL-89
– “具有完整性增强的数据库语言SQL”,增加了对完整性约束的支持
选择指定的列
SQL> SELECT deptno , loc FROM dept; DEPTNO LOC ------------------ ------------------10 NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON
• 我们可以在SELECT后面指定要选择的列。
使用算术运算
SQL> SELECT ename , sal , 12*sal+100 FROM emp; ENAME SAL 12*SAL+100 --------------------------------------------------------KING 5000 60100 BLAKE 2850 34300 CLERK 2450 29500 JONES 2975 35800 …… 14 rows selected。 • 可以对数字类型的字段进行算术运算。运算的先后顺序是先乘除, 后加减,括号优先。 • 上面例子中,计算的是一年的报酬,月工资乘以12个月,再加上 100
最新Oracle数据库Sql语句详解大全教学讲义PPT课件

• 请查询出s_emp表中部门ID为50并且工资大于1500的员 工的信息:
SELECT * FROM s_emp WHERE salary>1500 and dept_id=50
WHERE条件查询-BETWEEN&IN
• 请查询出s_emp表中工资在1500到2000之间的员工信息:
SELECT * FROM s_emp WHERE salary between 1500 and 2000 • 请查询出s_dept表中region_id为1,3的部门信息:
SELECT * FROM s_emp WHERE dept_id=41 ORDER BY salary DESC
SQL> SELECTlast_name, dept_id, salary
2 FROM
s_emp
3 ORDER BYdept_id, salary DESC;
小结
Where条件查询 Between…and & In & Like 模糊查询 对查询结果排序
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
第三章 单行函数
本章目标
熟悉各种类型单行函数的使用 掌握转换函数的使用
两种SQL函数
• 请查询出当前用户下所有以‘s_’开头的表: SELECT table_name FROM user_tables WHERE table_name like 'S\_%' escape '\'
SELECT * FROM s_emp WHERE salary>1500 and dept_id=50
WHERE条件查询-BETWEEN&IN
• 请查询出s_emp表中工资在1500到2000之间的员工信息:
SELECT * FROM s_emp WHERE salary between 1500 and 2000 • 请查询出s_dept表中region_id为1,3的部门信息:
SELECT * FROM s_emp WHERE dept_id=41 ORDER BY salary DESC
SQL> SELECTlast_name, dept_id, salary
2 FROM
s_emp
3 ORDER BYdept_id, salary DESC;
小结
Where条件查询 Between…and & In & Like 模糊查询 对查询结果排序
SELECT[DISTINCT] {*, column [alias], ...}
FROM
table
[WHERE
condition(s)]
[ORDER BY{column, expr, alias} [ASC|DESC]];
第三章 单行函数
本章目标
熟悉各种类型单行函数的使用 掌握转换函数的使用
两种SQL函数
• 请查询出当前用户下所有以‘s_’开头的表: SELECT table_name FROM user_tables WHERE table_name like 'S\_%' escape '\'
Oracle数据库应用技术7 SQL语言基础

Oracle数据库 应用技术
第七章
SQL语言基础
主讲内容:SQL语法结构、SQL查询
本节课内容
一.SQL语言基础知识 二.使用SQL语言查询数据 三.综合练习
第3 页
一. SQL语言基础知识
• SQL(Structure Query Language),是关系型数据库管理 系统中最流行的数据查询和更新语言;
第 41 页
例1,查看部门为10的职工的最高工资; Select max(sal) 最高工资 From scott.emp Where deptno=10;
第 42 页
• 例2,显示所有职工的最高工资、最低工资和平均工 资; Select max(sal) 最高工资, min(sal) 最低工资, avg(sal) 平均工资 From scott.emp;
第8 页
• 数据输入到数据库中后,就可以用SELECT命令进行各类查 询,使得输出结果符合用户的要求;
• 简单语法格式: SELECT * FROM tablename [WHERE condition] [GROUP BY field1,……fieldn [ HAVING condition] ] [ORDER BY field1 [asc|desc] ,……] [COMPUTE clause]
第5 页
(2)PL/SQL语句的编写规则
• SQL关键字、对象名、列名不区分大小写; • 字符值和日期值区分大小写; • 在SQL*Plus中SQL语句要以分号结束;
– 如单行语句文本: • SQL> select ename,sal from emp;
– 多行语句文本: • SQL> select ename from emp where deptno=10 ;
第七章
SQL语言基础
主讲内容:SQL语法结构、SQL查询
本节课内容
一.SQL语言基础知识 二.使用SQL语言查询数据 三.综合练习
第3 页
一. SQL语言基础知识
• SQL(Structure Query Language),是关系型数据库管理 系统中最流行的数据查询和更新语言;
第 41 页
例1,查看部门为10的职工的最高工资; Select max(sal) 最高工资 From scott.emp Where deptno=10;
第 42 页
• 例2,显示所有职工的最高工资、最低工资和平均工 资; Select max(sal) 最高工资, min(sal) 最低工资, avg(sal) 平均工资 From scott.emp;
第8 页
• 数据输入到数据库中后,就可以用SELECT命令进行各类查 询,使得输出结果符合用户的要求;
• 简单语法格式: SELECT * FROM tablename [WHERE condition] [GROUP BY field1,……fieldn [ HAVING condition] ] [ORDER BY field1 [asc|desc] ,……] [COMPUTE clause]
第5 页
(2)PL/SQL语句的编写规则
• SQL关键字、对象名、列名不区分大小写; • 字符值和日期值区分大小写; • 在SQL*Plus中SQL语句要以分号结束;
– 如单行语句文本: • SQL> select ename,sal from emp;
– 多行语句文本: • SQL> select ename from emp where deptno=10 ;
Oracle数据库SQL基础与进阶

untax_billname where chr_id=a.billtype_id and chr_code in ('001','002'))
其他子查询(ALL,ANY,SOME) 该类子查询暂不做讨论
操作-Insert、Update、Delete语句的使用
学习目标:
➢如何使用INSERT UPDATE 和DELETE 来处理数据 ➢在操作数据时使用WHERE 子句的重要性 ➢从外部数据源中导入和导出数据的基本方法
查询-Select语句的使用
● 简单的Select查询:
查询表的所有列 select * from untax_billprice 查询表的指定列 select chr_name,price from untax_billprice 查询不重复的数据 select distinct price from untax_billprice
查询-Select语句的使用
表达式、条件语句和运算:
对于between…and,表示在某一段范围区间,它与price>=1 and price<=3是等价的
2、select * from untax_billprice where chr_code='001' or chr_code='002' or chr_code='010‘ 与 select * from untax_billprice where chr_code in (‘001’,‘002’,‘010’)等价
from untax_billname where chr_code='001')
查询-Select 该类子查询,其结果集为空时,返回false,非空时,返回true。理解
其他子查询(ALL,ANY,SOME) 该类子查询暂不做讨论
操作-Insert、Update、Delete语句的使用
学习目标:
➢如何使用INSERT UPDATE 和DELETE 来处理数据 ➢在操作数据时使用WHERE 子句的重要性 ➢从外部数据源中导入和导出数据的基本方法
查询-Select语句的使用
● 简单的Select查询:
查询表的所有列 select * from untax_billprice 查询表的指定列 select chr_name,price from untax_billprice 查询不重复的数据 select distinct price from untax_billprice
查询-Select语句的使用
表达式、条件语句和运算:
对于between…and,表示在某一段范围区间,它与price>=1 and price<=3是等价的
2、select * from untax_billprice where chr_code='001' or chr_code='002' or chr_code='010‘ 与 select * from untax_billprice where chr_code in (‘001’,‘002’,‘010’)等价
from untax_billname where chr_code='001')
查询-Select 该类子查询,其结果集为空时,返回false,非空时,返回true。理解
Oracle SQL语言基础

2.2.2 SQL语言的语法结构
SQL语句是针对关系型数据库所建立出来的语法叙述,所以 SQL在这类数据库中所发挥的功能非常的强,SQL的语句不多, 而且其语法也相对较简单。归纳起来,共有六大类: 1.第一类——属性词(Predicates) 2.第二类——声明(Declaration) 3.第三类——条件子句(Clause) 4.第四类——运算符(Operator) 5.第五类——函数(Function) 6.第六类——SQL语句(Statement)
3.1 SQL简介
2.1.1 发展历史 2.1.2 SQL的优点 2.1.3 操作界面
SQL语言是数据库的核心语言。全称是 “结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实 验室为其关系数据库管理系统SYSTEMR开发的 一种查询语言,它的前身是SQUARE语言。
注意:函数COUNT()没有指定任何字段。这个语句计算表
中所有记录所数目,包括有空值的记录。因此,不需要指定 要被计算的特定字段。 2.计算字段的平均值 函数AVG()可以返回一个字段中所有值的平均值。
注意:函数AVG()只能对数值型字段使用。这个函数在计
算平均值时也忽略空值。
3.计算字段值的和 计算字段值的和使用函数SUM()。
(2)如果字段值里包含单引号需要进行字符串转换,把它替换成两个 单引号 ‘‘。
(3)字符串类型的字段值超过定义的长度会出错,最好在插入前进行 长度校验。
(4)日期字段的字段值可以用当前数据库的系统时间SYSDATE,精确 到秒。
(5)INSERT时如果要用到从1开始自动增长的序列号,应该先建立一 个序列号。
2.5 数据定义语言(DDL)
③oracle+sql基础

AA> select initcap(cust_last_name) "name", cust_credit_limit + 1000 initcap("new credit limit") from customers;
--ora923:列名里面
Oracle SQL基础
• and、or运算表
T and F = F
• AA> insert into t1 values(1,'SEKER',&a)
• AA> insert into t1 (hiredate) values(to_date('2010-10-10','YYYY-MM-DD'));
2、子查询插入数据:(对应的类型应一致)
• AA> insert into t1 select * from emp;
1、按顺序列插入、default值插入、按指定列插入
• AA> insert into t1 values(1,'SEKER',default)
• AA> insert into t1 values(1,'SEKER',null)
• AA> insert into t1 values(1,'SEKER',sysdate)
· 星号* 不可以与单列同时存在
Oracle SQL基础
•空
值+空=空
SQL> select sal,comm,sal+comm from emp;
SAL COMM SAL+COMM
---------- ---------- ----------
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ename,sal
INTO v_name,v_sal
FROM emp
WHERE empno=7788;
--在程序中插入的SQL语句
DBMS_OUTPUT.PUT_LINE('7788号雇员是:'||v_name||',工 资为:'||to_char(v_sal));
--输出雇员名和工资
END; --结束标识
是也有不同,如表6-1所示。
纯量 类型
组合 类型
表6-1 变量的数据类型
数值
数据类型 BINARY_INTEGER NUMBER
字符
逻辑 日期 记录
表
CHAR VARCHAR2 LONG LONG RAW RAW RAWID BOOLEAN DATE RECORD TABLE
步骤2:在输入区输入以下程序:
/*这是一个简单的示例程序*/
SET SERVEROUTPUT ON
DECLARE--定义部分标识
v_name VARCHAR2(10);
--定义字符串变量v_name
v_sal NUMBER(5); --定义数值变量v_sal
BEGIN
--可执行部分标识
SELECT
oracle教程SQL基础演示文稿
优选oracle教程SQL基础
6.1 PL/SQL的基本构成
6.1.1 特点 PL/SQL语言是SQL语言的扩展,具有为程序开发而设计的特性,
如数据封装、异常处理、面向对象等特性。PL/SQL是嵌入到Oracle 服务器和开发工具中的,所以具有很高的执行效率和同Oracle数据库 的完美结合。在PL/SQL模块中可以使用查询语句和数据操纵语句(即 进行DML操作),这样就可以编写具有数据库事务处理功能的模块。
块中各部分的作用解释如下: (1) DECLARE:声明部分标志。 (2) BEGIN:可执行部分标志。 (3) EXCEPTION:异常处理部分标志。 (4) END;:程序结束标志。
在以下的训练中,将使用函数DBMS_OUTPUT.PUT_LINE显示输出 结果。DBMS_OUTPUT是Oracle提供的包,该包有如下三个用于输出的 函数,用于显示PL/SQL程序模块的输出信息。
调用函数时,在包名后面用一个点“.”和函数名分隔,表示隶属关 系。
要使用该方法显示输出数据,在SQL*Plus环境下要先执行一次如下 的环境设置命令:
SET SERVEROUTPUT ON [SIZE n] 用来打开DBMS_OUTPUT.PUT_LINE函数的屏幕输出功能,系统默 认状态是OFF。其中,n表示输出缓冲区的大小。n的范围在2000~1 000 000之间,默认为2000。如果输出内容较多,需要使用SIZE n来设置较大 的输出缓冲区。
至于数据定义(DDL)和数据控制(DCL)命令的处理,需要通过 Oracle提供的特殊的DMBS_SQL包来进行。PL/SQL还可以用来编写 过程、函数、包及数据库触发器。过程和函数也称为子程序,在定 义时要给出相应的过程名和函数名。它们可以存储在数据库中成为 存储过程和存储函数,并可以由程序来调用,它们在结构上同程序 模块类似。
使用INSERT、DELETE和UPDATE的语法没有变化,但在程 序中要注意判断语句执行的状态,并使用COMMIT或ROLLBACK 进行事务处理。
以下训练包含了按照标准结构书写的一个包含SELECT语句 的PL/SQL程序示例。
【训练1】 查询雇员编号为7788的雇员姓名和工资。
步骤1:用SCOTT账户登录SQL*Plus。
第一种形式: DBMS_OUTPUT.PUT(字符串表达式); 用于输出字符串,但不换行,括号中的参数是要输出的字符串表达 式。 第二种形式: DBMS_OUTPUT.PUT_LINE(字符串表达式); 用于输出一行字符串信息,并换行,括号中的参数是要输出的字符 串表达式。
第三种形式:
DBMS_OUTPUT.NEW_LINE; 用来输出一个换行,没有参数。
在PL/SQL模块中可以使用查询语句和数据操纵语句(即进行 DML操作),所以PL/SQL程序是同SQL语言紧密结合在一起的。 在PL/SQL程序中,最常见的是使用SELECT语句从数据库中获取 信息,同直接执行SELECT语句不同,在程序中的SELECT语句总 是和INTO相配合,INTO后跟用于接收查询结果的变量,形式如 下:
“--”是注释符号,后边是程序的注释部分。该部分不编译执 行,所以在输入程序时可以省略。/*......*/中间也是注释部分,同 “--”注释方法不同,它可以跨越多行进行注释。
PL/SQL程序的可执行语句、SQL语句和END结束标识都要 以分号结束。
6.1.3 数据类型 变量的基本数据类型同SQL部分的字段数据类型相一致,但
SELECT 列名1,列名2... INTO 变量1,变量2... FROM 表名 WHERE 条件;
注意:接收查询结果的变量类型、顺序和个数同SELECT语 句的字段的类型、顺序和个数应该完全一致。并且SELECT语句 返回的数据必须是一行,否则将引发系统错误。当程序要接收返 回的多行结果时,可以采用后面介绍的游标的方法。
PL/SQL过程化结构的特点是:可将逻辑上相关的语句组织在一 个程序块内;通过嵌入或调用子块,构造功能强大的程序;可将一 个复杂的问题分解成为一组便于管理、定义和实现的小块。
6.1.2 块结构和基本语法要求 PL/SQL程序的基本单元是块(BLOCK),块就是实现一定功能的
逻辑模块。一个PL/SQL程序由分由一个关键字标识。
步骤3:按执行按钮或F5快捷键执行程序。 输出的结果是:
7788号雇员是:SCOTT,工资为:3000 PL/SQL 过程已成功完成。 以上程序的作用是,查询雇员编号为7788的雇员姓名和工资, 然后显示输出。这种方法同直接在SQL环境下执行SELECT语句显示 雇员的姓名和工资比较,程序变得更复杂。那么两者究竟有什么区别 呢?SQL查询的方法,只限于SQL环境,并且输出的格式基本上是固 定的。而程序通过把数据取到变量中,可以进行复杂的处理,完成 SQL语句不能实现的功能,并通过多种方式输出。