首页 数据库的限定和排序数据

数据库的限定和排序数据

举报
开通vip

数据库的限定和排序数据null限定和排序数据限定和排序数据 -Itpub技术培训 目的目的 排序是昂贵的操作 限制某一查询所取记录 排序查询结果使用选择限定记录使用选择限定记录SELECT * FROM emp WHERE deptno= 10;排序是昂贵的操作排序是昂贵的操作从开始就考虑优化 排序往往花费大量的时间及资源 磁盘排序比内存排序慢10000倍,在磁盘Cache存在的情况下基本上也会慢100倍 限定所选择的记录限定所选择的记录使用where子句限定返回的记录 WHERE子句在 FROM 子句后 SEL...

数据库的限定和排序数据
null限定和排序数据限定和排序数据 -Itpub技术培训 目的目的 排序是昂贵的操作 限制某一查询所取记录 排序查询结果使用选择限定记录使用选择限定记录SELECT * FROM emp WHERE deptno= 10;排序是昂贵的操作排序是昂贵的操作从开始就考虑优化 排序往往花费大量的时间及资源 磁盘排序比内存排序慢10000倍,在磁盘Cache存在的情况下基本上也会慢100倍 限定所选择的记录限定所选择的记录使用where子句限定返回的记录 WHERE子句在 FROM 子句后 SELECT [DISTINCT] {*, column [alias], ...} FROM table [WHERE condition(s)];使用WHERE子句使用WHERE子句 SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='CLERK';ENAME JOB DEPTNO ---------- --------- --------- JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10字符串和日期字符串和日期字符串和日期要用单引号扩起来 字符串是大小写敏感的,日期值是格式敏感的 缺省的日期格式是 'DD-MON-RR'SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE ename = 'JAMES';注意:注意: 数字通常不要使用引号引起来,以免产生数据库歧义及潜在转换!日期格式日期格式SQL> select * from v$nls_parameters; PARAMETER VALUE ------------------------------ -------------------- NLS_LANGUAGE SIMPLIFIED CHINESE NLS_TERRITORY CHINA NLS_CURRENCY RMB NLS_ISO_CURRENCY CHINA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR日期格式日期格式内部以数字形式存储 默认显示格式为DD-MON-RR 内部仍然保存日期和时间的所有组成部分 Oracle服务器不存在2000年问题RR日期格式 RR日期格式 日期格式日期格式SQL> select name,value$ from props$ where name like '%DATE%'; NAME VALUE$ ------------------------------ ---------------------------------- NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'PROPS$'比较运算符比较运算符运算符 = > >= < <= <>含义 等于 大于 大于等于 小于 小于等于 不等于使用比较运算符使用比较运算符 SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm;ENAME SAL COMM ---------- --------- --------- MARTIN 1250 1400其它的比较运算符其它的比较运算符运算符 BETWEEN ...AND... IN(list) LIKE IS NULL含义 在两值之间 (包含) 匹配列出的值 匹配一个字符模式 是空值 使用BETWEEN运算符使用BETWEEN运算符使用BETWEEN运算符显示某一 值域范围的记录 ENAME SAL ---------- --------- MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 SQL> SELECT ename, sal 2 FROM emp 3 WHERE sal BETWEEN 1000 AND 1500;使用IN运算符使用IN运算符使用IN运算符获得匹配列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 值的记录 SQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788); EMPNO ENAME SAL MGR --------- ---------- --------- --------- 7902 FORD 3000 7566 7369 SMITH 800 7902 7788 SCOTT 3000 7566 7876 ADAMS 1100 7788据说据说In 最多允许1000个值列表 这是一个朋友的测试结果使用LIKE运算符使用LIKE运算符 使用LIKE运算符执行通配查询 查询条件可包含文字字符或数字 (%) 可表示零或多个字符 ( _ ) 可表示一个字符SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE 'S%';使用LIKE运算符使用LIKE运算符使用组合方式匹配字符 使用ESCAPE 标识符来查找带特殊符号的字符号 SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE '_A%';ENAME ---------- JAMES WARDESCAPE用法ESCAPE用法SQL> select * from test; NAME ------------------------------ test%te SQL> select name from test where name like '%t\%%' escape '\'; NAME ------------------------------ test%te SQL> SQL> select name from test where name like '%t\%' escape '\'; 未选定行怎样插入特殊字符怎样插入特殊字符SQL> insert into test values('aa&a'); 输入 a 的值: c 原值 1: insert into test values('aa&a') 新值 1: insert into test values('aac') 已创建 1 行。 SQL> select * from test; NAME ------------------------------ test%te aac --SQL> show escape escape OFF SQL> set escape on SQL> show escape escape "\" (hex 5c) SQL> INSERT INTO test VALUES ('\&1'); 已创建 1 行。 SQL> select * from test; NAME ------------------------------ test%te aac &1 使用IS NULL运算符使用IS NULL运算符查询包含空值的记录 SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL;ENAME MGR ---------- --------- KING逻辑运算符逻辑运算符运算符 AND OR NOT含义 如果组合的条件都是TRUE, 返回TRUE 如果组合的条件 之一是TRUE,返回TRUE 如果下面的条件是FALSE,返回TRUE使用AND运算符使用AND运算符 AND需要条件都是TRUE.SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>=1100 4 AND job='CLERK'; EMPNO ENAME JOB SAL --------- ---------- --------- --------- 7876 ADAMS CLERK 1100 7934 MILLER CLERK 1300使用OR运算符使用OR运算符 OR需要条件之一是TRUESQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>=1100 4 OR job='CLERK'; EMPNO ENAME JOB SAL --------- ---------- --------- --------- 7839 KING PRESIDENT 5000 7698 BLAKE MANAGER 2850 7782 CLARK MANAGER 2450 7566 JONES MANAGER 2975 7654 MARTIN SALESMAN 1250 ... 14 rows selected.使用NOT运算符使用NOT运算符 SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');ENAME JOB ---------- --------- KING PRESIDENT MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN优先级规则优先级规则括号将跨越所有优先级规则次序 运算符 1 所有的比较运算 2 NOT 3 AND 4 OR优先级规则优先级规则 ENAME JOB SAL ---------- --------- --------- KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='SALESMAN' 4 OR job='PRESIDENT' 5 AND sal>1500;优先级规则优先级规则 ENAME JOB SAL ---------- --------- --------- KING PRESIDENT 5000 ALLEN SALESMAN 1600使用扩号提高优先级(Very Imporatant)SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='SALESMAN' 4 OR job='PRESIDENT') 5 AND sal>1500;注意注意 很多人在简单的问题上犯下重大的错误,所以在你的SQL中,使用()来明确你的业务逻辑! ORDER BY 子句ORDER BY 子句使用ORDER BY 子句将记录排序 ASC: 升序,缺省 DESC: 降序 ORDER BY 子局在SELECT指令的最后 SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE ---------- --------- --------- --------- SMITH CLERK 20 17-DEC-80 ALLEN SALESMAN 30 20-FEB-81 ... 14 rows selected.降序排序降序排序 SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC;ENAME JOB DEPTNO HIREDATE ---------- --------- --------- --------- ADAMS CLERK 20 12-JAN-83 SCOTT ANALYST 20 09-DEC-82 MILLER CLERK 10 23-JAN-82 JAMES CLERK 30 03-DEC-81 FORD ANALYST 20 03-DEC-81 KING PRESIDENT 10 17-NOV-81 MARTIN SALESMAN 30 28-SEP-81 ... 14 rows selected.使用列的别名排序使用列的别名排序 SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal; EMPNO ENAME ANNSAL --------- ---------- --------- 7369 SMITH 9600 7900 JAMES 11400 7876 ADAMS 13200 7654 MARTIN 15000 7521 WARD 15000 7934 MILLER 15600 7844 TURNER 18000 ... 14 rows selected.多个列排序多个列排序通过ORDER BY 列表的顺序来排序 你可使用不在SELECT序列上的列来排序SQL> SELECT ename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC;ENAME DEPTNO SAL ---------- --------- --------- KING 10 5000 CLARK 10 2450 MILLER 10 1300 FORD 20 3000 ... 14 rows selected.小结小结 SELECT [DISTINCT] {*, column [alias], ...} FROM table [WHERE condition(s)] [ORDER BY {column, expr, alias} [ASC|DESC]];
本文档为【数据库的限定和排序数据】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_349066
暂无简介~
格式:ppt
大小:271KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2013-01-21
浏览量:13