Oracle SQL基础001

解锁账号 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中

猜你喜欢

转载自blog.csdn.net/youran02100210/article/details/80938449