oracle—day02
2012-10-16 14:01
120 查看
oracle two
Data Definition Language 数据定义语言:
create / drop / alter修改/ truncate截取。 对数据结构起作用。
Data Manipulation Language 数据操纵语言;
insert / update/ delete 对数据起作用。
Data Query Language 数据查询语言;
select /
事物控制语句;
commit; 确定提交。(对DML有效) rollback 回滚,回退到某时间点,该时间内操作全部取消。
一‘单表查询语句;
1.计算金额的四舍五入。(round四舍五入 trunc截取)
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2 from employee_m;
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2, round (salary*0.1234567,0 )s3 --零位小数 from employee_m;
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2, --2位小数 round (salary*0.1234567,0 )s3, --零位小数 trunc(salary*0.1234567,2)s4 --截取2位小数 from employee_m;
2, 系统时间; select SYSDATE from employee_m; --默认格式: DD-MON-RR 日期格式: DD-MON-RR
当前年: 2011 YY RR 99 2099 1999 05 2005 2005
当前年: 1998 99 1999 1999 05 1905 2005
select to_char(sysdate ,'yyyy-mm-dd hh24:mi:ss day am')from employee_m;
三天以前的时间
select sysdate - 3 from dual;
7天以后的 日期;
select sysdate+7from dual;
insert into employee_m(empno,ename,hiredate)values(1015,'amy','sysdate');
insert into employee_m(empno,ename,hiredate)values(1016,'amy2','10-OCT-11');
--实际入职时间
insert into employee_m(empno, ename, hiredate) values(5568, 'peter', to_date('12/31/2010','mm/dd/yyyy') );
显示员工姓名和入职时间,时间格式为: amy 2011-10-10;
select ename, to_char(hiredate,'yyyy-mm-dd') from employee_m;
set pagesize 50 --设置为50条数据。才换行显示,
3 计算机员工一共入职多少时间;
select ename,(sysdate-hiredate) days from employee_m;
6 根据员工职位加薪; Analyst;10% programmer:5% clerk : 2%; 其他不变;
select ename,salary,job, case job when 'analyst' then salary *1.1 when 'programmer' then salary *1.05 when 'clerk' then salary *1.02 else salary end new_salary from employee_m;
--等价于; decode select ename,salary,job, decode (job, 'analyst', salary *1.1, 'programmer', salary *1.05, 'clerk', salary *1.02, salary )new_salary from employee_m;
7 根据员工薪水, 由低到高排;( null 默认视为最大)
select ename,salary from employee_m order by salary;
由高到低排序;最尾巴 加 desc 倒序!
select ename,salary from employee_m order by salary desc;
8 由时间早晚排序
select ename,hiredate from employee_m order by hiredate;
select ename,hiredate from employee_m order by hiredate desc;
9 按照部门排序 然后由部分薪水高低排序
select ename,deptno,salary from employee_m order by deptno,salary desc;
--反之; select ename,deptno,salary from employee_m order by deptno desc ,salary desc ;
10 查看员工表,一共有多少条记录;
select count(*) from employee_m;
11 查看数据库一共有多少表
select *from user_tables;
12 查看数据库一共有多少emp表
select count(*)from user_tables where table_name like '%EMP%';
-- 大写 select count(*)from user_tables where table_name like '%MAJINYUN%';
13 入职时间不是null的数据总数
count select count(hiredate)from employee_m;
14 计算员工平均薪水,和薪水总和是多少
select avg (salary) avg_sal,
-- avg 平均
sum (salary) sum_sal from employee_m; --被评均 --判断逻辑上错误
--纠正 select sum (salary)/count(*) avg_sal, sum(salary) sum_sal from employee_m;
--+ select avg (nvl(salary,0)) avg_sal, sum(salary) sum_sal from employee_m;
15 计算机 员工最高 和最低薪水
select max (salary) max_sal, min (salary) min_sal from employee_m;
16 计算机员工最早。和最晚的入职时间;
select min(hiredate) min_hir, max(hiredate) max_hir from employee_m;
select ename,hiredate from employee_m order by hiredate;
17. 计算机每个部门,最高和最低薪水,分别是多少。
select deptno, max (salary) max_s, min (salary) min_s from employee_m group by deptno;
18 计算每个部门的 薪水总和 和 平均薪水;
select deptno, sum(salary) s_s, avg(salary) a_s from employee_m group by deptno;
19 每个部门的统计信息 格式;
select deptno,max(salary) max_s, min(salary) min_s, sum(salary) sum_s, avg(nvl(salary,0)) avg_s, count(*)emp_num from employee_m group by deptno;
20 按照职位分组
select job,max(salary) max_s, min(salary) min_s, sum(salary) sum_s, avg(nvl(salary,0)) avg_s, count(*)emp_num from employee_m group by job;
21平均薪水大于7500的部门
select deptno, avg (nvl(salary,0))avg_s from employee_m where deptno is not null group by deptno having avg(nvl(salary,0))>7500;
22 那些职位人数小于于3个人 select job, count(*)employee_m from employee_m where job is not null group by job having count(*) < 3 order by employee_m; 排列顺序按照这个规则
23 求 最高薪的人是谁
select max(salary) from employee_m; select ename from employee_m--主查询
where salary =(select max(salary)from employee_m);--子查询
select salary,job,ename from employee_m --主查询 where salary =(select max(salary)from employee_m);--子查询
24 修改 参数;
update employee_m set salary =4000 where ename='yuyu';
25 取模mod 取出工资 。除以1000 的结果 select mod (salary,1000) from employee_m;
goole 关键字 OCP ocjp 模拟题
Data Definition Language 数据定义语言:
create / drop / alter修改/ truncate截取。 对数据结构起作用。
Data Manipulation Language 数据操纵语言;
insert / update/ delete 对数据起作用。
Data Query Language 数据查询语言;
select /
事物控制语句;
commit; 确定提交。(对DML有效) rollback 回滚,回退到某时间点,该时间内操作全部取消。
一‘单表查询语句;
1.计算金额的四舍五入。(round四舍五入 trunc截取)
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2 from employee_m;
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2, round (salary*0.1234567,0 )s3 --零位小数 from employee_m;
select ename,salary *0.1234567 s1,round(salary*0.1234567, 2)s2, --2位小数 round (salary*0.1234567,0 )s3, --零位小数 trunc(salary*0.1234567,2)s4 --截取2位小数 from employee_m;
2, 系统时间; select SYSDATE from employee_m; --默认格式: DD-MON-RR 日期格式: DD-MON-RR
当前年: 2011 YY RR 99 2099 1999 05 2005 2005
当前年: 1998 99 1999 1999 05 1905 2005
select to_char(sysdate ,'yyyy-mm-dd hh24:mi:ss day am')from employee_m;
三天以前的时间
select sysdate - 3 from dual;
7天以后的 日期;
select sysdate+7from dual;
insert into employee_m(empno,ename,hiredate)values(1015,'amy','sysdate');
insert into employee_m(empno,ename,hiredate)values(1016,'amy2','10-OCT-11');
--实际入职时间
insert into employee_m(empno, ename, hiredate) values(5568, 'peter', to_date('12/31/2010','mm/dd/yyyy') );
显示员工姓名和入职时间,时间格式为: amy 2011-10-10;
select ename, to_char(hiredate,'yyyy-mm-dd') from employee_m;
set pagesize 50 --设置为50条数据。才换行显示,
3 计算机员工一共入职多少时间;
select ename,(sysdate-hiredate) days from employee_m;
6 根据员工职位加薪; Analyst;10% programmer:5% clerk : 2%; 其他不变;
select ename,salary,job, case job when 'analyst' then salary *1.1 when 'programmer' then salary *1.05 when 'clerk' then salary *1.02 else salary end new_salary from employee_m;
--等价于; decode select ename,salary,job, decode (job, 'analyst', salary *1.1, 'programmer', salary *1.05, 'clerk', salary *1.02, salary )new_salary from employee_m;
7 根据员工薪水, 由低到高排;( null 默认视为最大)
select ename,salary from employee_m order by salary;
由高到低排序;最尾巴 加 desc 倒序!
select ename,salary from employee_m order by salary desc;
8 由时间早晚排序
select ename,hiredate from employee_m order by hiredate;
select ename,hiredate from employee_m order by hiredate desc;
9 按照部门排序 然后由部分薪水高低排序
select ename,deptno,salary from employee_m order by deptno,salary desc;
--反之; select ename,deptno,salary from employee_m order by deptno desc ,salary desc ;
10 查看员工表,一共有多少条记录;
select count(*) from employee_m;
11 查看数据库一共有多少表
select *from user_tables;
12 查看数据库一共有多少emp表
select count(*)from user_tables where table_name like '%EMP%';
-- 大写 select count(*)from user_tables where table_name like '%MAJINYUN%';
13 入职时间不是null的数据总数
count select count(hiredate)from employee_m;
14 计算员工平均薪水,和薪水总和是多少
select avg (salary) avg_sal,
-- avg 平均
sum (salary) sum_sal from employee_m; --被评均 --判断逻辑上错误
--纠正 select sum (salary)/count(*) avg_sal, sum(salary) sum_sal from employee_m;
--+ select avg (nvl(salary,0)) avg_sal, sum(salary) sum_sal from employee_m;
15 计算机 员工最高 和最低薪水
select max (salary) max_sal, min (salary) min_sal from employee_m;
16 计算机员工最早。和最晚的入职时间;
select min(hiredate) min_hir, max(hiredate) max_hir from employee_m;
select ename,hiredate from employee_m order by hiredate;
17. 计算机每个部门,最高和最低薪水,分别是多少。
select deptno, max (salary) max_s, min (salary) min_s from employee_m group by deptno;
18 计算每个部门的 薪水总和 和 平均薪水;
select deptno, sum(salary) s_s, avg(salary) a_s from employee_m group by deptno;
19 每个部门的统计信息 格式;
select deptno,max(salary) max_s, min(salary) min_s, sum(salary) sum_s, avg(nvl(salary,0)) avg_s, count(*)emp_num from employee_m group by deptno;
20 按照职位分组
select job,max(salary) max_s, min(salary) min_s, sum(salary) sum_s, avg(nvl(salary,0)) avg_s, count(*)emp_num from employee_m group by job;
21平均薪水大于7500的部门
select deptno, avg (nvl(salary,0))avg_s from employee_m where deptno is not null group by deptno having avg(nvl(salary,0))>7500;
22 那些职位人数小于于3个人 select job, count(*)employee_m from employee_m where job is not null group by job having count(*) < 3 order by employee_m; 排列顺序按照这个规则
23 求 最高薪的人是谁
select max(salary) from employee_m; select ename from employee_m--主查询
where salary =(select max(salary)from employee_m);--子查询
select salary,job,ename from employee_m --主查询 where salary =(select max(salary)from employee_m);--子查询
24 修改 参数;
update employee_m set salary =4000 where ename='yuyu';
25 取模mod 取出工资 。除以1000 的结果 select mod (salary,1000) from employee_m;
goole 关键字 OCP ocjp 模拟题
相关文章推荐
- oracle_day02
- oracle复习 - day02
- Oracle_SQL_day02_SQL函数
- Oracle学习及常见问题的解决-day02
- oracle学习-day02
- 老谢oracle视频笔记_day02
- oracleday02(启动流程 认证方式)
- oracle_day02
- Oracle学习笔记 -- day02 本机连接虚拟机(远程机)中的oracle设置
- Oracle 用户,角色,权限的sql语句
- [精]Oracle VPD详解(虚拟专用数据库)
- Oracle Undo回滚段深入解析_超越OCP精通Oracle视频课程培训15
- 哪里有深入学习Oracle的资料
- Oracle之dual表
- 4、Shiro+Oracle实现用户登录认证
- oracle 根据手机号判断三大运营商函数
- oracle用户权限
- Linux下oracle服务与监听启动
- Oracle默认端口清单以及修改办法
- Oracle也受伤:注入漏洞的发现及解决