Вывести из таблицы 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.
Предположим, нам необходимо сделать выборку данных по определенному перечню заданных значений, например выбрать автомобили десяти заданных цветов. Можно, конечно, написать большой сложный запрос с несколькими условиями, перечисленными в операторе 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 следует заключать в одинарные кавычки. Также в этом случае необходимо указывать заглавные и строчные буквы.
Читать дальше
Конец ознакомительного отрывка
Купить книгу