Table of Contents
1 SQL注意事项
关键字大小写不敏感。
关键字不能缩写或分行写。 可以多行书写。 回车表新行 在SQL/Plus中每个SQL语句都以;结束 或/结束。2 column heading default
缺省的heading display: UPPERCASE
数字右边对齐 字符串/日期左对齐3 arithmetic expression
+ - * /SELECT name, salary + 300FROM 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_idFROM employeesWHERE employee_id = &employee_num; --此时就不用再输入了
- & &&每次输入的时候都会提示old、new,用VERIFY就可以使其不显示。
SQL> set VERFITY
- 使用 SQL只是简单地把&名字替换成你的输入,所以要输入字符串必须用单引号。
SELECT employee_id, last_name, job_idFROM employeesWHERE employee_id = &employee_num;
SELECT employee_id, last_name, job_idFROM employeesWHERE job_id = '&job_title';
- ORDER BY
- 按照指定列排序,默认是升序排序。
SELECT employee_id, last_name, job_idFROM employeesORDER BY hire_date;
- 可以DESC (descent) 来降序排列。
SELECT employee_id, last_name, job_idFROM employeesORDER BY hire_date DESC;
- 按别名排序。
SELECT employee_id, last_name, salary*12 as annsal;FROM employeesORDER BY annsal;
- 用数字来表示SELECT中列
SELECT employee_id, last_name, job_idFROM employeesORDER BY 3;
- 按多列排序
SELECT employee_id, last_name, job_idFROM employeesORDER 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