русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Практическое занятие 5


Дата добавления: 2015-08-31; просмотров: 11294; Нарушение авторских прав


  • Соединение таблиц с использованием эквисоединения.
  • Выполнение внешних соединений и соединений таблицы с собой
  • Включение дополнительных условий.

 

  1. Напишите запрос для вывода названия отдела, местоположения отдела, количества служащих и среднего оклада по этому отделу. Назовите столбцы Name, Location, Number of People и Salary. Округлите средний оклад до ближайшего целого значения.
Name Location Number of People Salary
Accounting
Administration
Executive 19333.33
IT
Marketing
Sales 10033.33
Shipping

 

select department_name "Name", location_id "Location", count(emp.employee_id) "Number of People", round(avg(emp.salary)) "Salary"

from departments dep join employees emp

on(dep.department_id=emp.department_id) group by department_name,location_id order by "Name";

 

Name Location Number of People Salary
Accounting
Administration
Executive
Finance
Human Resources
IT
Marketing
Public Relations
Purchasing
Sales
Shipping

 

  1. Напишите запрос для вывода фамилии, номера отдела и названия отдела дл всех служащих.
LAST_NAME DEPARTMENT_ID DEPARTMENT_NAME
Whalen Administration
Hartstein Marketing
Fay Marketing
Mourgos Shipping
Rajs Shipping
Davies Shipping
Matos Shipping
Vargas Shipping

……………..



19 rows selected

select emp.last_name, emp.department_id, dep.department_name

from employees emp left join departments dep on (emp.department_id=dep.department_id);

 

LAST_NAME DEPARTMENT_ID DEPARTMENT_NAME
Whalen Administration
Fay Marketing
Hartstein Marketing
Tobias Purchasing
Colmenares Purchasing
Baida Purchasing
Raphaely Purchasing
Khoo Purchasing
Himuro Purchasing
Mavris Human Resources
Feeney Shipping
Fleaur Shipping
Fripp Shipping
Gates Shipping
Gee Shipping
Geoni Shipping
Grant Shipping
Jones Shipping
Kaufling Shipping
Ladwig Shipping

 

  1. Выведите список всех должностей в отделе 80 (должности в списке не должны повторяться) и местоположение отдела.
JOB_ID LOCATION_ID
SA_MAN
SA_REP

 

select distinct emp.job_id, dep.location_id from employees emp join departments dep on (dep.department_id=emp.department_id)

where emp.department_id=80;

 

JOB_ID LOCATION_ID
SA_REP
SA_MAN

 

 

  1. Выведите фамилии всех служащих, содержащих букву «а» (в строчном регистре), с названиями отделов. Сохраните свою команду SQL в файле lab4_4.sql.
LAST_NAME DEPARTMENT_NAME
Whalen Administration
Hartstein Marketing
Fay Marketing
Rajs Shipping
Davies Shipping
Matos Shipping
Vargas Shipping
Taylor Sales
Kochhar Executive
De Haan Executive

10 rows selected.

 

select emp.last_name, dep.department_name from employees emp left join departments dep on (dep.department_id=emp.department_id)

where emp.last_name like'%a%';

 

LAST_NAME DEPARTMENT_NAME
Whalen Administration
Fay Marketing
Hartstein Marketing
Colmenares Purchasing
Tobias Purchasing
Baida Purchasing
Raphaely Purchasing
Mavris Human Resources
Walsh Shipping
McCain Shipping
Gates Shipping
Cabrio Shipping
Sarchand Shipping
Sullivan Shipping
Grant null

 

  1. Напишите запрос для вывода фамилии, должности, номера отдела и названия отдела всех служащих, работающих в городе Toronto.
LAST_NAME JOB_ID DEPARTMENT_ID DEPARTMENT_NAME
Hartstein MK_MAN Marketing
Fay MK_REP Marketing

 

select emp.last_name, emp.job_id, emp.department_id, dep.department_name from employees emp left join departments dep on (dep.department_id=emp.department_id)

join locations loc on (dep.location_id=loc.location_id) where loc.city='Toronto';

 

LAST_NAME JOB_ID DEPARTMENT_ID DEPARTMENT_NAME
Hartstein MK_MAN Marketing
Fay MK_REP Marketing

 

 

  1. Выведите фамилии и номера всех служащих вместе с фамилиями и номерами их менеджеров. Назовите столбцы EMPLOYEE, Emp#, Manager и Mgr#. Сохраните свою команду SQL в файле lab4_6.sql.
