Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列

上传人:豆浆 文档编号:2038879 上传时间:2017-07-19 格式:PPT 页数:29 大小:1.10MB
返回 下载 相关 举报
Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列_第1页
第1页 / 共29页
Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列_第2页
第2页 / 共29页
Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列_第3页
第3页 / 共29页
Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列_第4页
第4页 / 共29页
Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列》由会员分享,可在线阅读,更多相关《Oracle-2-1基本SQL语句_单行、通用和多行函数_伪列(29页珍藏版)》请在金锄头文库上搜索。

1、SQL语言,SQL语言,SQL全称是“结构化查询语言(Structured Query Language)”SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。,随着关系数据库系统和SQL语言应用的日益广泛,SQL语言的标准化工作也在紧张革进行着,十多年来已制订了多个SQL标准;,(1)1982年,美国国家标准化局(AMERICAN NATIONAL STANDARD INSTITUTE,简称ANSI)开始制定SQL标准; (2)1986年,美国国家标准化协会公布了SQL语言的第一个标准SQL8

2、6; (3)1987年,国际标准化组织(ISO)通过了SQL86标准; (4)1989年,国际标准化组织(ISO)对SQL86进行了补充,推出了SQL89标准; (5)1992年,ISO又推出了SQL92标准,也称为SQL2; (6)SQL99(也称为SQL3),增加了面向对象的功能。,SQL语言包含4个部分:, 数据定义语言(DDL,Data Definition Language),例如:CREATE、DROP、ALTER语句。 数据操作语言(DML, Data Manipulation Language),例如:INSERT、UPDATE、DELETE语句。 数据查询语言(DQL, Da

3、ta Query Language SELECT),例如:SELECT语句。 数据控制语言(DCL, Data Control Language),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。,书写SQL应遵循以下简单原则,SQL语句不区分大小写SQL语句可以写成一行或多行关键字不能简写或分割于多行子句通常置于单独行这样更具可读性并便于编辑Tab和缩进的使用可以提高程序的可读性关键字最好大写,其他词诸如表名、列名使用小写,Select语句,Select语句功能强大,语法也比较复杂。完整的select语句由6个子句构成,分别为:Select指定要获取表中哪些列数据Fro

4、m指定数据来自哪个(些)表Where指定获取哪些行数据Group by用于对表中数据进行分组统计Having指定分组统计条件(跟group by一起使用!)Order by指定排序字段其中select和from子句是必选项,在select语句中同时包含where、group by、having、order by等多个子句,这些子句使用时是有一定顺序的,order by 必须是最后一条子句。,算术操作符逻辑操作符比较操作符 连接操作符,SQL操作符,算术操作符加(+)、减(-)、乘(*)、除(/)(1) SELECT sal,sal*1.1,ename FROM emp;(2) SELECT c

5、omm+200 FROM emp;,SQL操作符,SQL操作符,逻辑操作符 说明 x and y x和y全部为真 x or y x和y有一个为真 not x x的相反值 逻辑运算SELECT * FROM dept WHERE 1=1;SELECT * FROM dept WHERE 1=2;SELECT empno,ename,sal,job FROM emp WHERE sal=3000 AND JOB!=MANAGER;SELECT ename,sal,job FROM emp WHERE sal=3000 OR job=MANAGER;,比较运算符(示例),条件选择(1) SELECT

6、 * FROM emp WHERE sal=5000;(2) SELECT * FROM emp WHERE job MANAGER;复合条件(1) SELECT * FROM emp WHERE sal BETWEEN 3000 AND 6000; (2) SELECT * FROM emp WHERE job IN(MANAGER,CLERK);(3) SELECT * FROM emp WHERE job NOT IN(MANAGER); 匹配空值(NULL)SELECT * FROM emp WHERE comm IS NOT NULL;NULL要注意的问题:SELECT * FROM

