解锁账号 | alter user scott identified by tiger account unlock; |
查看用户下所有的表 | select * from tab; |
select table_name from user_tables; | |
查看表结构 | desc tableName; |
连接运算符 || | select dept_name || dept_loc from dept; |
单引号转义符 | select name || q'[ 's phone number is ]' || phoneNum as "detail info" from info; |
去重复行 | select distinct dept_no from emp; |
替代变量 | select * from emp where name='&name'; #字符和日期需要加引号 |
select * from test where num=# | |
重用替代变量 (&&) | select employ_id,&&emp_name from emp order by &&emp_name; |
字符处理函数 | |
CONCAT('TEST','HOME') | TEST HOME |
SUBSTR('TEST HOME',1,3) | TES |
LENGTH('TEST HOME') | 9 |
INSTR('TESTHOME','H') | 5 |
LPAD(123.45,10,'*') | ****123.45 |
RPAD(123.45,10,'*') | 123.45**** |
REPLACE('TESTHOME','T','H') | HESHHOME |
TRIM('T' FROM 'TESTHOME') | ESTHOME |
数字函数 | |
ROUND(42.936,2) | 42.94 |
TRUNC(42.936,2) | 42.93 |
MOD(1600,3) | 1 |
日期函数 | |
MONTHS_BETWEEN(date1,date2) | 两个日期间相隔多少月,返回小数 |
ADD_MONTHS(date,num) | 指定日期增加月数 |
NEXT_DAY(date,'FRIDAY') | date之后的下一个FRIDAY |
LAST_DAY(date) | 某月的最后一天 |
日期的舍入与截断 | |
ROUND('2018-05-23','MONTH') | 2018-06-01 |
ROUND('2018-07-23','YEAR') | 2019-01-01 |
TRUNC('2018-05-23','MONTH') | 2018-05-01 |
TRUNC('2018-05-23','YEAR') | 2018-01-01 |
空值函数 | |
NVL(exp1,exp2) | 如果exp1为空则返回exp2,否则返回exp1 |
NVL1(exp1,exp2,exp3) | 如果exp1为空则返回exp3,否则返回exp2 |
NULLIF(exp1,exp2) | 相同返回空否则返回exp1 |
COALESCE(exp1,exp2,exp3,...expr) | 返回第一个非空值 |
条件表达式 | |
CASE | CASE expr WHEN condition1 THEN return_exp1 WHEN condition2 THEN return_exp2 ...... ELSE else_exp END |
CASE dep_name WHEN 'IT' THEN 'IT部门' WHEN 'HR' THEN '人力资源部门' ELSE '其他部门' END | |
DECODE | DECODE(col|expression,condition1,result1,codition2,result2,default) |
DECODE(dep_name,'IT',‘IT部门’,‘HR’,'人力资源部门',‘其他部门’) | |
聚合分组函数 | |
AVG | |
COUNT | |
MAX | |
MIN | |
SUM | |
集合操作 | |
UNION/UNION ALL | UNION ALL中会包括重复行,其他集合操作都会删除重复行 |
INTERSECT | 显示共有的去除重复的 |
MINUS | A MINUS B: 包含在A中但不在B中 |
Oracle SQL基础001
最新推荐文章于 2021-10-11 10:11:15 发布