oracle day07
目标:熟悉组函数的使用,及rowid的使用。
上节重点回顾:
1. 字符函数。
2. 日期函数。
3. 数值函数。
4. 转换函数。
5. 通用函数。
授课内容:1组函数的应用。
group by 求出不同部门不同工作的员工人数的示意图,按图理解清楚group by 的用法。
2. rowid的使用(删除重复数据)
授课笔记:-一。单行函数。
select upper(last_name) from employees;
-二。组函数。
字段) 具体字段(只统计当前字段不为空的条数)
select count(*)from employees; -116
select count(last_name) from employees; -116
select count(first_name) from employees; -107
select * from employees where first_name is not null; -107
平均值。-求20号部门的平均工资
select **g(salary) from employees where department_id = 20;
select sum(salary) from employees where department_id = 50;
-求50号部门工资最高的员工最低的。
-max() min()
select max(salary) as 最高工资,min(salary) 最低工资。
from employees
where department_id = 50;
-max(date)
select * from employees
order by hire_date desc;
select max(hire_date) from employees;
select min(hire_date) from employees;
-max(char) (降序排列顺序z--az--a)
select * from employees
order by last_name desc;
select max(last_name) from employees;
select * from employees for update;
group by
select count(*)from employees where department_id = 100; -6
select department_id,count(*)from employees
group by department_id;
-统计各个部门的平均工资。
-,first_name
select department_id,**g(salary)
from employees
group by department_id;
-统计不同部门不同工作的人数。
select department_id,job_id,count(*)from employees
group by department_id,job_id
order by department_id,job_id;
-1.统计不同部门不同工作的最高工资和最低工资分别是多少。
select department_id,job_id,max(salary),min(salary) from employees
group by department_id,job_id;
-2.统计03年各个月入职的员工个数。
select to_char(hire_date,'mm'),count(*)from employees
where to_char(hire_date,'yyyy') 2003
group by to_char(hire_date,'mm');
-3.输出平均工资高于5000的部门 1000 2000 3000
select department_id,**g(salary)
from employees
group by department_id
h**ing **g(salary) >5000;
-4.查看某字段是否重复。
-distinct
-select distinct first_name from employees;
select first_name,count(*)from employees
group by first_name
h**ing count(*)1 ;
-问题:如何删除表中的重复数据 rowid
-select * from employees for update;
select rowid,a.* from employees a
select * from employees;
select employee_id,count(*)from employees
group by employee_id
h**ing count(*)1;
-delete from employees where employee_id is null
-and rowid not in(
-select min(rowid)from employees
-where employee_id is null
-group by last_name);
select last_name from employees
where employee_id is null
group by last_name
create table
select * from user_constraints where table_name = upper('t1_student');
alter table t1_student drop constraints sys_c007305;
select * from t1_student for update;
作业:-如何删除表**现的重复数据(保留重复数据中的一条)
select * from t1_student where
rowid not in (
select max(rowid) from t1_student
group by sno);
根据上面的内容,这些数据就是我们要删除的数据、、、
所以改写成delete 语句。
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...