Oracle OCP 学习日志-对数据进行限制和排序-02

时间:2022-01-22 08:17:57
  • 字符串和日期

字符串和日期在单引号内;

字符区分大小写,日期区分格式;

默认日期何氏为DD-MON-RR。

SELECT last_name 
    FROM   employees
    WHERE  hire_date 
    = '17-FEB-96' ;
  • 比较运算符

Oracle OCP 学习日志-对数据进行限制和排序-02

请注意,不能在WHERE子句中使用别名。
注:符号!=和^=也可以表示“不等于”条件。
 
 
SELECT last_name, salary
    FROM   employees
    WHERE  salary BETWEEN 2500 AND 3500 ;
  •  IN运算符

注:在Oracle Server内部将IN运算符作为一组OR条件(如a=value1 or a=value2 or a=value3)进行求值。因此,使用IN运算符对改进性能并无益处,只能达到简化逻辑
的目的。
 
  • 使用LIKE运算符执行模式匹配

%表示零个或多个字符;
_表示一个字符;
 
 
  • ESCAPE标识符

如果需要与实际的%和_字符完全相匹配,请使用ESCAPE标识符。此选项指定转义符是什么。如果要搜索包含SA_的字符串,则可使用下面的SQL语句:
SELECT employee_id, last_name, job_id
    FROM employees 
    WHERE job_id
    LIKE '%SA\_%' ESCAPE '\';

 

ESCAPE标识符将反斜杠(\)标识为转义符。在SQL语句中,转义符位于下划线(_)之前。这样Oracle Server将按字面意义解释下划线。
 
I
  • 优先级规则

Oracle OCP 学习日志-对数据进行限制和排序-02
  • 排序

按select子句中第三列排序

 
SELECT   last_name, job_id, department_id, hire_date
    FROM     employees
    ORDER BY 3;

order by 可用列别名

SELECT employee_id, last_name, salary*12 annsal
FROM   employees
ORDER BY annsal ;
  • Using SQL Row Limiting Clause in a Query

SELECTFROM[ WHERE …  ]
 [ ORDER BY …  ]
 [OFFSET offset { ROW | ROWS }]
[FETCH { FIRST | NEXT } [{ row_count | percent PERCENT }] { ROW | ROWS } 
  { ONLY | WITH TIES }]

显示前5行

方法一

 SELECT employee_id, first_name
 FROM employees
 ORDER BY employee_id
 FETCH FIRST 5 ROWS ONLY;

 

方法二

 
 SELECT employee_id, first_name
 FROM employees 
 WHERE ROWNUM <=5
 ORDER BY employee_id;

显示第6-8行(第5行后取3行)

 SELECT employee_id, first_name
 FROM employees
 ORDER BY employee_id
 OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

显示前2行,返回额外的行

SELECT FIRST_NAME||' '||LAST_NAME,SALARY 
FROM EMPLOYEES
ORDER BY SALARY
FETCH FIRST 2 ROWS WITH ties;

Oracle OCP 学习日志-对数据进行限制和排序-02

  • 替代变量

 
Oracle OCP 学习日志-对数据进行限制和排序-02
使用以与号(&)为前缀的变量可提示用户输入一个值
SELECT employee_id, last_name, salary, department_id
FROM   employees
WHERE  employee_id = &employee_num ;

Oracle OCP 学习日志-对数据进行限制和排序-02

 

对日期值和字符值使用单引号:

SELECT last_name, department_id, salary*12
FROM   employees
WHERE  job_id = '&job_title' ;
在WHERE子句中,日期值和字符值必须放在单引号中。这一规则也适用于替代变量。
 
指定列名、表达式和文本
不但可以在SQL语句的WHERE子句中使用替代变量,还可以对列名、表达式或文本使用替代变量。
SELECT employee_id, last_name, job_id,&column_name
FROM   employees
WHERE  &condition
ORDER BY &order_column ;

Oracle OCP 学习日志-对数据进行限制和排序-02

 

 
如果要重复使用变量值而不每次都显示提示,请使用双与号(&&):
SELECT   employee_id, last_name, job_id, &&column_name
FROM     employees
ORDER BY &column_name ;

 

DEFINE创建变量并赋值

DEFINE  employee_num=112;

UNDEFINE删除变量

DEFINE  employee_num=112;

 

打开/关闭显示替换后命令

 SET VERIFY ON|OFF