
- •Дана символьная строка, в которой отдельные слова разделены любым количеством пробелов.
- •//Условие задачи:
- •Определить список последовательностей подчиненности от преподавателей, не имеющих начальника, до преподавателей, не имеющих подчиненных. Результат представить в виде:
- •Посчитать кол-во 29.02 между двумя заданными датами
- •Показать накопленную сумму сотрудников по их отделам.
- •Вывести все даты за 2011 год и соответствующие дни недели без использования иерархических запросов и Model.
- •В произвольной строке, состоящей из символьных элементов, разделенных запятыми, отсортировать элементы по алфавиту. Например, символьную строку
- •Определить временной интервал между заданной и текущей датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии сотрудников, начальники которых работают в другой стране.В результат вывести:
- •Для таблиц схемы, имеющих индексы вывести:
- •Определить дату начала ближайшего к заданной дате Уимблдонского турнира, который начинается за шесть недель до первого понедельника августа
- •Для каждой таблицы схемы вывести:
- •Определить сколько лет, месяцев и дней осталось до президентских выборов в сша, которые проводятся по високосным годам в первый понедельник после первого вторника ноября.
- •Дана таблица из двух столбцов: 1 - строка, 2 – число. Требуется написать запрос, в результате
- •Написать запрос, выдающий отчёт о суммарных выплатах сотрудникам, непосредственно
- •Определить временной интервал между датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии всех сотрудников через запятую столько раз сколько символов в их фамилии
- •Для каждой таблицы схемы вывести:
- •Создать запрос для определения сумм зарплат сотрудников от сотрудников, не имеющих менеджеров, до сотрудников, не имеющих подчиненных.
- •Выборы президента сша
- •Плотный ранг
- •Для всех связей между таблицами схемы вывести:
- •Из заданных наборов символов исключить те наборы символов, которые отличаются только порядком. Например, заданы наборы:
- •В названии отдела вывести только второе слово, если название состоит из двух и более слов, иначе вывести первое слово.
- •Создать запрос для определения списка городов, в которых расположены департаменты, суммарная заработная плата в которых выше средней суммарной заработной платы в департаментах этого города.
- •Имеется таблица:
- •Определить сумму цифр в произвольной символьной строке.
- •Для каждой таблицы схемы вывести:
- •Для каждой таблицы схемы вывести:
- •Сформировать отчёт, содержащий номер отдела, название отдела, имена и фамилии сотрудников, а также их зарплату в виде:
- •Условия нет
- •Условия нет
- •Вывести фамилии сотрудников, получающих зарплату выше средней в отделе, в котором они работают.
- •Не помню задание, похоже на костяна, мишаню и лену
- •Для всех таблиц схемы вывести:
- •Задания нет
- •Сумма цифр в строке
- •Создать запрос для вывода фамилий, последних должностей и дат приема на работу сотрудников, информация о работе
- •"Определить ближайший к заданной дате год, когда 29 февраля придется на воскресенье. "
- •В таблицу записана информация об удачных и неудачных попытках подключения к базе данных.
Для каждой таблицы схемы вывести:
? Имя таблицы;
? Имя первого столбца первого ограничения уникальности;
? Имя второго столбца первого ограничения уникальности;
? Общее число столбцов в первом ограничении уникальности;
? Имя первого столбца второго ограничения уникальности;
? Имя второго столбца второго ограничения уникальности;
? Общее число столбцов во втором ограничении уникальности;
? Общее число ограничений уникальности
СОЗДАЁМ ТАБЛИЦУ:
CREATE TABLE practice (first_name varchar2(25) not null, last_name varchar2(30) not null,
phone varchar(10) not null,Height number(5) not null,weight number(3) not null,age number(2) not null, email varchar2(15) not null,
constraint U1 unique(first_name,last_name,phone), constraint U2 unique(height,weight,age),constraint U3 unique(email));
РЕШЕНИЕ:
select ut.table_name, ans."1'st column unique constr", ans."2'nd column unique constr", ans."Total count 1st unique constr",
ans."1'st column 2'nd unique constr", ans."2'nd column 2'nd unique constr", ans."Total count 2'nd unique constr", ans."Total"
from user_tables ut left join
(SELECT rez1.table_name AS "Table name", rez1.c1 AS "1'st column unique constr",
rez1.c2 AS "2'nd column unique constr",rez1."sum1" AS "Total count 1st unique constr",
rez1.c1_2 AS "1'st column 2'nd unique constr", rez1.c2_2 AS "2'nd column 2'nd unique constr" ,
rez1.sum2 AS "Total count 2'nd unique constr",rez2.Cnt AS "Total"
FROM (SELECT r.table_name, r1.c1,r1.c2,r1."sum1", r1.c1_2, r1.c2_2,r1.sum2
FROM (SELECT table_name, min(zzz) mi
FROM (SELECT t1.*, rownum zzz
FROM (SELECT distinct q.table_name, q.constraint_name
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U') t1
LEFT JOIN
(SELECT distinct table_name, constraint_name
FROM user_constraints
WHERE constraint_type = 'U') t2
ON t1.table_name = t2.table_name and t1.constraint_name != t2.constraint_name)
group by table_name) r
LEFT JOIN
(SELECT t1.table_name, t1.c1, t1.c2, t1."sum1", t2.table_name table_name2, t2.c1 c1_2, t2.c2 c2_2, t2."sum1" sum2, rownum zzz
FROM (SELECT t1.table_name, c1,c2, t."sum1",t.constraint_name
FROM (SELECT x.table_name,x.column_name c1,y.column_name c2,x.constraint_name
FROM (SELECT q.table_name, q.constraint_name,w.column_name
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U' and position = 1) x
LEFT JOIN
(SELECT q.constraint_name,w.column_name
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U' and position = 2) y
ON x.constraint_name = y.constraint_name) t1
INNER JOIN
(SELECT q.constraint_name, max(position) AS "sum1"
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U'
GROUP BY q.constraint_name) t
ON t1.constraint_name = t.constraint_name) t1
LEFT JOIN
(SELECT t1.table_name, c1,c2, t."sum1",t.constraint_name
FROM (select x.table_name,x.column_name c1,y.column_name c2,x.constraint_name
FROM (select q.table_name, q.constraint_name,w.column_name
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U' and position = 1) x
LEFT JOIN
(SELECT q.constraint_name,w.column_name
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U' and position = 2) y
ON x.constraint_name = y.constraint_name) t1
INNER JOIN
(SELECT q.constraint_name, max(position) AS "sum1"
FROM user_constraints q left join user_cons_columns w
ON q.constraint_name = w.constraint_name
WHERE constraint_type = 'U'
GROUP BY q.constraint_name) t
ON t1.constraint_name = t.constraint_name) t2
ON t1.table_name = t2.table_name and t1.constraint_name != t2.constraint_name) r1
ON r.table_name = r1.table_name and r.mi = r1.zzz) rez1
LEFT JOIN
(SELECT table_name, count(*) AS Cnt
FROM (select distinct table_name, constraint_name
FROM user_constraints
WHERE constraint_type = 'U')
GROUP BY table_name) rez2
ON rez1.table_name = rez2.table_name) ans
on ut.table_name = ans."Table name"
order by "Total";