7、 emp WHERE empno NOT IN(SELECT mgr FROM emp WHERE mgr IS NOT NULL);SELECT * FROM emp WHERE empno NOT IN(SELECT mgr FROM emp);,比较运算符(示例),any的用法: any大于最小SELECT * FROM emp WHERE sal=ANY(3000,1500,2000,1200);/sal等于其中任何一个SELECT * FROM emp WHERE salANY(3000,1500,2000,1200);SELECT * FROM emp WHERE salANY(S

8、ELECT sal FROM emp WHERE job=SALESMAN); all的用法: all:大于所有,即大于最大SELECT * FROM emp WHERE sal=ALL(3000,1500,2000,1200);select empno, ename, sal, job from emp where salall(select sal from emp where job=SALESMAN);模糊查询:_匹配1个字符、%匹配0到多个字符(1) SELECT ename FROM emp WHERE ename LIKE _H; (2) SELECT ename FROM em

9、p WHERE ename LIKE A_; (3) SELECT ename FROM emp WHERE ename LIKE A%;(4) SELECT ename FROM emp WHERE ename LIKE %A%;,比较运算符比较操作符 说明 等于 或!= 不等于 大于 = 大于等于 ANY 任何一个值比较 ALL 所有的值比较 IN(NOT IN) 匹配值列表 BETWEEN(NOT BETWEEN) 匹配值范围 IS NULL(IS NOT NULL) 匹配空值 LIKE(NOT LIKE) 匹配字符串,SQL操作符,排序查询ORDER BY,Order by指定排序字段

10、SELECT ename,sal FROM emp ORDER BY sal ASC;SELECT ename,sal FROM emp ORDER BY sal DESC; SELECT ename,empno,sal,deptno FROM emp ORDER BY deptno ASC,sal DESC,empno;,分组查询,Group by 用于对表中数据进行分组统计Having 指定分组统计条件(跟group by一起使用!)SELECT job FROM emp GROUP BY job;SELECT mgr,COUNT(mgr) FROM emp WHERE mgr IS NO

11、T NULL GROUP BY mgr;SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;SELECT deptno,COUNT(1) FROM emp GROUP BY deptno HAVING COUNT(1)3;,SQL操作符,连接操作符 说明 |合并字符串连接操作符和别名问题:SELECT empno|ename FROM emp; SELECT empno|-|ename AS 姓名和编号 FROM emp; SELECT empno|-|ename AS 姓名-编号 FROM emp; SELECT empno|-|ename 编号

12、姓名 FROM emp;注意:引用标识符(Quoted Identifiers) :区分字符的大小写。用双引号(table)将标识符包围起来以后,就可以使用它们包含一些非标准的字符及空格,甚至还可以包含保留字其它情况是绝不允许包含保留字的。我们强烈反对使用这些非标准的标识符。,取消重复DISTINCT,SELECT sal FROM emp ORDER BY sal DESC;SELECT DISTINCT sal FROM emp ORDER BY sal DESC;SELECT mgr FROM emp ORDER BY mgr;SELECT DISTINCT mgr FROM emp O

13、RDER BY mgr;SELECT job,sal,deptno FROM emp ORDER BY deptno,sal,job;SELECT DISTINCT job,sal,deptno FROM emp ORDER BY deptno,sal,job;,了解DUAL表,Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中。注:在Oracle中select后必须要有from1.查看当前连接用户SELECT user FROM dual;2.查看系统日期SELECT SYSDATE FROM dual;3.当作计算器用SELECT 1+5*

14、2 FROM dual;,SQL函数,单行函数只对单行数据进行操作,并且每行只返回一个结果多行函数对多数据行的群组进行操作,并且每组只返回一个结果,单行函数,字符函数:分为大小写转换函数和字符处理函数。大小写转换函数包括:LOWER(str) 将字符串转换成小写UPPER(str) 将字符串转换成大写INITCAP(str)将字符串第一个字母转换成大写,后面的字母转成小写字符处理函数包括:CONCAT(str1,str2) 连接两个字符串SUBSTR(str,m,n)取出字符串中从m位开始的n个字符的子串 m位为负数时从右数起LENGTH(str)求字符串长度INSTR(str1,str2,m,n) 在str1字符串中从第m位开始搜索str2字符串第n次出现的位置 m和n默认值为1RPAD和LPAD(粘贴字符) RPAD 在列的右边粘贴字符 LPAD 在列的左边粘贴字符SELECT lpad(gao,6,*) FROM dual;SELECT RPAD(ename,10,*) FROM emp;SELECT LPAD(RPAD(ename,8,*),10,$) name FROM emp;replace(str,seartch_string,replace_string) 将str中查找seartch_string并且将其替换为replace_string TRIM,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

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