Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала
- Название:Oracle SQL. 100 шагов от новичка до профессионала
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:11
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.
Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
FIRST_ROWS (n)
Подсказка говорит оптимизатору, что необходимо выбирать заданное количество первых строк.
USE_NL
Подсказка для оптимизатора задает использование вложенных циклов при объединении заданных таблиц.
USE_HASH
Подсказка для оптимизатора задает использование HASH, хэш-таблицы, тип объединения при объединении заданных таблиц.
Примеры
Использование подсказки USE_NL:
Рисунок 249. План запроса с USE_NL
Использование подсказки USE_HASH:
Рисунок 250. План запроса с USE_HASH
Использование подсказки USE_MERGE:
Рисунок 251. План запроса с USE_MERGE
Использование ORDERED:
Рисунок 252. План запроса ORDERED
Использование нескольких подсказок оптимизаторов одновременно:
Рисунок 253. План запроса USE_NL
Важные замечания
• Подсказка по размеру имеет ограничение не более 255 символов.
• Если по базе данных не собрана статистика, то некоторые подсказки могут работать неэффективно.
• Для корректного использования подсказок необходимо, чтобы в базе данных был установлен режим (CHOOSE).
Вопросы учеников
Какие подсказки лучше использовать в запросах с объединением таблиц?
В зависимости от ситуации можно использовать USE_HASH, USE_NL.
Какие подсказки лучше использовать, когда важно сначала получить первые строки запроса?
Для этого есть специальная подсказка FIRST_ROWS, FIRST_ROWS (1).
Какие подсказки лучше использовать, когда важны все строки запроса?
Для этого есть специальная подсказка ALL_ROWS.
Контрольные вопросы и задания для самостоятельного выполнения
1. Повторите материалы данной главы.
2. Поясните, для чего используется подсказка INDEX.
3. Поясните, для чего используется подсказка ORDERED.
4. Поясните, в каких случаях лучше использовать подсказку USE_MERGE.
Шаг 98. Задачи с собеседований в крупные компании и фирмы
Практика
Используя регулярные выражения, подсчитать количество букв О в слове МОЛОКО.
Решение:
Используя регулярные выражения, найти в таблице tтакие записи, где в колонке n только цифры.
Решение:
Есть таблица логов OPLOG (op VARCHAR2 (50), status VARCHAR2 (50), opdt DATE).
Примеры заполнения:
Найти, сколько времени выполнялась каждая операция.
Решение:
Даны две таблицы, созданные следующим образом:
Напишите запрос, который вернет строки из таблицы TEST_A, ID которых нет в таблице TEST_B, НЕ используя ключевого слова NOT.
Решение:
Вывести рабочие дни в следующем месяце, выходные не учитываются.
Решение:
Есть таблица:
В таблице есть дублирующиеся записи, задача — удалить эти дубли, используя аналитические функции.
Решение:
Есть таблица:
Найти пять менеджеров с лучшими продажами в каждом отделе, учесть, что у менеджеров могут быть равные продажи.
Решение:
Есть таблицы:
Необходимо с помощью одного запроса внести названия таблиц в t_t, названия индексов в таблицу t_i из представления ALL_OBJECTS, где OWNER = SYS.
Решение:
Есть таблицы TEST_A и TEST_B:
Необходимо обновить данные в таблице TEST_B из TEST_А по идентификатору ID и добавить недостающие записи, сделать это с помощью одной команды.
Решение:
Необходимо размножить записи в таблице одним запросом.
Решение:
Шаг 99. Задачи для самостоятельного выполнения
Практика
• Выведите календарь с помощью запроса за 2020 год в формате «день, месяц, год»; исключите из календаря выходные и праздники.
• Выведите с помощью запроса таблицу синусов от 1 до 100, исключите из данной таблицы синусы нечетных чисел.
• Выведите данные из таблицы MAN в следующем формате: Имя, Фамилия; Фамилия; Фамилия3:
Максим Иванов; Алексеев; Максимов;
Андрей Фролов; Ростовский, то есть имя, а далее фамилии с этим именем через точку с запятой.
• Из таблицы «город» (CITY) подсчитайте количество городов с количеством населения> 1 000 000 и населением <1 000 000 одним запросом, общее количество городов.
• Есть таблица: валюта, курс, дата курса валюты. Найти среднее по курсам заданной валюты за 20 дней.
• Найти дату с максимальным курсом валюты, вывести в формате «курс, дата, цена».
• Найти первые три курса каждой валюты по убыванию.
• Объясните, когда необходимо использовать индекс по функции.
• Создайте представление, выбирающее данные из таблиц CITY, MAN, AUTO. Напишите запрос к этому представлению.
• Поясните назначение внешних таблиц EXTERNAL TABLE.
• Есть три таблицы AUTOBMW, AUTOLADA, AUTOOTHER. Напишите запрос, который бы добавлял данные одновременно в каждую из таблиц в зависимости от марки автомобиля.
• Напишите запрос, который бы считал данные в таблице AUTO по количеству автомобилей каждого цвета, общие итоги по всем автомобилям.
• Удалите данные из таблицы AUTO1. Восстановите данные с помощью ретроспективного запроса.
• Создайте копию таблицы AUTO с помощью запроса.
• Транспонируйте запрос к таблице МАN, где в заголовках столбцов — имена людей, строчки — фамилии, а в пересечении — возраст этих людей.
• Повторите операцию PIVOT, объясните назначение данного оператора.
• Выберите данные из таблицы AUTO. Выведите данные в следующем виде: марка, цвет и дополнительная колонка. Если марка автомобиля LADA, тогда выведите: это автомобиль Лада, если BMW, выведите: это авто BMW, иначе: это другой автомобиль.
• Соедините две таблицы AUTO, MAN, выведите данные из этих таблиц, используйте WITH.
• Объясните разницу между TIMESTAMP и DATE.
• Объясните, что обозначает NESTED LOOP в плане запроса.
Шаг 100. Подводим итоги. Задачи. Что изучать и читать дальше?
Проверьте ваши знания, попробуйте найти ответы на следующие вопросы по основным темам.
Несколько теоретических вопросов для закрепления учебного материала из книги, постарайтесь ответить на них самостоятельно.
• Поясните назначение предиката ANY.
• Объясните, чем отличаются RIGHT JOIN, LEFT JOIN, INNER JOIN.
• Для чего нужен оператор MINUS в SQL?
• Поясните назначение функции SUBSTR.
• Расскажите, как добавить к текущей дате 2 дня, какие функции для этого следует использовать.
• Для чего в SQL применяется DECODE и CASE? Поясните различие этих операторов.
• Для каких задач чаще всего применяется аналитический SQL?
• Для чего используются аналитические функции LAG, LEAD?
• Поясните назначение команды MODEL.
• Какой командой SQL можно добавить данные одновременно в три таблицы?
• Какой командой можно подвести итог в запросе?
• Что такое режим SERIALIZABLE, когда он используется?
Интервал:
Закладка: