русс | укр

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

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

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

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


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

Практическое занятие 3, часть 2


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


  • Составление запросов, требующих использования числовых, символьных функций и функций для работы с датами.
  • Использование конкатенации с функциями.
  • Составление запросов, нечувствительных к регистру символов, для проверки полезности символьных функций.
  • Вычисление продолжительности работы служащего в месяцах и годах.
  • Определение даты аттестации служащего.
  1. Получите по каждому служащему отчёт в следующем виде:
    <фамилия> зарабатывает <оклад> в месяц, но желает <утроенный оклад>. Назовите столбец Dream Salaries

select last_name||' зарабатывает '||to_char(salary,'fm$999,999.00')||' в месяц, но желает ' ||to_char(salary*3,'fm$999,999.00') "Dream Salaries" from employees order by employee_id;

 

Dream Salaries
King зарабатывает $24,000.00 в месяц, но желает $72,000.00
Kochhar зарабатывает $17,000.00 в месяц, но желает $51,000.00
De Haan зарабатывает $17,000.00 в месяц, но желает $51,000.00
Hunold зарабатывает $9,000.00 в месяц, но желает $27,000.00
Ernst зарабатывает $6,000.00 в месяц, но желает $18,000.00
Austin зарабатывает $4,800.00 в месяц, но желает $14,400.00
Pataballa зарабатывает $4,800.00 в месяц, но желает $14,400.00
Lorentz зарабатывает $4,200.00 в месяц, но желает $12,600.00
Greenberg зарабатывает $12,000.00 в месяц, но желает $36,000.00
Faviet зарабатывает $9,000.00 в месяц, но желает $27,000.00
Chen зарабатывает $8,200.00 в месяц, но желает $24,600.00
Sciarra зарабатывает $7,700.00 в месяц, но желает $23,100.00
Urman зарабатывает $7,800.00 в месяц, но желает $23,400.00
Popp зарабатывает $6,900.00 в месяц, но желает $20,700.00
Raphaely зарабатывает $11,000.00 в месяц, но желает $33,000.00
Khoo зарабатывает $3,100.00 в месяц, но желает $9,300.00
Baida зарабатывает $2,900.00 в месяц, но желает $8,700.00
Tobias зарабатывает $2,800.00 в месяц, но желает $8,400.00
Himuro зарабатывает $2,600.00 в месяц, но желает $7,800.00
Colmenares зарабатывает $2,500.00 в месяц, но желает $7,500.00

107 rows selected



 

Dream Salaries
King earns $24,000.00 monthly but wants $72,000.00
Kochhar earns $17,000.00 monthly but wants $51,000.00
De Haan earns $17,000.00 monthly but wants $51,000.00
Hunold earns $9,000.00 monthly but wants $27,000.00
Ernst earns $6,000.00 monthly but wants $18,000.00
Lorentz earns $4,200.00 monthly but wants $12,600.00
Mourgos earns $5,800.00 monthly but wants $17,400.00
Rajs earns $3,500.00 monthly but wants $10,500.00
Davies earns $3,100.00 monthly but wants $9,300.00

…………

20 rows selected

2. Напишите запрос для вывода фамилий и окладов всех служащих. Назовите выходной столбец SALARY. Длина столбца SALARY – 15 символов с заполнением символом $.

LAST_NAME SALARY
King $$$$$$$$$$24000
Kochhar $$$$$$$$$$17000
De Haan $$$$$$$$$$17000
Hunold $$$$$$$$$$$9000
Ernst $$$$$$$$$$$6000
Lorentz $$$$$$$$$$$4200
Mourgos $$$$$$$$$$$5800
Rajs $$$$$$$$$$$3500
Davies $$$$$$$$$$$3100
Matos $$$$$$$$$$$2600

………………

20 rows selected

select last_name, lpad(salary,15,'$') salary from employees order by employee_id;

LAST_NAME SALARY
King $$$$$$$$$$24000
Kochhar $$$$$$$$$$17000
De Haan $$$$$$$$$$17000
Hunold $$$$$$$$$$$9000
Ernst $$$$$$$$$$$6000
Austin $$$$$$$$$$$4800
Pataballa $$$$$$$$$$$4800
Lorentz $$$$$$$$$$$4200
Greenberg $$$$$$$$$$12000
Faviet $$$$$$$$$$$9000
Chen $$$$$$$$$$$8200
Sciarra $$$$$$$$$$$7700
Urman $$$$$$$$$$$7800
Popp $$$$$$$$$$$6900
Raphaely $$$$$$$$$$11000
Khoo $$$$$$$$$$$3100
Baida $$$$$$$$$$$2900
Tobias $$$$$$$$$$$2800
Himuro $$$$$$$$$$$2600

