- •Экзаменационный билет (Базы данных Студент и Human Resources)
- •Вывести названия департаментов, при этом для департаментов, у которых в названии два или более слов через пробел, выводить только второе слово.
- •Создать запрос, который позволит получить информацию о таблицах Вашей схемы:
- •Из заданных наборов символов исключить те наборы символов, которые отличаются только порядком. Например, заданы наборы:
Экзаменационный билет (Базы данных Студент и Human Resources)
Создать таблицу Test, состоящую из двух столбцов ID и Text. Столбец ID – ключевой, а столбец Text содержит символьную информацию, включающую цифры и символы. Требуется создать запрос, который выведет информацию из второго столбца в отсортированном виде. Сортировка должна быть произведена по следующим правилам: символьные выражения, начинающиеся с чисел должны быть отсортированы в порядке увеличения чисел, а в случае выражений с двумя одинаковыми числами – по алфавиту той части выражении, которая следует за числом, считая число менее приоритетным. Например:
Test |
9oiuy |
12astr |
76hjku |
76hjk8 |
123gfyu |
123piu |
765mmm |
Задачу решить без использования регулярных выражений.
Для таблицы, состоящей из двух столбцов, вывести только те строки, которые не содержат во втором столбце значений, имеющихся в первом столбце. Например, для таблицы. Например, для таблицы:
С1 |
С2 |
gfd |
tre |
jhk |
ghj |
uyt |
tre |
tre |
ff |
fff |
hh |
ghj |
asd |
Результат должен быть:
С1 |
С2 |
gfd |
tre |
jhk |
ghj |
uyt |
tre |
fff |
hh |
Вывести фамилии и имена сотрудников, у которых в фамилии или имени есть 3 одинаковые буквы.
Вывести названия департаментов, при этом для департаментов, у которых в названии два или более слов через пробел, выводить только второе слово.
Вывести информацию о сотрудниках и годах их работы. Первый столбец - годы (с 1987 по 2001), второй столбец - количество сотрудников, работавших в этом году в десятом департаменте, третий столбец - в двадцатом, четвертый - в тридцатом и так до 120-го департамента. Всего 13 столбцов вместе с годом и 15 строк.
Создать запрос для получения информации о количестве полученных студентами пятерок, четверок, троек и двоек по дням недели. Результат запроса должен быть представлен в виде:
|
Кол-во 5 |
Кол-во 4 |
Кол-во 3 |
Кол-во 2 |
Итого |
Понедельник |
|
|
|
|
|
Вторник |
|
|
|
|
|
Среда |
|
|
|
|
|
……. |
|
|
|
|
|
Итого: |
|
|
|
|
|
Первый столбец должен быть отсортирован по дням недели.
Создать запрос для вывода списка фамилий студентов-хвостистов с указанием дисциплин, которые им необходимо еще досдать в данную сессию. Названия дисциплин должны быть выведены в строчку через запятую и отсортированы по алфавиту.
Для заданного интервала лет вывести количество каждого дня недели в году. Результат представить в виде:
Год
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресенье
Выбрать сотрудников, для которых
- в таблице истории занятия должностей зафиксированы переходы на другую должность и
- в таблице истории занятия должностей отсутствуют сведения об их первой должности - той, которую они занимали при приеме на работу в компанию.
В результат вывести:
Идентификатор сотрудника.
Фамилию сотрудника.
Дату, когда сотрудник был принят на работу.
Идентификатор должности, которую занимает сотрудник в данный момент.
Идентификатор подразделения, к которому в данный момент приписан сотрудник.
Результат отсортировать по возрастанию по полям:
дата, когда сотрудник был принят на работу,
фамилия сотрудника.
Создать запрос для вывода информации о студентах, у которых интервал между датами сдачи экзаменов составляет менее трех дней. Информацию вывести в виде:
Фамилия
Дисциплина 1
Дата сдачи1
Дисциплина 2
Дата сдачи 2
Создать запрос для получения сведений (Фамилия, Группа, Специальность, Отличник/Хорошист) обо всех отличниках в группе, а если таковых нет, то обо всех хорошистах. (Под отличниками понимаем студентов, сдавших все предусмотренные учебные планом экзамены на отлично с первого раза. Под хорошистами понимаем студентов, сдавших все предусмотренные учебные планом экзамены на отлично или хорошо с первого раза).
Одной командой SELECT вывести список сотрудников компании, имеющих наименьшие оклад среди сотрудников подразделения, в котором они работают.
Сведения о сотрудниках, для которых неизвестно подразделение компании, к которому они приписаны выводить не нужно.
В результат вывести:
1.Идентификатор подразделения компании, к которому приписан сотрудник.
2. Фамилию сотрудника.
3.Оклад, установленный сотруднику.
В команде SELECT запрещается использовать:
Фразы WITH, GROUP BY,HAVING, ORDER BY, CONNECT BY, START WITH,
Условия IN, =ANY, =SOME, NOT IN, <> ALL, EXISTS, NOT EXISTS,
Подзапросы (subqueries), в том числе подзапросы во фразе FROM,
Иерархические запросы (hierarchical queries),
Скалярное выражение подзапроса (scalar subquery expression),
Агрегатные функции (aggregate functions) – MIN,MAX, SUM,COUNT, AVG и др.
Аналитические функции (analytic functions)
Вычислить число Пи с точностью 40 знаков после запятой. Для расчета использовать быстро сходящуюся последовательность
Одной командой SELECT вывести информацию обо всех сотрудниках, которые приняты на работу раньше руководителя подразделения компании, к которому они приписаны в данный момент. В результате вывести следующие данные:
Название подразделения компании
Имя сотрудника
Фамилия сотрудника
На сколько суток раньше руководителя подразделения данный сотрудник был принят на работу
Вывести в виде таблицы доли зарплаты сотрудников в общем фонде зарплаты в виде строк по каждому из сотрудников, предваряемых строкой по отделу в целом.
Название отдела
Фамилия сотрудника или пусто, если строка относится к отделу в целом
Доля зарплаты сотрудника или отдела в процентах с точностью 2 знака после запятой
Общую зарплату считать для всех сотрудников, у которых есть указание о принадлежности к отделу, выводить только отделы, в которых есть сотрудники. Следует обеспечить общую сумму долей отделов равной 100%, а в каждом отделе сумма долей сотрудников должна быть равна доле отдела в целом. Для выравнивания использовать последних по алфавиту сотрудников в отделе и последний по алфавиту отдел.
Таблица должна быть упорядочена по названию отдела, фамилии сотрудника.
Для каждого подразделения компании создать список рассылки сотрудникам, используя столбцы Email и Department_id таблицы EMPLOYEES. Одним предложением SELECT нужно вывести таблицу из двух столбцов:
1. Идентификатор подразделения - числовой столбец, представляющий идентификатор подразделения компании.
2. Список адресов сотрудников данного подразделения - символьный столбец, представляющий адреса электронной почты для всех сотрудников подразделения, заданного в первом столбце строки
Адрес каждого сотрудника должен быть представлен значением столбца Email таблицы EMPLOYEES, дополненным постфиксом @АСМЕ.СОМ.
Адреса в списке должны быть разделены символом ';' (точка с запятой). В конце строки списка адресов точки с запятой быть НЕ ДОЛЖНО.
Адреса в списке должны быть отсортированы в порядке возрастания их символьных значений слева направо.
Все адреса должны быть представлены заглавными буквами.
Выводимый результат должен удовлетворять следующим условиям:
Строки должны быть отсортированы в порядке возрастания идентификаторов подразделений компании.
Подразделения с пустыми значениями номера Department_id должны быть исключены.
Пример выводимой таблицы:
DEPARTMENT_ID |
EMPS_IN_DEPT |
10 |
JWHALEN@ACME.COM |
30 |
AKHOO@ACME.COM;DRAPHEAL@ACME.COM;GHIMURO@ACME.COM |
5 0 |
ABULLOACME.COM;ACABRIO@ACME.COM;AFRIPPiACME.COM |