ACCP V4.0 第二章 SQL 查询和 SQL 函数. ACCP V4.0  Oracle 服务器由 Oracle 数据库和 Oracle 实例组 成  Oracle 实例由系统全局区内存结构和用于管理数 据库的后台进程组成  Oracle 中用于访问数据库的主要查询工具有 SQL*Plus.

Slides:



Advertisements
Similar presentations
Oracle. 数据操纵语言  数据操纵语言用于检索、插入和修改数据  数据操纵语言是最常见的 SQL 命令  数据操纵语言命令包括:  SELECT  INSERT  UPDATE  DELETE.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
1 第 5 章 SQL 语句基础 在 Oracle 数据库中,为了方便管理用户所创建的 数据库对象,引入了模式的概念,这样用户所创建的 数据库对象就都属于该用户模式。对于一般的用户而 言,数据库中的数据是以表、视图行等方式存储的( 表和视图就是最基本的用户模式对象),用户只需要 根据自己的需求查询数据库,然后由数据库根据请求.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
MySQL 基础技能与原理 —— 基础技能 MySQL DBA Team 彭立勋( )
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
数据库技术 实践.
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第四章 数据库对象.
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
文科计算机小公共课规划教材 Access 程序设计.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
Oracle数据库 Oracle 子程序.
数据库应用与程序设计.
第5讲 分组查询 IBM Confidential.
關聯式資料庫.
Oracle数据库入门.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
課程名稱:資料庫系統 授課老師:李春雄 博士
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
資料庫安全 (Database Security)
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
Transact-SQL 語言設計教學.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
SQL SERVER 一些经典语句 1.
第四讲 数据库对象(视图、序列、同义词、索引)
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库基础 1.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第二章 Java语言基础.
ORACLE 第九讲 触发器.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
SQL 范引娣.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
SQL查询语句 蔡海洋.
VB与Access数据库的连接.
第三章 SQL Server数据管理.
第4章 Excel电子表格制作软件 4.4 函数(一).
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
Visual Basic程序设计 第13章 访问数据库
学习目标 1、了解基本运算符 2、运算符优先级.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
VB与Access数据库的连接.
第4章 数据查询.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

ACCP V4.0 第二章 SQL 查询和 SQL 函数

ACCP V4.0  Oracle 服务器由 Oracle 数据库和 Oracle 实例组 成  Oracle 实例由系统全局区内存结构和用于管理数 据库的后台进程组成  Oracle 中用于访问数据库的主要查询工具有 SQL*Plus 、 iSQL*Plus 和 PL/SQL  Oracle 企业管理器是用于管理、诊断和调整多个 数据库的工具  Oracle 中的 SYSTEM 用户和 SYS 用户具有管理 权限,而 SCOTT 用户只有基本的权限 回顾

ACCP V4.0 3 目标  了解 Oracle 数据类型  了解数据定义语言和数据操纵语言  了解事务控制语言和数据控制语言  掌握 SQL 操作符和 SQL 函数

ACCP V4.0 4 SQL 简介 2-1  SQL 是 Structured Query Language (结构化查 询语言)的首字母缩写词  SQL 是数据库语言, Oracle 使用该语言存储和 检索信息  表是主要的数据库对象,用于存储数据  通过 SQL 可以实现与 Oracle 服务器的通信 SELECT ename FROM Emp ; 发送 SQL 查询 Oracle 服务器 ename BLAKE SMITH ALLEN DAVID MARTIN 发送命令输出到用户端 用户

ACCP V4.0 5 SQL 简介 2-2  SQL 支持下列类别的命令:  数据定义语言( DDL )  数据操纵语言( DML )  事务控制语言( TCL )  数据控制语言( DCL ) 数据定义语言 CREATEALTERDROP 数据操纵语言 INSERTSELECTDELETE UPDATE 事务控制语言 COMMIT SAVEPOINT ROLLBACK 数据控制语言 GRANT REVOKE

ACCP V4.0 6 Oracle 数据类型 5-1  创建表时,必须为各个列指定数据类型  以下是 Oracle 数据类型的类别: 数据类型 字符数值日期时间 RAW/LONG RAW LOB

ACCP V4.0 7 Oracle 数据类型 5-2 字符数据类型 CHAR VARCHAR2 LONG  当需要固定长度的字符串时,使用 CHAR 数据类型。  CHAR 数据类型存储字母数字值。  CHAR 数据类型的列长度可以是 1 到 2000 个字节。  VARCHAR2 数据类型支持可变长度字符串  VARCHAR2 数据类型存储字母数字值  VARCHAR2 数据类型的大小在 1 至 4000 个字节范围内  LONG 数据类型存储可变长度字符数据  LONG 数据类型最多能存储 2GB

