Вы находитесь на странице: 1из 4

HW 1 - Eduard Mirica

Selects
1.The name of the department (departments), where is hired the
employee (employees) with the maximum salary.

select * from departments where department_id=(select department_id from


employees where salary=(select max(salary) from employees))

2.The employees (last name, first name) with the maximum salary in each
department.

select first_name from employees where salary in (select max(salary) from


employees group by department_id)

3.The name of the departments where each employee has at least one
subordinate.

elect department_name from departments d where not exists(select * from


employees a where a.department_id=d.department_id and not exists(select * from
employees b where b.manager_id=a.employee_id))

4. The name of the departments where each employee doesn’t have a


manager.

select department_name from departments d where not exists(select * from


employees a where a.department_id=d.department_id and exists(select * from
employees b where a.manager_id=b.employee_id))

5. The name of the employees from 'Oxford' which don’t have any
subordinates.

select first_name from employees a where a.department_id=1 and not exists(select


* from employees b where b.manager_id=a.employee_id)

6. The name of employees, which have a salary higher than the average
salary in their department.

select first_name from employees a where salary > (select avg(salary) from
employees b where b.department_id=a.department_id)

7. The name of the departments where all employee names begin with 'W'.
select department_name from departments where not exists (select * from
employees where employees.department_id=departments.department_id and
employees.first_name not like 'W%')

CREATE TABLE regions(


region_id number(10) PRIMARY KEY,
region_name varchar2(200) UNIQUE NOT NULL
)

CREATE TABLE countries(


country_id number(10) PRIMARY KEY,
country_name varchar2(200) NOT NULL,
region_id number(10) REFERENCES regions(region_id) NOT NULL
)

CREATE TABLE location(


location_id number(10) PRIMARY KEY,
street_address varchar2(200) NOT NULL,
postal_code number(10),
city varchar2(100),
state_province varchar2(100),
country_id number(10) REFERENCES countries(country_id) NOT NULL
)

CREATE TABLE departments(


department_id number(10) PRIMARY KEY,
department_name varchar2(100),
manager_id number(10),
location_id number(10) references location(location_id)
)

CREATE TABLE jobs(


job_id number(10) PRIMARY KEY,
job_title varchar2(100),
min_salary number(10),
max_salary number(10)
)

CREATE TABLE employees(


employee_id number(10) PRIMARY KEY,
first_name varchar2(100),
job_id number(10) references jobs(job_id),
salary number(10),
manager_id number(10) references employees(employee_id),
department_id number(10) references departments(department_id)
)
ALTER TABLE departments add constraint dept_empl_fk foreign key (manager_id)
references employees(employee_id)

CREATE TABLE job_history(


employee_id number(10) references employees(employee_id),
start_date date,
end_date date,
job_id number(10) references jobs(job_id),
department_id number(10) references departments(department_id),
constraint job_history_pk PRIMARY KEY(employee_id,start_date)
)

-----------
inserts

insert into regions values(1,'europa');


insert into regions values(2,'nord america');
insert into regions values(3,'asia');

insert into countries values(1,'england',1)


insert into countries values(2,'france',1)
insert into countries values(3,'romania',1)
insert into countries values(4,'usa',2)
insert into countries values(5,'india',3)

insert into location values(1,'street no1',1111,'paris','',2)


insert into location values(3,'street no31',166666,'london','',1)
insert into location values(2,'street no111',99,'liverpool','',1)
insert into location values(4,'street no111',9779,'ny','',4)
insert into location values(5,'street no91',9779,'pitesti','',3)

insert into departments values(1,'it',null,2)


insert into departments values(2,'design',1,3)
insert into departments values(3,'WDept',1,4)
insert into departments values(4,'management area',1,2)

insert into departments values(5,'relax for programmers',4,2)

insert into jobs values(1,'General manager',1000,10000)


insert into jobs values(2,'Manager',1000,5000)
insert into jobs values(3,'Programmer',500,3000)
insert into jobs values(4,'Designer',500,3000)

insert into employees values(1,'TheBoss it',1,5000,1,1)


insert into employees values(2,'Manager it 1',2,3000,1,1)
insert into employees values(3,'Manager it 2',2,2500,1,1)
insert into employees values(4,'Programer#1',3,1250,2,1)
insert into employees values(5,'Programer#2',3,1250,2,1)
insert into employees values(6,'Programer#3',3,1250,3,1)

insert into employees values(7,'Manager design 1',2,1650,1,2)


insert into employees values(8,'Manager design 2',2,3100,1,2)
insert into employees values(9,'Designer#1',4,1650,7,2)
insert into employees values(10,'Designer#2',4,1050,7,2)
insert into employees values(11,'Designer#3',4,1350,8,2)

insert into employees values(12,'Webber#1',4,1650,7,2)


insert into employees values(13,'Winscol#2',4,1050,7,2)
insert into employees values(14,'Wanabe#3',4,3950,8,3)
insert into employees values(15,'Wanabe#5',4,3950,8,3)
insert into employees values(16,'Wantabble#5',3,950,8,3)
insert into employees values(17,'TheBoss of all ',1,5000,null,4)

update employees set department_id=1 where employee_id=4


update employees set department_id=5 where employee_id=5
update employees set department_id=5 where employee_id=6

Вам также может понравиться