Table of Contents
1 SQL注意事项
关键字大小写不敏感。
关键字不能缩写或分行写。
可以多行书写。
回车表新行
在SQL/Plus中每个SQL语句都以;结束 或/结束。
2 column heading default
缺省的heading display: UPPERCASE
数字右边对齐 字符串/日期左对齐
3 arithmetic expression
+ - * / SELECT name, salary + 300 FROM employees;
结果显示出姓名列和salary列+300
4 Null value
unavailable unassigned unknow inapplicable
is not the same as zero or bankspace
算术表达式中若存在NULL则结果为0
字符串与NULL合并为原字符串本身
5 column alias
给字段名重新命名。
SELECT last_name name, commission_pct comm
FROM employee;
若有空格或想保持大小写则加双引号
SELECT last_name "Name", salary*12 "Annual Salary"
FROM employee;
6 concatenation operator
SELECT last_name || ' ' || job_id AS "Employees"
FROM employees;
把last_name列与job_id连接到Employees列。
7 literal character strings
character number data
必须用单引号括起来。
SELECT last_name || ' is a ' || job_id
AS "Employees Details" ####双引号用于保持空格 单引号用于字面常量字符串
FROM employees;
当字面常量中有'时可以用:
q['literal'] 或者{} <> ()
8 DISTINCT
去掉重复的列.
SELECT DISTINCT department_id
FROM employees;
9 DESCRIBLE
SQL*PLUS命令,可以简写,用desc即可
desc 列名、表名
10 WHERE
- 字符串和时间要用单引号引起来
- 默认日期格式 dd-mon-yy 日-月-年
17-FEB-2010 - C语言是==判断 而 SQL中 = 是判断,SQL中无赋值概念所以把=保留字判断是否等于。
- BETWEEN … AND …
包括两边的数 BETWEEN 1 AND 3 包括1和3
可以是字符串:
WHERE last_name BETWEEN 'King' AND 'Smith'; - IN(set)
manager_id IN (1, 2, 3) - LIKE
_表示匹配一个字符
%表示匹配多个字符
若查询字符串中存在_或者%则必须转义
ESCAPE 指定转义字符
WHERE job_id LIKE '%SA_%' ESCAPE '\';
WHERE job_id LIKE '%SA|_%' ESCAPE '|'; - IS NULL
- Substitution Variable 替换变量
相当于C中的宏定义
- & && 的区别
& 每遇到&时就提示输入一次。
&&所有相同的替换变量时只需要输入一次就可以了 - 避免每次都输入可以用DEFINE命令
- & && 的区别
DEFINE employee_num = 123;
SELECT employee_id, last_name, job_id
FROM employees
WHERE employee_id = &employee_num; --此时就不用再输入了
- & &&每次输入的时候都会提示old、new,用VERIFY就可以使其不显示。
SQL> set VERFITY
- 使用 SQL只是简单地把&名字替换成你的输入,所以要输入字符串必须用单引号。
SELECT employee_id, last_name, job_id
FROM employees
WHERE employee_id = &employee_num;
SELECT employee_id, last_name, job_id
FROM employees
WHERE job_id = '&job_title';
- ORDER BY
- 按照指定列排序,默认是升序排序。
- 按照指定列排序,默认是升序排序。
SELECT employee_id, last_name, job_id
FROM employees
ORDER BY hire_date;
- 可以DESC (descent) 来降序排列。
SELECT employee_id, last_name, job_id
FROM employees
ORDER BY hire_date DESC;
- 按别名排序。
SELECT employee_id, last_name, salary*12 as annsal;
FROM employees
ORDER BY annsal;
- 用数字来表示SELECT中列
SELECT employee_id, last_name, job_id
FROM employees
ORDER BY 3;
- 按多列排序
SELECT employee_id, last_name, job_id
FROM employees
ORDER BY hire_date, last_name DESC; --先按hire_date升序排列,再按last_name降序排序
- 关于NULL值
默认:升序NULL在最后,降序NULL在最开始。
可以手动改变规定NULL的位置: NULLS FIRST or NULLS LAST
Date: 2011-10-17 22:17:10
HTML generated by org-mode 6.33x in emacs 23