107 rows selected

 

  1. Для каждого служащего выведите фамилию, дату найма и дату пересмотра зарплаты, которая приходится на первый понедельник после 6 месяцев работы. Назовите столбец REVIEW. Формат даты при выводе имеет вид: “Monday, the Thirty-First of MM, YYYY”.
LAST_NAME HIRE_DATE REVIEW
King 17-JUN-87 Monday, the Thirty-First of December, 1987
Kochhar 21-SEP-89 Monday, the Thirty-Sixth of March, 1990
De Haan 13-JAN-93 Monday, the Nineteenth of July, 1993
Hunold 03-JAN-90 Monday, the Ninth of July, 1990

20 rows selected

 

select last_name, to_char(hire_date,'dd-MON-yy','NLS_DATE_LANGUAGE = AMERICAN') HIRE_DATE,

to_char(next_day(add_months(hire_date,6), 'ПОНЕДЕЛЬНИК'),'fmDay, "the" Ddspth "of" Month, YYYY','NLS_DATE_LANGUAGE = AMERICAN') "REVIEW"

from employees order by employee_id;

 

LAST_NAME HIRE_DATE REVIEW
King 17-JUN-03 Monday, the Twenty-Second of December, 2003
Kochhar 21-SEP-05 Monday, the Twenty-Seventh of March, 2006
De Haan 13-JAN-01 Monday, the Sixteenth of July, 2001
Hunold 03-JAN-06 Monday, the Tenth of July, 2006
Ernst 21-MAY-07 Monday, the Twenty-Sixth of November, 2007
Austin 25-JUN-05 Monday, the Twenty-Sixth of December, 2005
Pataballa 05-FEB-06 Monday, the Seventh of August, 2006
Lorentz 07-FEB-07 Monday, the Thirteenth of August, 2007
Greenberg 17-AUG-02 Monday, the Twenty-Fourth of February, 2003
Faviet 16-AUG-02 Monday, the Seventeenth of February, 2003
Chen 28-SEP-05 Monday, the Third of April, 2006
Sciarra 30-SEP-05 Monday, the Third of April, 2006
Urman 07-MAR-06 Monday, the Eleventh of September, 2006
Popp 07-DEC-07 Monday, the Ninth of June, 2008
Raphaely 07-DEC-02 Monday, the Ninth of June, 2003
Khoo 18-MAY-03 Monday, the Twenty-Fourth of November, 2003
Baida 24-DEC-05 Monday, the Twenty-Sixth of June, 2006
Tobias 24-JUL-05 Monday, the Thirtieth of January, 2006
Himuro 15-NOV-06 Monday, the Twenty-First of May, 2007

107 rows selected

  1. По каждому служащему выведите фамилию, дату найма и день недели, когда он был нанят на работу. Назовите последний столбец DAY. Отсортируйте результаты по дням недели.
LAST_NAME HIRE_DATE DAY
Grant 24-MAY-99 MONDAY
Ernst 21-MAY-91 TUESDAY
Mourgos 16-NOV-99 TUESDAY
Taylor 24-MAR-98 TUESDAY
Rajs 17-OCT-95 TUESDAY
Gietz 07-JUN-94 TUESDAY
Higgins 07-JUN-94 TUESDAY
King 17-JUN-87 WEDNESDAY
De Haan 13-JAN-93 WEDNESDAY

………………

20 rows selected

select last_name, to_char(hire_date,'dd-MON-YY','NLS_DATE_LANGUAGE = AMERICAN') "hire_date "

, to_char(hire_date,'DAY', 'NLS_DATE_LANGUAGE = AMERICAN') day from employees order by TO_CHAR(hire_date,'D');

