Orcale职业培训笔记

发布 2021-05-13 02:25:28 阅读 8821

1. s_emp、s_dept表的字段含义。

first_name 名。

last_name 姓。

title职位。

dept_id部门号。

commission_pct 提成(有空值)

2. 列出所有人的年薪。

select first_name,salary*12 from s_emp;

3. 给列起别名。

select first_name,salary*12 ann_sal from s_emp;

select first_name,salary*12 "ann sal" from s_emp;

select first_name,salary*12 as "ann sal" from s_emp;

4. 处理空值的函数 nvl(p1,p2)

null oracle当做无穷大来处理。

空值不等于0

空值不等于空格。

算数表达式中为空值,返回空值。

select first_name , salary*12*(1+nvl(commission_pct,0)/100) from s_emp;

5. sqlplus命令:

a) l列出上一次敲入的命令。

b) clear scr 或者 !clear

清屏。6. 字段(列名)拼接

字符串拼接。

oracle中字符和字符串用单引号表示。

双引号用于表示别名。

select first_name||'last_name employee from s_emp;

select first_name||'is int department '|dept_id||'from s_emp;

7. 去除重复值 distinct

##该公司有哪些职位?

select distinct title from s_emp;

##各个部门有哪些不同的职位?

##distinct的功能:部门号单独重复,职位单独重复,部门号和职位联合不重复。

select distinct dept_id,title from s_emp;

##会报错,因为distinct只能出现在select后面,否则会造成逻辑不通。

select dept_id,distinct title from s_emp; (x)

8. 列出表中所有字段。

##注意:写*会降低效率,公司中一般会禁止写*;

select * from s_emp;

9. oracle中写sql大小写区别在功能上无影响,性能上有影响。

##注意:写sql,一般公司都有规范。

10. where控制子句。

##年薪大于1.2w的员工的年薪?

##如果salary字段上建了索引,第一种写法,索引用不上,所以慢。

select first_name,salary*12 a_sal

from s_emp

where salary*12 > 12000;

##如果salary字段上建了索引,第二种写法,效率高些。

select first_name,salary*12 a_sal

from s_emp

where salary>1000;

##会报错,where子句后面不可以跟“列别名”,where子句执行在select语句之前。

select first_name,salary*12 a_sal

from s_emp

where a_sal > 12000;

##ex.不会报错,order by子句可以使用“别名”

select first_name,salary*12 a_sal

from s_emp

order by a_sal;

11. 注意:单引号中大小写敏感。

##列出carmen的年薪是多少?

select first_name,salary*12 a_sal

from s_emp

where first_name = carmen';

12. 大小写转换函数 lower() upper()

##列出carmen的年薪是多少?

select first_name , salary*12 a_sal

from s_emp

where lower(first_name) =carmen';

13. where salary between 1000 and 1500;and和between and连接符。

##找出员工工资在1000与1500之间。

select first_name , salary

from s_emp

where salary>=1000 and salary<=1500;

##between and就表示了如上含义。

select first_name , salary

from s_emp

14. or连接符 in()表述形式 =any()

##找出部门员工的姓名和部门号?

select first_name , dept_id

from s_emp

where dept_id=31 or dept_id=41 or dept_id=43;

##简单的表述形式in()

select first_name , dept_id

from s_emp

where dept_id in (31 , 41 , 43);

##另一种表述形式 in()相当于=any()

select first_name , dept_id

from s_emp

where dept_id = any(31, 41, 43);

##从连续区间中取值使用between-and,从离散数值中取值用in()

15. like运算符 substr()函数 length()函数。

通配符:%表示0或多个字符;_表示任意单个字符)

##效率高些。

where last_name like 'm%'

##结果等同如上。

where substr(last_name , 1 , 1) =m';

##列出名字的最后两个字母。

select first_name , substr(first_name , 2 ,2) from s_emp;

##列出名字的最后两个字母 length()函数。

select substr(first_name , length(first_name)-1 ,2) from s_emp;

16. escape关键字(表示\后边的符号不是通配符)

select talble_name from user_tables

where talbe_name like 's\_%escape '\

17. is null判断字段是否为空 is not null

select first_name , commission_pct from s_emp where commission_pct is null;

18. not between and

not in()

not like

is not null

##除了部门的部门员工的情况。

select first_name , dept_id from s_emp

where dept_id not in(31, 41 , 43);

##等价写法。

select first_name , dept_id from s_emp

where dept_id !=31 and dept_id!=41 and dept_id!=43;

##等价写法<>all(31,41,43)

select first_name , dept_id from s_emp

where dept_id <>all (31,41,43);

##任何数据与null比较,都返回false,##使用not in()时,如果集合中有null值,则查不出任何记录,对in()没影响。

select first_name , dept_id from s_emp

where dept_id not in(31, 41 , 43,null);

19. 注意下两句sql的区别,理解or和and

## 找出部门号为44,工资大于1000的员工或者部门号为42的所有员工?

select last_name , salary , dept_id

from s_emp

where salary >=1000 and dept_id=44 or dept_id=42;

##找出部门号为44或者42的,并且工资大于1000的员工。

select last_name , salary , dept_id

from s_emp

where salary >=1000 and (dept_id=44 or dept_id=42);

20. 隐式数据类型转换。

##如下式相同的结果,系统做了隐式数据类型转换,均为:字符转数值。

select first_name , salary from s_emp where salary = 1450;

select first_name , salary from s_emp where salary = 1450';

##相当于。

select first_name , salary from s_emp where to_number(salary) =1450;

##做严格的数据类型匹配相当重要。

select first_name , salary from s_emp where salary = 1450;

21. 显式数据类型转换 to_char()函数。

##输出所有员工的manager_id,如果没有manager_id,则用boss填充。

select first_name , nvl(to_char(manager_id) ,boss') from s_emp;

22. 表和表之间的关系。

s_emp 员工表。

s_dept 部门表。

s_region 部门所在地区表。

salgrade 工资等级表。

emp 员工表。

dept 部门表。

23. 等值连接。

##查询''carmen'所在部门的地区?(canmen在哪个地区上班?)

##中间表“部门表”

##用几张表就join几次。

##等值连接(内连接的一种):父表的主键==子表的外键。

select ,

from s_emp e

join s_dept d

on = and = carmen为什么 where 不行?

职业培训感悟

这次培训对我来说感触颇深,使我明白了一名职业员工应有的职业精神和工作态度,为我日后的工作指明了方向。作为任何一个组织的成员,融入组织最主要的方式就是遵守组织纪律接受组织文化。作为一个以营利为目的的企业更应如此,因为它和每位员工的经济利益与发展平台密切相关。每个企业都要盈利,这是一个企业生存的基本条件...

职业培训学校的培训方案

一 职业培训的目标。以市场需求为导向,培养更多的职业技术人才,使其掌握影视 广告设计 数控技术 厨师及室内设计等方面的理论知识和实践能力,培养学员的知识和技术创新能力,培养学员的职业态度 职业伦理和敬业精神,提升自身的就业能力。二 职业培训的对象。1 初高中毕业生新生劳动力。2 农村流向城市的外出务...

职业培训学校推广文案

口号。职业培训学校推广文案。1 沃土育精英,职场创辉煌。2 春雨润万物,沃土与乾坤。3 五彩沃土,万花争艳。4 以知识滋养,以实训造才。5 扎根沃土,智踩人生。6 五彩沃土,成就七彩人生。7 好苗子,在沃土中成长。8 五彩沃土,梦想起航。9 五彩培训,舞彩人生。10 五彩沃土,培养璀璨人生。11 学...