Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала
- Название:Oracle SQL. 100 шагов от новичка до профессионала
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:11
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.
Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Вывести из таблицы CITY название города (CITYNAME), квадратный корень от количества населения (PEOPLES), где значение кода города (CITYCODE) делится нацело на 3.
Рисунок 69. Запрос к CITY: функция MOD
Вывести из таблицы CITY название города (CITYNAME), код города, разделенный на 3 (CITYCODE), где значение населения (PEOPLES), разделенное на 100, не больше 1 000 000.
Рисунок 70. Запрос к CITY: деление
Вывести на экран результат выражения sIN (3) *10+10.
Вывести на экран результат выражения 1/10+10/1.
— 10,1
Математика и пустые значения NULL
Если в математическом выражении используется пустое значение NULL, тогда значение любого математического выражения также будет NULL.
Например
— 10+NULL = NULL;
— 11*NULL+52+sIN (1) = NULL.
Эту особенность следует учитывать при построении запросов.
Генерация случайных чисел
SQL ORCALE диалекта также позволяет генерировать случайные значения, для этого используется специальный встроенный пакет (набор функций и процедур) dbms_rANDom.
Для генерации случайного числа используется специальная функция Value.
Функция VALUE возвращает случайное число, большее или равное 0 и меньшее 1, с 38 цифрами справа от десятичной части (38 знаков после запятой). Кроме того, вы можете получить случайное число х, где х больше или равно LOW и менее HIGH.
Синтаксис
DBMS_RANDOM.VALUE RETURN NUMBER
Параметры:
LOW — наименьшее количество в диапазоне для генерации случайного числа. Номер, который генерируется, может быть равен LOW;
HIGH — наибольшее число для генерации случайного числа. Номер, который генерируется, будет меньше, чем HIGH.
Возвращаемое значение — NUMBER.
Примеры
— 0,777585712081073.
— 11,3383710413575.
— 3,67901998206503.
Важные замечания
Существует еще один способ генерации случайных текстовых данных с использованием пакета dbms_rANDom.
DBMS_RANDOM.STRING opt IN CHAR,
len IN NUMBER) RETURN VARCHAR2;
Параметры
«U», «U» — результат прописные буквы;
«L», «L» — результат строчные буквы;
«А», «A» — результат смешанные буквы, дело;
«X», «X» — результат верхний регистр букв и цифр;
«Р», «P» — результат любых печатных символов;
len — длина возвращаемой строки.
Примеры
Вопросы учеников
Как будет вести себя запрос с математическими выражениями и NULL?
Очень важно понимать, что если в вашем запросе встречаются математические выражения и значения NULL, тогда результаты запроса могут быть некорректными, особенно если это касается агрегатных функций, SUM, avg, MIN или MAX.
Если в результате выполнения запроса возникнет математическая ошибка, например деление на 0?
Будет сообщение об исключении, и запрос выдаст пустой результат. Подобную ситуацию следует отслеживать в сложных запросах с множеством математических вычислений.
Контрольные вопросы и задания для самостоятельного выполнения
1. Вывести из таблицы MAN имя, фамилию и квадратный корень из 133.
2. Вывести из таблицы MAN имя, фамилию и возраст человека, умноженный на cos (5).
3. Вывести из таблицы CITY записи (*), где популяция делится без остатка на 10 000.
4. Вывести из таблицы CITY название города, квадратный корень от популяции, умноженный на 10, где значение кода города делится нацело на 5.
Шаг 28. Оператор IN
Введение
Предположим, нам необходимо сделать выборку данных по определенному перечню заданных значений, например выбрать автомобили десяти заданных цветов. Можно, конечно, написать большой сложный запрос с несколькими условиями, перечисленными в операторе OR.
Но сделать такой запрос достаточно утомительно, поэтому, к счастью, язык SQL предоставляет нам более удобную возможность — сделать выбор данных по заданному списку значений.
Теория и практика
Для удобной фильтрации выборки по списку значений в SQL существует специальный оператор IN.
Он позволяет сравнить значение заданного поля со списком значений и выбирать данные по результатам сравнения.
Синтаксис
Примеры
Выбрать из таблицы MAN имена и фамилии людей (FIRSTNAME, LASTNAME), которым 22, 31, 34, 27 лет (YEAROLD).
Рисунок 71. Запрос к таблице MAN: демонстрация IN
Выбрать из таблицы AUTO автомобили, марки которых VOLVO, BMW, AUDI.
Рисунок 72. Запрос к таблице AUTO: оператор IN
Выбрать из таблицы AUTO * автомобили красного, синего и зеленого цветов (COLOR).
Рисунок 73. Запрос к таблице AUTO: COLOR IN
Выбрать из таблицы CITY * города с кодами 3, 5, 7 (CITYCODE), где население (PEOPLES) больше 100 000 человек.
Рисунок 74. Запрос к таблице CITY: работаем с IN
Важные замечания
Следует помнить, что при работе со строковыми данными выражения в списках IN следует заключать в одинарные кавычки. Также в этом случае необходимо указывать заглавные и строчные буквы.
Вопросы учеников
С какими типами данных можно использовать конструкцию IN в языке SQL?
С любыми перечислимыми типами данных; исключения, наверное, составляют CLOB, BLOB.
Если в списке IN будет некоторое значение, а в таблице его не будет, что произойдет в этом случае?
Будут выбраны только те значения, которые есть в списке IN.
Контрольные вопросы и задания для самостоятельного выполнения
1. Выбрать из таблицы AUTO, где REGNUM — 111114, 111115, 111116.
2. Выбрать из таблицы MAN * людей с именами (FIRSTNAME) Андрей, Максим, Алиса.
3. Выбрать из таблицы CITY * города (CITYNAME) Москва, Владимир, Казань.
4. Выбрать из таблицы CITY * города с кодами (CITYCODE) 1, 3, 5, 7.
Шаг 29. Объединение нескольких таблиц в запросе
Введение
Важным достоинством языка SQL является возможность вывести на экран данные в одном запросе сразу из нескольких таблиц.
Теория и практика
Давайте рассмотрим записи из таблицы города CITY, записи из таблицы MAN нашей схемы.
Мы видим, что и в одной, и в другой таблице есть колонка «код города» (CITYCODE).
Рисунок 75. Связи между таблицами
Если посмотреть значения этой колонки (CITYCODE) и в той, и в другой таблице, то мы увидим, что числа, значения в этих колонках совпадают.
Например, в MAN есть записи с CITYCODE = 1 и в CITY есть записи CITYCODE = 1, то есть эта колонка является колонкой связи для таблиц CITY и MAN. По этим значениям мы можем выбрать данные из указанных таблиц, поэтому, используя эту колонку, мы можем извлечь данные из обоих таблиц.
Делается это следующим образом.
Первый вариант синтаксиса
Запомните, как объединяются таблицы в нашей схеме:
AUTO — > MAN = PHONENUM
CITY — > MAN = CITYCODE
Примеры
Объединим MAN и CITY по колонке CITYCODE, выведем значения всех колонок из этих таблиц *.
Рисунок 76. Запрос к таблицам CITY и MAN: объединение таблиц
Читать дальшеИнтервал:
Закладка: