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 学...