Employee Emp# Manager Mgr#
Kochhar King
De Haan King
Mourgos King
Zlotkey King

…………….

 

select emp.last_name EMPLOYEE, emp.employee_id "Emp#", emp2.last_name "Manager ", emp2.employee_id "Mgr#" from employees emp left join employees emp2

on (emp.manager_id=emp2.employee_id) order by emp2.employee_id;

EMPLOYEE Emp# Manager Mgr#
Zlotkey King
Cambrault King
Errazuriz King
Partners King
Russell King
Mourgos King
Vollman King
Kaufling King
Fripp King
Weiss King
Raphaely King
De Haan King
Kochhar King
Hartstein King
Greenberg Kochhar
Higgins Kochhar
Baer Kochhar
Mavris Kochhar
Whalen Kochhar
Hunold De Haan

 

  1. Измените файл lab4_6.sql так, чтобы получить фамилии всех служащих, включая Кинга, который не имеют менеджера. Упорядочьте результат по возрастанию номера служащего. Сохраните изменённый запрос в текстовом файле lab4_7.sql. Выполните запрос.
Employee Emp# Manager Mgr#
King    
Kochhar King
De Haan King
Hunolds De Haan
Ernst Hunold
Lorentz Hunold

…………………………….

 

select emp.last_name EMPLOYEE, emp.employee_id "Emp#", emp2.last_name "Manager ", emp2.employee_id "Mgr#" from employees emp left join employees emp2

on (emp.manager_id=emp2.employee_id) order by "Emp#";

EMPLOYEE Emp# Manager Mgr#
King    
Kochhar King
De Haan King
Hunold De Haan
Ernst Hunold
Austin Hunold
Pataballa Hunold
Lorentz Hunold
Greenberg Kochhar
Faviet Greenberg
Chen Greenberg
Sciarra Greenberg
Urman Greenberg
Popp Greenberg
Raphaely King
Khoo Raphaely

 

 

  1. Создайте запрос для вывода номера отдела, фамилии служащего и фамилий всех служащих, работающих в одном отделе с данным служащим. Дайте столбцам соответствующие имена.
DEPARTMENT EMPLOYEE COLLEAGUE
Fay Hartstein
Hartstein Fay
Davies Matos
Davies Mourgos
Davies Rajs
Davies Vargas

…………………

select emp.department_id DEPARTMENT, emp.last_name EMPLOYEE, emp2.last_name COLLEAGUE from employees emp join employees emp2 on

(emp.department_id=emp2.department_id) where emp.employee_id!=emp2.employee_id order by emp.department_id;

DEPARTMENT EMPLOYEE COLLEAGUE
Fay Hartstein
Hartstein Fay
Tobias Raphaely
Baida Raphaely
Khoo Raphaely
Colmenares Khoo
Himuro Khoo
Tobias Khoo
Baida Khoo
Raphaely Khoo
Colmenares Baida
Himuro Baida
Tobias Baida
Raphaely Colmenares
Raphaely Baida
Colmenares Tobias
Himuro Tobias
Baida Tobias
Khoo Tobias
Raphaely Tobias
Colmenares Himuro
Tobias Himuro
Baida Himuro
Khoo Himuro
Raphaely Himuro

 

 

  1. Покажите структуру таблицы JOB_GRADES. Создайте запрос для вывода фамилии, должности, названия отдела, оклада и категории (GRADE_LEVEL) всех служащих.
Name Null? Type
GRADE_LEVEL   VARCHAR2(3)
LOWEST_SAL   NUMBER
HIGHEST_SAL   NUMBER

 

 

LAST_NAME JOB_ID DEPARTMENT_NAME SALARY GRA
Matos ST_CLERK Shipping A
Vargas ST_CLERK Shipping A
Lorentz IT_PROG IT B
Mourgos ST_MAN Shipping B
Rajs ST_CLERK Shipping B
Davies ST_CLERK Shipping B
Whalen AD_ASST Administration B

 

 

desc JOB_GRADES;

Name Null Type

----------- ---- -----------

GRADE_LEVEL VARCHAR2(3)

LOWEST_SAL NUMBER

HIGHEST_SAL NUMBER

 

select em.last_name, em.job_id, dep.department_name, em.salary, gr.grade_level from employees em join departments dep on (em.department_id=dep.department_id)

join job_grades gr on (em.salary between gr.lowest_sal and gr.highest_sal);

 