ACCP V4.0 8 Oracle 数据类型 5-3  数值数据类型  可以存储整数、浮点数和实数  最高精度为 38 位  数值数据类型的声明语法:  NUMBER [( p[, s])]  P 表示精度, S 表示小数点的位数  日期时间数据类型存储日期和时间值,包括年、 月、日,小时、分钟、秒  主要的日期时间类型有:  DATE - 存储日期和时间部分,精确到整个的秒  TIMESTAMP - 存储日期、时间和时区信息,秒值精 确到小数点后 6 位

ACCP V4.0 9 Oracle 数据类型 5-4  RAW 数据类型用于存储二进制数据  RAW 数据类型最多能存储 2000 字节  LONG RAW 数据类型用于存储可变长度的二进 制数据  LONG RAW 数据类型最多能存储 2 GB LOB  LOB 称为 “ 大对象 ” 数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文 件等  LOB 数据类型允许对数据进行高效、随机、分 段的访问 BLOB CLOB BFILE CLOB 即 Character LOB (字符 LOB ),它能够存储大量字符数据 BLOB 即 Binary LOB (二进制 LOB ),可以存储较大的二进制对 象,如图形、视频剪辑和声音文件 BFILE 即 Binary File (二进制文 件),它用于将二进制数据存储在 数据库外部的操作系统文件中

ACCP V Oracle 数据类型 5-5  Oracle 中伪列就像一个表列,但是它并没有存 储在表中  伪列可以从表中查询,但不能插入、更新和删除 它们的值  常用的伪列有 ROWID 和 ROWNUM ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中 的一行,可以使用 ROWID 伪列快速地定位表中的一行 ROWNUM 是查询返回的结果集中行的序号,可以使用它来限 制查询返回的行数

ACCP V 数据定义语言  数据定义语言用于改变数据库结构,包括创建、 更改和删除数据库对象  用于操纵表结构的数据定义语言命令有:  CREATE TABLE  ALTER TABLE  TRUNCATE TABLE  DROP TABLE

ACCP V 数据操纵语言  数据操纵语言用于检索、插入和修改数据  数据操纵语言是最常见的 SQL 命令  数据操纵语言命令包括:  SELECT  INSERT  UPDATE  DELETE

ACCP V DML – SELECT 命令 2-1  利用现有的表创建表  语法: CREATE TABLE AS SELECT column_names FROM ; SQL> CREATE TABLE newitemfile AS SELECT * FROM itemfile; SQL> CREATE TABLE newitemfile1 AS SELECT itemcode, itemdesc, qty_hand FROM itemfile; SQL> CREATE TABLE newitemfile2 AS SELECT * FROM itemfile WHERE 1 = 2;

ACCP V DML – SELECT 命令 2-2 SQL> SELECT DISTINCT vencode FROM vendor_master;  选择无重复的行  在 SELECT 子句,使用 DISTINCT 关键字  使用列别名  为列表达式提供不同的名称  该别名指定了列标题 SQL> SELECT itemcode, itemdesc, max_level, max_level*2 AS NEW_MAXLEVEL FROM itemfile; SQL> SELECT itemcode,itemdesc, max_level, max_level* 2 “New Maximum Level” FROM itemfile;

ACCP V DML – INSERT 命令 2-1  插入日期类型的值  日期数据类型的默认格式为 “DD-MON-RR”  使用日期的默认格式  使用 TO_DATE 函数转换 INSERT INTO my_table (date_col) VALUES (TO_DATE(' ', 'YYYY-MM-DD')); INSERT INTO order_master VALUES('o001', '12-5 月 -05', 'V002', 'c', '25-5 月 -05');

ACCP V DML – INSERT 命令 2-2  插入来自其它表中的记录  语法: INSERT INTO [(cloumn_list)] SELECT column_names FROM ; SQL> INSERT INTO newvendor_master SELECT * FROM vendor_master; SQL> INSERT INTO newvendor_master(vencode,venname) SELECT vencode, venname FROM vendor_master;

ACCP V 事务控制语言  事务是最小的工作单元,作为一个整体进行工作  保证事务的整体成功或失败,称为事务控制  用于事务控制的语句有:  COMMIT - 提交并结束事务处理  ROLLBACK - 撤销事务中已完成的工作  SAVEPOINT – 标记事务中可以回滚的点 SQL> UPDATE order_master SET del_date = ‘30-8 月 -05’ WHERE orderno <= ’o002’; SQL> SAVEPOINT mark1; SQL> DELETE FROM order_master WHERE orderno = ‘o002’; SQL> SAVEPOINT mark2; SQL> ROLLBACK TO SAVEPOINT mark1; SQL> COMMIT;

