Oracle笔记

发布 2021-05-11 22:09:28 阅读 3178

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