Oracle SQL Lesson (2) - 限制和排序数据
重建scott用户
@?/rdbms/admin/utlsampl.sql
@--执行
?--$ORACLE_HOME
字符区分大小写:
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen' ;
使用字符函数:
SELECT last_name, job_id, department_id
FROM employees
WHERE upper(last_name) = 'WHALEN' ;
SELECT last_name, job_id, department_id
FROM employees
WHERE lower(last_name) = 'whalen';
默认日期格式为"DD-MON-RR"
SELECT last_name
FROM employees
WHERE hire_date = '17-FEB-96' ;
Between...And等价于>= and <=
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
SELECT last_name, salary
FROM employees
WHERE salary >= 2500 AND salary <= 3500 ;
通配符:
%代表0个或者多个字符
_代表1个字符
create table t(name varchar2(10));
insert into t values('a');
insert into t values('ab');
insert into t values('abc');
insert into t values('abcd');
可以使用ESCAPE标识符来搜索%以及_符号.
insert into t values('ab_c');
insert into t values('ab%cd');
select *
from t
where name like '%\_%' escape '\';
And的优先级大于Or,可以使用小括号来改变优先级:
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;
SELECT last_name, job_id, salary
FROM employees
WHERE (job_id = 'SA_REP'
OR job_id = 'AD_PRES')
AND salary > 15000;
Order by语句必须在所有子句后边,包括group by,having之后
The ORDER BY clause comes last in the SELECT statement;
按照降序排列:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
按照别名排序
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal ;
也可以按照表达式排序
按照列位置排序:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY 3;
按照多列排序:
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;
隐式排序
SELECT last_name, department_id, salary
FROM employees
ORDER BY first_name;
使用替代变量:
Temporarily store values with single-ampersand (&) and double-ampersand (&&) substitution
select * from emp
where empno=&no
使用DEFINE和UNDEFINE定义和取消变量:
DEFINE employee_num = 200
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE employee_id = &employee_num ;
UNDEFINE employee_num
SET VERIFY ON
SELECT employee_id, last_name, salary
FROM employees
WHERE employee_id = &employee_num;
SET VERIFY OFF
Oracle SQL Lesson (2) - 限制和排序数据的更多相关文章
- Oracle SQL Lesson (1) - 使用SQL Select语句获取数据
第一节课: 启动数据库并且使用特定用户连接:su - oracle; 启动sqlplus并且使用sys连接:conn / as sysdba; 启动数据库:startup; 解锁用户:alter us ...
- Oracle SQL Lesson (5) - 使用组函数输出聚合数据
组函数AVGCOUNTMAXMINSUMVARIANCE:方差STDDEV:标准差 SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)F ...
- Oracle SQL Lesson (9) - 操作数据(增删改)
使用INSERT语句INSERT INTO table [(column [, column...])]VALUES (value [, value...]); INSERT INTO departm ...
- Oracle SQL Lesson (6) - 使用Join进行联合查询
使用连接SQL 1999SELECT table1.column, table2.columnFROM table1[NATURAL JOIN table2] |[JOIN table2 USING ...
- Oracle SQL Lesson (3) - 使用单行函数自定义输出
大小写转换函数LOWER('SQL Course') = sql courseUPPER('SQL Course') = SQL COURSEINITCAP('SQL Course') = Sql C ...
- Oracle SQL Lesson (4) - 使用转换函数和条件表达式
隐式转换select * from emp where empno='7788'字符(char,varchar2)转换为数字(number)或日期(date)数字或日期转换为字符 显式转换字符转换为数 ...
- Oracle SQL Lesson (8) - 使用集合操作符(Union,Intersect,Minus)
集合操作符UNION/UNION ALLINTERSECTMINUS Union All不排序,不去重,其余均升序且去重.create table e1 as select * from emp wh ...
- Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)
schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...
- Oracle SQL Lesson (7) - 使用子查询
使用子查询简单子查询SELECT select_listFROM tableWHERE expr operator (SELECT select_list FROM table);子查询可以出现在se ...
随机推荐
- Flume 1.5日志收集和存款mongodb安装结构
Flume该演示是不是说.你可以自己搜索. 但现在的互联网主要是Flume 1.4前版本号的信息.Flume 1.5在轰动的大变化.假设你准备尝试,我在这里给大家介绍一下程序最小化结构,和使用Mong ...
- Android L动画入门
Android L带来了许多新特性,其中就包括了大量的动画效果,你可以在自己的应用中使用.本文中我将详解这些动画和如何在应用中使用.本文中的所有代码可以在github上找到. 波纹和强调 现在安卓支持 ...
- javacsript (十) 数据类型
类型声明的时候,直接使用 var varname=xxx 数字.字符.布尔,声明都直接使用var就可以, JavaScript 数组 下面的代码创建名为 cars 的数组: var cars=new ...
- 【iOS】iOS的iTunes文件共享,在程序Document路径
有时候程序开发须要通过沙盒中的 documents目录与用户共享文件,iTunes默认是不支持iTunes file Sharing的,首先设置 info-list的Application suppo ...
- 正則表達式验证邮箱,qq,座机,手机,网址
手机: var reg=/^1[34578]\d{9}$/; if(reg.test("你输入的手机号码") ) { alert("手机号码输入正确") } e ...
- Qt Windows下开机自动启动自己的程序
源地址:http://blog.csdn.net/chrisfxs/article/details/13279491 版权声明:本文为博主原创文章,未经博主允许不得转载. void Widget::R ...
- navicat for mysql 显示中文乱码解决办法
最近遇到一个问题,用navicat for mysql 打开数据库时全都显示的是乱码(在用程序代码插入数据之前确保字符不是乱码),遇到问题就的寻求解决之道,百度了好长时间也没解决,网上那些解决办法 ...
- DMP文件的生成和使用
1.生成dmp的程序 #include <dbghelp.h> #pragma comment(lib, "dbghelp.lib") //设置异常处理回调函数Se ...
- Python天天美味(25) - 深入理解yield
Python天天美味(25) - 深入理解yield - CoderZh - 博客园 Python天天美味(25) - 深入理解yield yield的英文单词意思是生产,刚接触Python的时候 ...
- 调整Tomcat的并发线程到5000+
调整Tomcat的并发线程数到5000+ 1. 调整server.xml的配置 先调整maxThreads的数值,在未调整任何参数之前,默认的并发线程可以达到40. 调整此项后可以达到1800左右. ...