oracle第二章

上传人:千****8 文档编号:118644863 上传时间:2019-12-21 格式:PPT 页数:35 大小:2.12MB
返回 下载 相关 举报
oracle第二章_第1页
第1页 / 共35页
oracle第二章_第2页
第2页 / 共35页
oracle第二章_第3页
第3页 / 共35页
oracle第二章_第4页
第4页 / 共35页
oracle第二章_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《oracle第二章》由会员分享,可在线阅读,更多相关《oracle第二章(35页珍藏版)》请在金锄头文库上搜索。

1、第二章 SQL语言基础 课程目标课程目标 熟练掌握SQL语言进行单表查询 简单select语句 where 条件判断 In语句 AND, OR, NOT 使用 模糊查询 ORDER BY查询 分组查询 HAVING限制 SQL语言介绍 SQL语言全称是(STRUCTURED QUERY LANGUAGE )结构化查询语言,是操作数据库 的通用语言,sql语言本身是一种标准语言,它 是一个国际标准,它定义了套标准SQL1992, SQL1999, SQL在大多数数据库上通用,有轻 微的改变 SQL语言分类 包含四大语句: 查询语句(DQL) 查询语句只有一种就是select语句 DML语句 DM

2、L语句包含Insert,Update,Delete 等常用语句 SQL语言分类 事务控制语句 包含Commit, Rollback等常用语句 还有一大类语句:叫DCL语句(Data Control Language),主要用于权限的分 配与回收,由于与开发关系不是十分密切 ,不做重点讲解 注意:最重要的就是select语句,任何 select语句全部要背过,select语句必考 查询语言介绍 SQL中访问数据库表是通过用户名.数据表 的形式来访问,当访问属于本身的表是可 以不用用户名。 查询语言介绍 1.简单select语句: 例子1:取出一张表中所有的数据 Select * from emp

3、; 查询语言介绍 例子2:取出某些字段的值 Select empno, ename, deptno from emp ; 注意以分号结尾,大小写无关 查询语言介绍 2.包含算术表达式的sql语句 例子1:取出emp中所有人的年薪及名字 Select ename , sal*12 from emp; 例子2:在emp表中取出2*3的结果 Select 2*3 from emp; 查询语言介绍 例子3:取出2*3的一条记录 Select 2*3 form dual;-当我们需要 显示一个结果的时候就用系统提供的 dual虚表 例子4:取出当前系统时间 Select sysdate from dua

4、l;- sysdate在Oracle中表示当前系统时 间 查询语言介绍 3.含有别名的sql语句 例子1:select ename, sal*12 annual_sal from emp; 例子2:如果想让别名强制大小写混合 可以使用双引号 Select ename, sal*12 “Annual_sal” from emp; 例子3:如果想让别名中有空格也使用 双引号 Select ename, sal*12 “Annual sal” from emp; 查询语言介绍 5.处理含有空值的字符串 例子1:算某人一年的年薪含有任何 null值的数学表达式最后的结果都为 null Select e

5、name, sal*12+comm from emp 可以通过NVL(COMM,0)函数解 决 查询语言介绍 例子2:含有任何null值的字符串表达 式中,null被当作空字符串处理 select empno, ename |and his manager number is | mgr from emp; 字符串连接符:| Select语句中用单引号表示字符串 查询语言介绍 6.在select中使用单引号 例子1:用两个单引号表示一个单引号 select empno, ename | s manager is | mgr from emp; 查询语言介绍 7.消除重复值 例子1:select

6、 distinct deptno from emp;-用distinct消除结果集中的重复 信息 例子2:用distinct修饰多个字段的时 候,指的是消除后面所有字段的组合 重复结果 Select distinct job, deptno from emp;-指job和deptno都相同的删除 查询语言介绍 使用where对数据库设定条件限制, where过滤条件,过滤相关的数据 等值判断 例子1:显示部门编号为10的所有员 工的详细信息 select * from emp where deptno = 10; 查询语言介绍 例子2:显示名字为KING的员工的详 细信息 判断字符串是否相等时

7、,字符串要用 单引号引起来,单引号中字符串内容 是要区分大小写的 Select * from emp where ename = KING; 查询语言介绍 非等值判断( = 2000; 查询语言介绍 例子3:取出所有部门号不是10的雇 员的名字和薪水 Select ename, sal from emp where deptno 10; 例子4:取出薪水位于800和1500之间 的雇员名字和薪水 Select ename, sal from emp where sal = 800 and sal = 20-2月-81; 查询语言介绍 AND, OR, NOT 例子1:查询部门标号为10 并且薪

8、水 1000 的员工 Select ename, deptno, sal from emp where deptno = 10 and sal 1000; 例子2:查询部门编号为10或者工作 岗位为CLERK 的员工 Select ename, deptno, job from emp where deptno = 10 or job = CLEARK; 查询语言介绍 例子3:查询薪水没有位于800, 1500, 2000 之中的员工 Select ename, sal from emp where sal not in (800, 1500, 2000); 模糊查询 使用like关键字,和通

9、配符 % 表示 0个或多个字符,_ 表示1个字符 例子1:查询名字中含有ALL的人员 Select ename from emp where ename like %ALL%; 例子2:查询第二字母中含有 A 的雇 员 Select ename from emp where ename like _A%; 模糊查询 例子3:查询名字中含有 % 等通配符 的数据时,使用转义字符 Escape 自定义转移字符, 系统默认 的转义字符是 Select ename from emp where ename like %escape 排序查询 Order by 使用它order by 对数据进行排序 例

10、子1:按照名字的升序进行排序 Select ename, sal from emp order by ename; Select ename, sal from emp order by ename asc; 用asc关键字指出 按升序排列 排序查询 例子2:按照雇员编号的升序排序 Select ename , deptno from emp order by deptno; Select ename, deptno from emp order by deptno asc; 例子3:按照名字降序排列 Select ename, deptno from emp order by ename d

11、esc; 例子4:按照部门编号降序排列 Select ename, deptno from emp order by deptno desc; 默认是升序 分组查询 Group by 对表中的数据进行分组 例子1:计算每个部门的平均工资 首先将现有数据按照部门进行分组, 然后再计算每个组员工的平均薪水。 Select deptno, avg(sal) from emp group by deptno; 例子2:计算每个部门的最大工资 Select deptno, max(sal) from emp group by deptno; 分组查询 例子3:按照部门,和职位 的最大薪 水进行分组 Se

12、lect deptno, job, max(sal) from emp group by deptno, job; 使用group by 的规律:出现在select 列表中的字段,如果没有出现在组函 数中,则必须出现在group by子句中 典型错误:select ename, deptno, max(sal) from emp group by deptno; 分组查询 使用Having对分组进行限制 如果我们要从分组数据中把某些特定 的剔除去的时候,使用Having关键字 例子1:将平均薪水大于1000的组的 平均薪水从emp这张表中选出来 Select avg(sal), deptno

13、group by deptno having avg(sal) 1000; 分组查询 例子2:求薪水大于1200的雇 员,按照部门进行分组,而且 这些分分组后组内平均薪水必 须大于1500,要查询分组的 平均工资 Select avg(sal) from emp where sal 1200 group by deptno having avg(sal) 1500 Order by avg(sal); 总结 简单select语句 where 条件判断 In语句 AND, OR, NOT 使用 模糊查询 ORDER BY查询 分组查询 HAVING限制 作业 选出所用部门里工资最高的人的名字 作业 Select ename, sal from emp where sal = ( Select max(sal) from emp );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业信息化/信息管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号