SQL
- 查询语句
- 字符串链接
select column1 || " is a "|| column2
from table1
- 去重复
distinct
2.条件限制与排序
- 比较操作符
单一比较 = ,> , >= , <>
范围比较 betwen...and... , in(set) , like '_%' (escape) , is null
- 逻辑符
and , or , not
- 排序
order by asc(default ) / desc
3.单行函数
- 字符函数
( lower()小写, upper()大写, initcap()首字母大写, concat(,)连接字符串, substr(,,) 从某位截取数位, instr() 插入, lpad/rpad(,,'*') n位前/后补*, trim()去空格, replace() 代替 )
- 数字操作函数
round(45.235,2) - 45.24
trunc(45.235,2) - 45.23
mod(16,3) - 1
- 日期操作函数
- 类型转换函数
to_char(date,'format_model') 转换日期-字符串
to_char(number,'format_model') 转换数字-字符串
to_number() 字符串-数字 to_date(char,'yyyy-mm-dd'') 字符串-日期
YY与RR 区别 YY 表示本世纪年份 17 - 2017 96 - 2096
RR 表示所处上半世纪与上世纪下半世纪 17 -2017 96-1996
或所处下半世纪与下世纪上半世纪 现在为2096 17-2117 96-2096
- 函数嵌套
可多重嵌套 MAX(AVG( ))
- 其他单行函数
NVL(exp1,exp2) exp1为空,则返回exp2,否则返回空
NVL(exp1,exp2,exp3) exp1为空,则返回exp3,否则返回exp2
NULLIF(exp1,exp2) exp1=exp2则返回空
COALESCE(exp1,exp2,....) 找到第一个不为空值,并返回,找不到则返回null
- 条件表达式
case exp when .... then...
when .... then...
else...
end
或
decode(exp, search1,result1,
search2,result2,
....default)
4.多表关联查询
- Oracle 定义连接类型
等于链接,不等链接,左外连接(左为主,右补全),右外连接,自联结
- 工业标准SQL1999定义连接
交叉连接 cross join,自然连接 natural join (Using 指定一列,类似等于连接),
内链接 inner join... on ...(相当于自然连接) ,左/右外连接 left/right/full outer join...on...
5.分组计算函数
GROUP BY
- 常用函数
计算数值: SUM(),AVG(),COUNT(),STDDEV()标准差,VARIANCE()方差
计算数值,日期等: MAX(),MIN()
- COUNT()
COUNT(*)/COUNT(1) 行数,包括重复,空
COUNT(exp) 满足exp且不含空
COUNT(DISTINCT exp) 不重复
- 多字段分组
GROUP BY exp1, exp2, ... 非函数字段必须分组
分组时,需将WHERE 转化为HAVING 现已不需要
6.子查询
单行对单行查询 = , > , <
多行对多行查询 IN(同 = ANY) , >ANY , >ALL
7.DML语句
DATE MANIPULATION LANGUAGE
- INSERT
INSERT INTO table
VALUES ( , )
- UPDATE
UPDATE table
SET column = value
- DELETE
DELETE column FROM table WHERE ...(类似select)
- MERGE 比较整合语句
8.表操作
CREATE TABLE tablename
( column datatybe constraint )
表内的数据类型