资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 SQL语言基础 课程目标课程目标 熟练掌握SQL语言进行单表查询 简单select语句 where 条件判断 In语句 AND, OR, NOT 使用 模糊查询 ORDER BY查询 分组查询 HAVING限制 SQL语言介绍 SQL语言全称是(STRUCTURED QUERY LANGUAGE )结构化查询语言,是操作数据库 的通用语言,sql语言本身是一种标准语言,它 是一个国际标准,它定义了套标准SQL1992, SQL1999, SQL在大多数数据库上通用,有轻 微的改变 SQL语言分类 包含四大语句: 查询语句(DQL) 查询语句只有一种就是select语句 DML语句 DML语句包含Insert,Update,Delete 等常用语句 SQL语言分类 事务控制语句 包含Commit, Rollback等常用语句 还有一大类语句:叫DCL语句(Data Control Language),主要用于权限的分 配与回收,由于与开发关系不是十分密切 ,不做重点讲解 注意:最重要的就是select语句,任何 select语句全部要背过,select语句必考 查询语言介绍 SQL中访问数据库表是通过用户名.数据表 的形式来访问,当访问属于本身的表是可 以不用用户名。 查询语言介绍 1.简单select语句: 例子1:取出一张表中所有的数据 Select * from emp; 查询语言介绍 例子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 dual;- 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 ename, 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 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的员工的详 细信息 判断字符串是否相等时,字符串要用 单引号引起来,单引号中字符串内容 是要区分大小写的 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 并且薪水 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关键字,和通配符 % 表示 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 对数据进行排序 例子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 desc; 例子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:按照部门,和职位 的最大薪 水进行分组 Select 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 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 );
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号