ACCP V 数据控制语言  数据控制语言为用户提供权限控制命令  用于权限控制的命令有:  GRANT 授予权限  REVOKE 撤销已授予的权限 SQL> GRANT SELECT, UPDATE ON order_master TO MARTIN; SQL> GRANT UPDATE(qty_hand, re_level) ON itemfile TO MARTIN; SQL> GRANT SELECT ON vendor_master TO accounts WITH GRANT OPTION; SQL> REVOKE SELECT, UPDATE ON order_master FROM MARTIN;

ACCP V SQL 操作符 集合操作符 逻辑操作符 比较操作符 算术操作符 连接操作符  Oracle 支持的 SQL 操作符分类如下:

ACCP V 算术操作符  算术操作符用于执行数值计算  可以在 SQL 语句中使用算术表达式,算术表达式 由数值数据类型的列名、数值常量和连接它们的 算术操作符组成  算术操作符包括加 (+) 、减 (-) 、乘 (*) 、除 (/) SQL> SELECT itemdesc, max_level - qty_hand avble_limit FROM itemfile WHERE p_category='spares'; SQL > SELECT itemdesc, itemrate*(max_level - qty_hand) FROM itemfile WHERE p_category='spares';

ACCP V 比较操作符  比较操作符用于比较两个表达式的值  比较操作符包括 = 、 != 、 、 = 、 BETWEEN…AND 、 IN 、 LIKE 和 IS NULL 等 SQL> SELECT itemdesc, re_level FROM itemfile WHERE qty_hand < max_level/2; SQL> SELECT orderno FROM order_master WHERE del_date IN (‘06-1 月 -05’,‘05-2 月 -05'); SQL> SELECT vencode,venname,tel_no FROM vendor_master WHERE venname LIKE 'j___s';

ACCP V 逻辑操作符 SQL> SELECT * FROM order_master WHERE odate > ‘10-5 月 -05' AND del_date < ‘26-5 月 -05’; 显示 月 -10 至 月 -26 的订单信息  逻辑操作符用于组合多个计较运算的结果以生成 一个或真或假的结果。  逻辑操作符包括与 (AND) 、或 (OR) 和非 (NOT) 。

ACCP V 集合操作符  集合操作符将两个查询的结果组合成一个结果 集合操作符 UNION UNION ALL INTERSECT MINUS INTERSECT 操作符只返回两个查询的公共行。 SQL> SELECT orderno FROM order_master INTERSECT SELECT orderno FROM order_detail; SQL> SELECT orderno FROM order_master MINUS SELECT orderno FROM order_detail; MINUS 操作符返回从第一个查询结果中排除第二个查 询中出现的行。

ACCP V 连接操作符  连接操作符用于将多个字符串或数据值合并成一 个字符串 SQL> SELECT (venname|| ' 的地址是 ' ||venadd1||' '||venadd2 ||' '||venadd3) address FROM vendor_master WHERE vencode='V001'; 通过使用连接操作符可以将表中 的多个列合并成逻辑上的一行列

ACCP V 操作符的优先级 SQL 操作符的优先级从高到低的顺序是:  算术操作符 最高优先级  连接操作符  比较操作符  NOT 逻辑操作符  AND 逻辑操作符  OR 逻辑操作符 最低优先级

ACCP V SQL 函数  Oracle 提供一系列用于执行特定操作的函数  SQL 函数带有一个或多个参数并返回一个值  以下是 SQL 函数的分类: SQL 函数 单行函数 分析函数 分组函数

ACCP V 单行函数分类  单行函数对于从表中查询的每一行只返回一个值  可以出现在 SELECT 子句中和 WHERE 子句中  单行函数可以大致划分为:  日期函数  数字函数  字符函数  转换函数  其他函数

ACCP V 日期函数  日期函数对日期值进行运算,并生成日期数据类 型或数值类型的结果  日期函数包括:  ADD_MONTHS  MONTHS_BETWEEN  LAST_DAY  ROUND  NEXT_DAY  TRUNC  EXTRACT

ACCP V 字符函数 2-1 函数 输入 输出 Initcap(char)Select initcap(‘hello’) from dual;Hello Lower(char)Select lower(‘FUN’) from dual;fun Upper(char)Select upper(‘sun’) from dual;SUN Ltrim(char,set) Select ltrim( ‘xyzadams’,’xyz’) from dual; adams Rtrim(char,set) Select rtrim(‘xyzadams’,’ams’) from dual; xyzad Translate(char, from, to)Select translate(‘jack’,’j’,’b’) from dual;back Replace(char, searchstring,[rep string]) Select replace(‘jack and jue’,’j’,’bl’) from dual; black and blue Instr (char, m, n)Select instr (‘worldwide’,’d’) from dual;5 Substr (char, m, n)Select substr(‘abcdefg’,3,2) from dual;cd Concat (expr1, expr2) Select concat (‘Hello’,’ world’) from dual; Hello world 字符函数  字符函数接受字符输入并返回字符或数值

ACCP V 字符函数 2-2 SQL> SELECT CHR(67) FROM dual;  以下是一些其它的字符函数:  CHR 和 ASCII  LPAD 和 RPAD  TRIM  LENGTH  DECODE SQL> SELECT LPAD(‘function’,15,’=’) FROM dual; SQL> SELECT TRIM(9 from ) FROM dual; SQL> SELECT LENGTH('frances') FROM dual; SQL> SELECT vencode, DECODE(venname,'frances','Francis') name FROM vendor_master WHERE vencode='v001';

ACCP V 数字函数  数字函数接受数字输入并返回数值结果 函数 输入 输出 Abs(n)Select abs(-15) from dual;15 Ceil(n)Select ceil(44.778) from dual;45 Cos(n)Select cos(180) from dual; Cosh(n)Select cosh(0) from dual; 1 Floor(n)Select floor(100.2) from dual; 100 Power(m,n)Select power(4,2) from dual;16 Mod(m,n)Select mod(10,3) from dual;1 Round(m,n)Select round( ,2) from dual; Trunc(m,n)Select trunc( ,2) from dual; Sqrt(n)Select sqrt(4) from dual;2 Sign(n)Select sign(-30) from dual; 数字函数

ACCP V 转换函数  转换函数将值从一种数据类型转换为另一种数据 类型  常用的转换函数有:  TO_CHAR  TO_DATE  TO_NUMBER SELECT TO_CHAR(sysdate,'YYYY" 年 "fmMM" 月 "fmDD" 日 " HH24:MI:SS') FROM dual; SELECT TO_CHAR(itemrate,‘C99999’) FROM itemfile; SELECT TO_DATE(‘ ’, ‘yyyy-mm-dd’) FROM dual; SELECT TO_NUMBER('100') FROM dual;

ACCP V 其它函数  以下是几个用来转换空值的函数:  NVL  NVL2  NULLIF SELECT itemdesc, NVL(re_level,0) FROM itemfile; SELECT itemdesc, NVL2(re_level,re_level,max_level) FROM itemfile; SELECT itemdesc, NULLIF(re_level,max_level) FROM itemfile;

ACCP V 分组函数  分组函数基于一组行来返回结果  为每一组行返回一个值 AVG MIN MAX SUM COUNT SELECT AVG(re_level) FROM itemfile WHERE p_category='accessories'; SELECT MAX(max_level) FROM itemfile; SELECT SUM(itemrate*max_level) FROM itemfile; SELECT COUNT(*) FROM itemfile; SELECT COUNT(itemrate) FROM itemfile; SELECT COUNT(DISTINCT qty_hand) FROM itemfile; 分组函数

ACCP V GROUP BY 和 HAVING 子句  GROUP BY 子句  用于将信息划分为更小的组  每一组行返回针对该组的单个结果  HAVING 子句  用于指定 GROUP BY 子句检索行的条件 SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category; SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category HAVING p_category NOT IN ('accessories');

ACCP V 分析函数 2-1  分析函数根据一组行来计算聚合值  用于计算完成聚集的累计排名、移动平均数等  分析函数为每组记录返回多个行 分析函数 DENSE_RANK RANK ROW_NUMBER

ACCP V 分析函数 2-2  以下三个分析函数用于计算一个行在一组有序行中的排位, 序号从 1 开始  ROW_NUMBER 返回连续的排位,不论值是否相等  RANK 具有相等值的行排位相同,序数随后跳跃  DENSE_RANK 具有相等值的行排位相同,序号是连 续的 SELECT ename, job, deptno, sal, ROW_NUMBER() OVER (ORDER BY sal DESC) AS SAL_RANK FROM SCOTT.EMP; SELECT deptno, ename, sal, comm, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC, comm) RANK FROM emp; SELECT d.dname, e.ename, e.sal, DENSE_RANK() OVER (PARTITION BY e.deptno ORDER BY e.sal DESC) AS DENRANK FROM emp e, dept d WHERE e.deptno = d.deptno;

ACCP V 总结  SQL 是通用的数据库语言  SQL 命令可分为数据定义语言、数据操纵语言、 事务控制语言和数据控制语言  Oracle 支持的数据类型包括字符、数值、日期时 间、 RAW 和 LOB 等  SQL 支持的操作符包括算术、比较、逻辑、集合 和连接操作符  SQL 函数可大致分为单行函数、聚合函数和分析 函数