2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
oracle系列文章:
【1】Oracle数据库:啥是oracle数据库?你为啥要学oracle?
【2】Oracle数据库:oracle 11g安装教程,已安装好的oracle各个文件夹的作用,oracle用户权限怎么样
【3】Oracle数据库:oracle启动,oracle客户端工具plsql安装教程和使用方法
【4】Oracle数据库:创建表空间,创建新用户,给用户分配对象、角色和系统权限,登录新用户建表
【5】Oracle数据库:链接配置,包括sqlnet.ora里面的transnames.ora配置数据库标识符SID,listener暂时简单了解
【6】Oracle数据库:net configureation assistant工具配置监听listener,配置本地网络访问服务器上的数据库
【7】Oracle数据库:oracle字符类型、数字类型、创建表表名的命名规则
【8】Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
【9】Oracle数据库:表的关系:一对多,一对一,多对多,一一继承和修改的关系,表不是重点,重点是数据和约束关系
【10】Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
【11】Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句
【12】Oracle数据库:逻辑运算and,or,not和各种运算的优先级控制
【13】Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例
【14】Oracle数据库:oracle函数,单行函数,多行函数,upper,lower,initcap,字符串函数
【15】Oracle数据库:数字函数,日期函数,round,trunc,mod,months_between,add_months,next_day,last_day,sysdate
【16】Oracle数据库:oracle数据类型转换to_char()日期和数字转字符,to_number()字符转数字,to_date()字符转日期函数
和java等等等等一样
SQL> select to_char(next_day(add_months(hire_date, 6), 6), 'day,mm"月",dd"日",yyyy"年"') from employees order by hire_date;
TO_CHAR(NEXT_DAY(ADD_MONTHS(HIRE_DATE,6),6),'DAY,MM"月",DD"日",YYYY"年"')
----------------------------------------------------------------------
星期五,07月,20日,2001年
星期五,12月,13日,2002年
星期五,12月,13日,2002年
星期五,12月,13日,2002年
先执行
add_months(hire_date, 6)
返回一个加6个月的日期值
然后把这个日期值给算一个下一个星期5
1–7表示星期日–星期六
最后再把这个日期转化为字符串,格式还是我们说过的格式,上一篇文章说的很清楚了
有很多员工是没有佣金的
那佣金为0呗
所以佣金需要把null转为数字0
SQL> select last_name, salary, 12*salary + commission_pct from employees;
LAST_NAME SALARY 12*SALARY+COMMISSION_PCT
------------------------- ---------- ------------------------
King 24000.00
Kochhar 17000.00
De Haan 17000.00
Hunold 9000.00
你看看算不了
咱可以
将null转为0
SQL> select last_name, salary, commission_pct, 12*salary, 12*salary*nvl(commission_pct, 0) from employees;
LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
King 24000.00 288000 0
Kochhar 17000.00 204000 0
De Haan 17000.00 204000 0
Hunold 9000.00 108000 0
Ernst 6000.00 72000 0
Austin 4800.00 57600 0
Pataballa 4800.00 57600 0
Lorentz 4200.00 50400 0
Greenberg 12008.00 144096 0
Faviet 9000.00 108000 0
Chen 8200.00 98400 0
Sciarra 7700.00 92400 0
Urman 7800.00 93600 0
Popp 6900.00 82800 0
Raphaely 11000.00 132000 0
Khoo 3100.00 37200 0
Baida 2900.00 34800 0
Tobias 2800.00 33600 0
Himuro 2600.00 31200 0
Colmenares 2500.00 30000 0
LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
Weiss 8000.00 96000 0
Fripp 8200.00 98400 0
Kaufling 7900.00 94800 0
Vollman 6500.00 78000 0
Mourgos 5800.00 69600 0
Nayer 3200.00 38400 0
Mikkilineni 2700.00 32400 0
Landry 2400.00 28800 0
Markle 2200.00 26400 0
Bissot 3300.00 39600 0
Atkinson 2800.00 33600 0
Marlow 2500.00 30000 0
Olson 2100.00 25200 0
Mallin 3300.00 39600 0
Rogers 2900.00 34800 0
Gee 2400.00 28800 0
Philtanker 2200.00 26400 0
Ladwig 3600.00 43200 0
Stiles 3200.00 38400 0
Seo 2700.00 32400 0
Patel 2500.00 30000 0
LAST_NAME SALARY COMMISSION_PCT 12*SALARY 12*SALARY*NVL(COMMISSION_PCT,0)
------------------------- ---------- -------------- ---------- -------------------------------
Rajs 3500.00 42000 0
Davies 3100.00 37200 0
Matos 2600.00 31200 0
Vargas 2500.00 30000 0
Russell 14000.00 0.40 168000 67200
Partners 13500.00 0.30 162000 48600
没有佣金的把佣金当做0,然后×年薪就这么点了
SQL> select last_name, salary, commission_pct, 12*salary + 12*salary*nvl(commission_pct, 0) as "AN_SAL" from employees;
LAST_NAME SALARY COMMISSION_PCT AN_SAL
------------------------- ---------- -------------- ----------
King 24000.00 288000
Kochhar 17000.00 204000
De Haan 17000.00 204000
Hunold 9000.00 108000
Ernst 6000.00 72000
好说,上面我就实现过了
return expr1?expr2:expr3
exper1为1返回expr2
否则返回expr3
SQL> select last_name, salary, commission_pct, nvl2(commission_pct, 12*salary*(1+commission_pct), 12*salary) as "AN_SAL" from employees;
LAST_NAME SALARY COMMISSION_PCT AN_SAL
------------------------- ---------- -------------- ----------
King 24000.00 288000
Kochhar 17000.00 204000
De Haan 17000.00 204000
Hunold 9000.00 108000
Ernst 6000.00 72000
Austin 4800.00 57600
反正就三目呗
好说
有佣金,我们就带上佣金
没有佣金,直接返回原始的薪水
SQL> select first_name,length(first_name) as e1,last_name,length(last_name) as e2, nullif(length(first_name), length(last_name)) as result from employees;
FIRST_NAME E1 LAST_NAME E2 RESULT
-------------------- ---------- ------------------------- ---------- ----------
Ellen 5 Abel 4 5
Sundar 6 Ande 4 6
Mozhe 5 Atkinson 8 5
David 5 Austin 6 5
Hermann 7 Baer 4 7
Shelli 6 Baida 5 6
Amit 4 Banda 5 4
Elizabeth 9 Bates 5 9
Sarah 5 Bell 4 5
David 5 Bernstein 9 5
Laura 5 Bissot 6 5
Harrison 8 Bloom 5 8
Alexis 6 Bull 4 6
Anthony 7 Cabrio 6 7
Gerald 6 Cambrault 9 6
Nanette 7 Cambrault 9 7
John 4 Chen 4
Kelly 5 Chung 5
Karen 5 Colmenares 10 5
Curtis 6 Davies 6
你瞅瞅,姓名,如果长度相等,返回就是null
否则返回firstname的长度
SQL> select last_name, coalesce(commission_pct, salary, 10) from employees;
LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
King 24000
Kochhar 17000
De Haan 17000
Hunold 9000
Ernst 6000
Austin 4800
Pataballa 4800
Lorentz 4200
Greenberg 12008
Faviet 9000
Chen 8200
Sciarra 7700
Urman 7800
Popp 6900
Raphaely 11000
Khoo 3100
Baida 2900
Tobias 2800
Himuro 2600
Colmenares 2500
LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
Weiss 8000
Fripp 8200
Kaufling 7900
Vollman 6500
Mourgos 5800
Nayer 3200
Mikkilineni 2700
Landry 2400
Markle 2200
Bissot 3300
Atkinson 2800
Marlow 2500
Olson 2100
Mallin 3300
Rogers 2900
Gee 2400
Philtanker 2200
Ladwig 3600
Stiles 3200
Seo 2700
Patel 2500
LAST_NAME COALESCE(COMMISSION_PCT,SALARY,10)
------------------------- ----------------------------------
Rajs 3500
Davies 3100
Matos 2600
Vargas 2500
Russell 0.4
Partners 0.3
不会出现10
因为都有月薪
否咋谁去给你用爱发电呀
提示:重要经验:
1)
2)学好oracle,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。