Программный анализ компании

Информация о местоположении отдела продаж компании и обо всех работниках. Средняя зарплата за годы, в которые были начисления не менее чем за три месяцев. Соединение не по равенству, объединение таблиц: внутреннее, естественное, трёх и большего числа.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 29.05.2014
Размер файла 502,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ЛАБОРАТОРНАЯ

ПРОГРАММНЫЙ АНАЛИЗ КОМПАНИИ

1. Выдать информацию о местоположении отдела продаж (SALES) компании.

SELECT DEPTADDR FROM DEPT WHERE DEPTNAME='SALES';

2. Выдать информацию об отделах, расположенных в Chicago и New York.

SELECT * FROM DEPT WHERE DEPTADDR='CHICAGO' OR DEPTADDR='NEW YORK';

ФУНКЦИИ:

3. Найти минимальную заработную плату, начисленную в 2007 году.

SELECT MIN(SALVALUE) FROM SALARY WHERE YEAR='2007';

4. Выдать информацию обо всех работниках, родившихся не позднее 1 января 1960 года.

SELECT * FROM EMP WHERE BIRTHDATE<=to_date('01-01-1960','dd-mm-yyyy');

5. Подсчитать число работников, сведения о которых имеются в базе данных.

SELECT COUNT(*) FROM EMP;

6. Найти работников, чьё имя состоит из одного слова. Имена выдать на нижнем регистре, с удалением стоящей справа буквы t.

SELECT substr(empname,1,length(empname)-1) FROM emp WHERE empname LIKE '%T' AND empname NOT LIKE '% %'

UNION

SELECT empname FROM emp WHERE empname NOT LIKE '%T' AND empname NOT LIKE '% %';

7. Выдать информацию о работниках, указав дату рождения в формате день(число), месяц(название), год(название).

SELECT empno, empname,TO_CHAR(birthdate, 'DD MONTH YEAR') FROM emp;

Тоже, но год числом.

SELECT empno, empname,TO_CHAR(birthdate, 'DD MONTH YYYY') FROM emp; работник зарплата таблица

8. Выдать информацию о должностях, изменив названия должности “CLERK” и “DRIVER” на “WORKER”.

SELECT jobno, REPLACE(REPLACE(jobname,'CLERK','WORKER'),'DRIVER','WORKER'), minsalary FROM job;

HAVING:

9. Определите среднюю зарплату за годы, в которые были начисления не менее чем за три месяцев.

SELECT year,avg(salvalue) FROM salary GROUP BY year HAVING count(month)>=3;

СОЕДИНЕНИЕ ПО РАВЕНСТВУ:

10. Выведете ведомость получения зарплаты с указанием имен служащих.

SELECT salary.salaryno,emp.empname,salary.month,salary.year,salary.salvalue FROM salary,emp WHERE emp.empno=salary.empno ORDER BY salary.salaryno;

СОЕДИНЕНИЕ НЕ ПО РАВЕНСТВУ:

11. Укажите сведения о начислении сотрудникам зарплаты, попадающей в вилку: минимальный оклад по должности - минимальный оклад по должности плюс пятьсот. Укажите соответствующую вилке должность.

SELECT salary.*,job.minsalary,job.jobname FROM salary INNER JOIN career ON salary.empno=career.empno INNER JOIN job ON career.jobno=job.jobno WHERE salary.salvalue BETWEEN (SELECT minsalary FROM job j WHERE j.jobno=job.jobno) AND (SELECT minsalary+500 FROM job j WHERE j.jobno=job.jobno);

Объединение таблиц:

Внутреннее:

12. Укажите сведения о заработной плате, совпадающей с минимальными окладами по должностям (с указанием этих должностей).

SELECT salary.*,job.minsalary,job.jobname FROM salary INNER JOIN career ON salary.empno=career.empno INNER JOIN job ON career.jobno=job.jobno WHERE salary.salvalue=(SELECT minsalary FROM job j WHERE j.jobno=job.jobno);

Естественное:

11. Найдите сведения о карьере сотрудников с указанием вместо номера сотрудника его имени.

SELECT c.careerno,c.jobno,emp.empname,c.deptno,c.startdate,c.enddate FROM career c NATURAL JOIN emp;

Простое внутреннее соединение:

12. Найдите сведения о карьере сотрудников с указанием вместо номера сотрудника его имени.

SELECT c.careerno,c.jobno,emp.empname,c.deptno,c.startdate,c.enddate FROM career c INNER JOIN emp ON c.empno=emp.empno;

Объединение трёх и большего числа таблиц:

13. Выдайте сведения о карьере сотрудников с указанием их имён, наименования должности, и названия отдела.

SELECT c.careerno,c.jobno,emp.empname,job.jobname,dept.deptname,c.deptno,c.startdate,c.enddate FROM career c, emp, job, dept WHERE c.empno=emp.empno AND c.jobno=job.jobno AND dept.deptno=c.deptno;

ВНЕШНЕЕ ОБЪЕДИНЕНИЕ:

14. Выдайте сведения о карьере сотрудников с указанием их имён.

SELECT c.careerno,c.jobno,emp.empname,c.deptno,c.startdate,c.enddate FROM career c FULL OUTER JOIN emp ON c.empno=emp.empno WHERE c.empno IS NOT NULL;

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.