LAST_NAME JOB_ID DEPARTMENT_NAME SALARY GRADE_LEVEL
King AD_PRES Executive E
Kochhar AD_VP Executive E
De Haan AD_VP Executive E
Russell SA_MAN Sales D
Partners SA_MAN Sales D
Hartstein MK_MAN Marketing D
Higgins AC_MGR Accounting D
Errazuriz SA_MAN Sales D
Greenberg FI_MGR Finance D
Ozer SA_REP Sales D
Raphaely PU_MAN Purchasing D
Cambrault SA_MAN Sales D
Abel SA_REP Sales D
Vishney SA_REP Sales D
Zlotkey SA_MAN Sales D
Baer PR_REP Public Relations D
Bloom SA_REP Sales D
King SA_REP Sales D
Tucker SA_REP Sales D
Fox SA_REP Sales C

 

 

  1. Создайтезапросдлявыводафамилийидатнаймавсехслужащих, нанятыхпослеDavies.
LAST_NAME HIRE_DATE
Lorentz 07-FEB-99
Mourgos 16-NOV-99
Matos 15_MAR-98
Vargas 09-JUL-98
Zlotkey 29-JAN-00
Taylor 24-MAR-98
Grant 24-MAY-99
Fay 17-AUG-97

 

select emp.last_name, emp.hire_date from employees emp join employees emp2 on (emp.hire_date>emp2.hire_date)

where emp2.last_name='Davies' order by hire_date;

LAST_NAME HIRE_DATE
Tucker 30.01.05
Marlow 16.02.05
Bull 20.02.05
Everett 03.03.05
Errazuriz 10.03.05
Smith 10.03.05
Ozer 11.03.05
Hutton 19.03.05
Bernstein 24.03.05
Fripp 10.04.05
Chung 14.06.05
Austin 25.06.05
Nayer 16.07.05
Tobias 24.07.05
Dilly 13.08.05
Fay 17.08.05
Bissot 20.08.05

81 rows selected

 

  1. По всем служащим, нанятым раньше своих менеджеров, выведите фамилии и даты найма самих служащих, а также фамилии и даты найма их менеджеров. Назовите столбцы Employee, Emp Hired, Manager и ManagerHired.
Employee Emp Hired Manager Mgr hired
Whalen 17-SEP-87 Kochhar 21-SEP-89
Hunold 03-JAN-90 De Haan 13-JAN-93
Rajs 17-OCT-95 Mourgos 16-NOV-99
Davies 29-JAN-97 Mourgos 16-NOV-99
Matos 15-MAR-98 Mourgos 16-NOV-99
Vargas 09-JUL-98 Mourgos 16-NOV-99
Abel 11-MAY-96 Zlotkey 29-JAN-00
Taylor 24-MAR-98 Zlotkey 29-JAN-00
Grant 24-MAY-99 Zlotkey 29-JAN-00

 

select emp.last_name "Employee", emp.hire_date "Emp Hired", emp2.last_name "Manager", emp2.hire_date "ManagerHired" from employees emp join employees emp2 on (emp.manager_id=emp2.employee_id)

where emp.hire_date<emp2.hire_date;

Employee Emp Hired Manager ManagerHired
Kaufling 01.05.03 King 17.06.03
Raphaely 07.12.02 King 17.06.03
De Haan 13.01.01 King 17.06.03
Greenberg 17.08.02 Kochhar 21.09.05
Higgins 07.06.02 Kochhar 21.09.05
Baer 07.06.02 Kochhar 21.09.05
Mavris 07.06.02 Kochhar 21.09.05
Whalen 17.09.03 Kochhar 21.09.05
Austin 25.06.05 Hunold 03.01.06
Faviet 16.08.02 Greenberg 17.08.02
Bull 20.02.05 Fripp 10.04.05
Sarchand 27.01.04 Fripp 10.04.05
Marlow 16.02.05 Fripp 10.04.05
Everett 03.03.05 Vollman 10.10.05
Bell 04.02.04 Vollman 10.10.05
Ladwig 14.07.03 Vollman 10.10.05
Feeney 23.05.06 Mourgos 16.11.07
Walsh 24.04.06 Mourgos 16.11.07

37 rows selected

  1. Выведите номера, наименования и местоположение всех отделов, а также количество работающих в них сотрудников. Обеспечьтевыводотделов, вкоторыхнетсотрудников.