LAST_NAME hire_date DAY
Mallin 14-JUN-04 MONDAY
Banda 21-APR-08 MONDAY
Ladwig 14-JUL-03 MONDAY
Vollman 10-OCT-05 MONDAY
Walsh 24-APR-06 MONDAY
Kumar 21-APR-08 MONDAY
Ernst 21-MAY-07 MONDAY
Ande 24-MAR-08 MONDAY
Greene 19-MAR-07 MONDAY
Cambrault 15-OCT-07 MONDAY
Olson 10-APR-07 TUESDAY
Urman 07-MAR-06 TUESDAY
Hunold 03-JAN-06 TUESDAY
King 17-JUN-03 TUESDAY
Feeney 23-MAY-06 TUESDAY
Hartstein 17-FEB-04 TUESDAY
Chen 28-SEP-05 WEDNESDAY
Gee 12-DEC-07 WEDNESDAY
Kochhar 21-SEP-05 WEDNESDAY
Cabrio 07-FEB-07 WEDNESDAY
Fay 17-AUG-05 WEDNESDAY
Bell 04-FEB-04 WEDNESDAY
Whalen 17-SEP-03 WEDNESDAY
Perkins 19-DEC-07 WEDNESDAY

 

107 rows selected

  1. Напишите запрос для вывода фамилии и суммы комиссионных каждого служащего. Если служащий не зарабатывает комиссионных, укажите в столбце «No Commission». Назовите столбец COMM.
LAST_NAME COMM
King No Commission
Kochhar No Commission
De Haan No Commission
Hunold No Commission
Ernst No Commission
Lorentz No Commission
Mourgos No Commission
Rajs No Commission
Davies No Commission
Matos No Commission
Vargas No Commission
Zlotkey .2
Abel .3

…………….

20 rows selected
select last_name, NVL(to_char(commission_pct,'fm.99'),'No Commission')COMM from employees order by employee_id;

LAST_NAME COMM
King No Commission
Kochhar No Commission
De Haan No Commission
Hunold No Commission
Ernst No Commission
Austin No Commission
Pataballa No Commission
Lorentz No Commission
Greenberg No Commission
Faviet No Commission
Russell .4
Partners .3
Errazuriz .3
Cambrault .3
Zlotkey .2
Tucker .3
Bernstein .25
Hall .25
Olsen .2
Cambrault .2
Tuvault .15
King .35
Sully .35
McEwen .35
Smith .3
Doran .3
Sewall .25
Vishney .25

 

107 rows selected

 

  1. Напишите запрос для отображения фамилий сотрудников и их заработной платы в виде гистограммы, состоящей из звёздочек. Каждая звёздочка означает 1000$. Строки должны быть отсортированы по заработной плате в убывающем порядке. Результат должен быть выведен одним столбцом, озаглавленным как EMPLOYEES AND THEIR SALARIES.
EMPLOYEES AND THEIR SALARIES
King************************
Kochhar*****************
De Haan*****************
Hartstein*************
Higgins************
Abel***********

………………….

20 rows selected
select last_name||rpad('*',trunc(salary/1000),'*') "EMPLOYEES AND THEIR SALARIES" from employees order by salary desc;

 

EMPLOYEES AND THEIR SALARIES
King************************
Kochhar*****************
De Haan*****************
Russell**************
Partners*************
Hartstein*************
Higgins************
Greenberg************
Errazuriz************
Ozer***********
Cambrault***********
Abel***********
Raphaely***********
Vishney**********
Zlotkey**********
Bloom**********
King**********
Tucker**********

107 rows selected

  1. Используя функцию DECODE, напишите запрос для отображения должности сотрудника и её разряда (grade). Разряд каждого типа должности JOB_ID приведён в таблице.
Должность Разряд
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Другая

 

JOB_ID G
AD_PRES A
AD_VP
AD_VP
IT_PROG C
IT_PROG C
IT_PROG C
ST_MAN B
ST_CLERK E

…………………..

20 rows selected

select job_id, decode(JOB_ID,'AD_PRES','A','ST_MAN','B','IT_PROG','C','SA_REP','D','ST_CLERK','E','0') G from employees;

 

JOB_ID G
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES A
AD_VP
AD_VP
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG C
IT_PROG C
SA_REP D
SA_REP D
SA_REP D
SA_REP D

107 rows selected

  1. Перепишите команду из предыдущего задания, используя синтаксис выражения CASE.

 

select job_id, case JOB_ID when 'AD_PRES'then'A' when 'ST_MAN' then 'B'when 'IT_PROG'then'C'when'SA_REP'then'D'when'ST_CLERK'then'E' else'0' end G from employees;

JOB_ID G
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES A
AD_VP
AD_VP
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG C
IT_PROG C
SA_REP D
SA_REP D
SA_REP D
SA_REP D

107 rows selected

 



<== предыдущая лекция | следующая лекция ==>
 | 


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


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

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

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


 


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

 
 

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

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