DEPARTMENT_ID DEPARTMENT_NAME LOCATION_ID COUNT(E.EMPLOYEE_ID)
Administration
Marketing
Shipping
IT
Sales
Executive
Accounting
Contracting

select dep.department_id, dep.department_name, dep.location_id, count(emp.employee_id) from employees emp right join departments dep on (dep.department_id=emp.department_id)

group by dep.department_id, dep.department_name, dep.location_id order by dep.department_id;

DEPARTMENT_ID DEPARTMENT_NAME LOCATION_ID COUNT(EMP.EMPLOYEE_ID)
Administration
Marketing
Purchasing
Human Resources
Shipping
IT
Public Relations
Sales
Executive
Finance
Accounting
Treasury
Corporate Tax
Control And Credit
Shareholder Services
Benefits
Manufacturing
Construction

 

 

  1. Какие должности имеются в отделах Administration и Executive, а также сколько сотрудников занимают эти должности? Выведите первыми наиболее часто встречаемые должности.
JOB_ID FREQUENCY
AD_VP
AD_ASST
AD_PRES

select emp.job_id, count(emp.job_id) "FREQUENCY" from employees emp join jobs on (emp.job_id=jobs.job_id) join departments dep on (dep.department_id=emp.department_id)

where dep.department_name in ('Administration', 'Executive') group by emp.job_id order by "FREQUENCY" desc;

JOB_ID FREQUENCY
AD_VP
AD_PRES
AD_ASST

 

  1. Покажите сотрудников, менеджеры которых имеют оклад выше $15000. выведите следующие сведения: фамилию сотрудника, фамилию менеджера, его оклад и уровень оклада (GRADE_LEVEL).
LAST_NAME MANAGER SALARY GRADE_LEVEL
Kochhar King E
De Haan King E
Mourgos King E
Zlotkey King E
Hartstein King E
Whalen Kochhar E
Higgins Kochhar E
Hunold De Haan E

select emp.last_name,emp2.last_name MANAGER,emp2.salary, grad.grade_level from employees emp join employees emp2 on (emp.manager_id=emp2.employee_id)

join job_grades grad on (emp2.salary between grad.lowest_sal and highest_sal)

where emp2.salary>15000;

LAST_NAME MANAGER SALARY GRADE_LEVEL
Hartstein King E
Kochhar King E
Zlotkey King E
Cambrault King E
Errazuriz King E
Partners King E
Russell King E
De Haan King E
Raphaely King E
Weiss King E
Fripp King E
Kaufling King E
Vollman King E
Mourgos King E
Baer Kochhar E
Mavris Kochhar E
Whalen Kochhar E
Greenberg Kochhar E
Higgins Kochhar E
Hunold De Haan E

 

 

  1. Напишите запрос для вывода фамилий, названия отдела, идентификатора местоположения отдела и города, в котором он находится, для всех служащих, зарабатывающих комиссионные.

select emp.last_name, dep.department_name, dep.location_id, loc.city from departments dep right join employees emp on (dep.department_id=emp.department_id)left

join locations loc on (dep.location_id=loc.location_id) where emp.commission_pct>0;

LAST_NAME DEPARTMENT_NAME LOCATION_ID CITY
Russell Sales Oxford
Partners Sales Oxford
Errazuriz Sales Oxford
Cambrault Sales Oxford
Zlotkey Sales Oxford
Tucker Sales Oxford
Bernstein Sales Oxford
Hall Sales Oxford
Olsen Sales Oxford
Cambrault Sales Oxford
Tuvault Sales Oxford
King Sales Oxford
Sully Sales Oxford
McEwen Sales Oxford
Smith Sales Oxford
Doran Sales Oxford
Sewall Sales Oxford
Vishney Sales Oxford
Greene Sales Oxford
Marvins Sales Oxford
Lee Sales Oxford
Ande Sales Oxford
Banda Sales Oxford
Ozer Sales Oxford
Bloom Sales Oxford
Fox Sales Oxford
Smith Sales Oxford
Bates Sales Oxford
Kumar Sales Oxford
Abel Sales Oxford
Hutton Sales Oxford
Taylor Sales Oxford
Livingston Sales Oxford
Johnson Sales Oxford
Grant      

 

LAST_NAME DEPARTMENT_NAME LOCATION_ID CITY
Zlotkey Sales Oxford
Abel Sales Oxford
Taylor Sales Oxford


<== предыдущая лекция | следующая лекция ==>
Практическое занятие 4 | Практическое занятие 6


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.936 сек.