- •Лабораторная работа 4 Предложение select в sql Oracle. Основные возможности Содержание
- •Описание и примеры
- •Основные фразы запроса: select и from Фраза select
- •Фраза from
- •Фраза where
- •Использование простых условий Использование операторов сравнения
- •Логические операторы
- •Выражение над столбцами во фразе where
- •Специальные операторы Оператор in
- •Оператор between
- •Оператор like
- •Операторы is null и is not null.
- •Варианты заданий
- •1.1.Вариант 1
- •1.2.Вариант 2
- •1.3.Вариант 3
- •1.4.Вариант 4
- •1.5.Вариант 5
- •1.6.Вариант 6
- •1.7.Вариант 7
- •1.8.Вариант 8
- •1.9.Вариант 9
- •1.10.Вариант 10
- •1.11.Вариант 11
- •1.12.Вариант 12
- •1.13.Вариант 13
- •1.14.Вариант 14
- •1.15.Вариант 15
- •1.16.Вариант 16
- •1.17.Вариант 17
- •1.18.Вариант 18
- •Контрольные вопросы
- •Приложения Приложение a. Операторы sql Oracle
- •Унарные и бинарные операторы
- •Старшинство операторов
- •Арифметические операторы
- •Оператор конкатенации
- •Операторы сравнения
- •Логические операторы
- •Теоретико-множественные операторы
- •Приложение b. Выражения
Приложение b. Выражения
Выражение – это комбинация одного или более значений, операторов и SQL-функций, которое принимает некоторое значение. Выражение в общем случае имеет тип значения, совпадающее с его компонентами.
Выражение “2*2” дает в результате 4 и имеет тип NUMBER (тот же, что и его компоненты).
Следующее выражение является более сложным и использует как функции, так и операторы. Это выражение добавляет 7 дней к текущей дате, удаляет из даты компоненту времени и преобразует результат в тип CHAR:
TO_CHAR(TRUNC(SYSDATE+7))
Выражения можно использовать:
В списке фразы SELECT предложения SELECT
В условии фразы WHERE и фразы HAVING
Во фразах CONNECT BY и ORDER BY
Во фразе VALUES предложения INSERT
Во фразе SET предложения UPDATE
Например, вы можете использовать выражение вместо строки 'smith' во фразе SET предложения UPDATE, которое приведено ниже:
SET ename = 'smith';
Так следующаф фраза SET содержит выражение LOWER(ename) вместо 'smith':
SET ename = LOWER(ename);
Выражения имеют несколько форм, которые приведены ниже:
expr::=
Oracle не допускает использования всех возможных форм выражений во всех допустимых частях всех SQL-предложений. Если в синтаксисе описания того или предложения присутствует фраза expr, то вы можете использовать только выражения подходящего вида.
Простые выражения
Просые выражения специфицируют столбец, константу или NULL.
simple_expression::=
Примеры простых выражений:
emp.ename
'this is a text string'
10
Составные выражения
Составные выражения специфицируют комбинацию других выражений.
compound_expression::=
Отметим, что некоторые комбинации функций не допустимы и будут отвергнуты. Например, функция LENGTH не может использоваться в агрегатных функциях.
Примеры составных выражений:
('CLARK' || 'SMITH')
LENGTH('MOOSE') * 57
SQRT(144) + 72
my_fun(TO_CHAR(sysdate,'DD-MMM-YY')
Выражения переменных
Этот тип выражений не обсуждается здесь.
Выражения встроенных функций
Выражение встроенной функции специфицирует обращение к SQL-функции, действующей над строками.
built_in_function_expression::=
Примеры выражений встроенных функций:
LENGTH('BLAKE')
ROUND(1234.567*43)
SYSDATE
Для получения информации о встроенных функциях см. Приложение лабораторной работы 5.
Выражения функций, определенных пользователями
Выражения функций, определенных пользователями специфицирует обращение к функции, определенной пользователем. Синтаксис таких функций не обсуждается здесь.
Выражения конструктора типа
Выражения конструктора типа специфицирует обращение к конструктору типа. The Аргумент to конструктора типа является выражением или подзапросом. Синтаксис этого выражения не обсуждается здесь.
CAST Expressions
Выражение CAST преобразует один встроенный тип или значение типа коллекции в другой встроенный тип или значение типа коллекции. Синтаксис не обсуждается здесь.
SELECT * FROM t1 WHERE CAST (ROWID AS VARCHAR2) = '01234';
CURSOR Expressions
Выражение CURSOR возвращает вложенный курсор. Синтаксис не обсуждается здесь.
Выражение доступа к объекту
Этот тип выражения не обсуждается здесь.
Выражения DECODE
Этот тип выражения не обсуждается здесь.
Список выражений
Список віражений – єто список последовательности віражений, разделенніх запятой. Весь список заключается в круглые скобки.
expression_list::=
Ограничение на размер списка - 1000 выражений. Примеры списков выражений:
(10, 20, 40)
('SCOTT', 'BLAKE', 'TAYLOR')
(LENGTH('MOOSE') * 57, -SQRT(144) + 72, 69)
Приложение C. Комментарии в SQL
Комментарии в SQL не влияют на выполнение предложений. Комментарий может стоять между любыми ключевыми словами, параметрами или знаками пунктуации в предложении. Существуют следующие способы использования комментариев:
Начало комментария фиксируется косой чертой со звездочкой (/*). Затем следует текст комментария. Текст может занимать несколько строк. Завершается комментарий звездочкой и косой чертой (*/).
Комментарий начинается с двух знаков минус (--). Далее следует текст комментария, который может располагаться только на одной строке. Конец комментария – символ конца строки.
Предложение SQL может содержать комментарии обоих типов.
Пример:
Приводимые далее предложения содержат различные варианты использования комментариев:
SELECT ename, sal + NVL(comm, 0), job, loc
/* Select all employees whose compensation is
greater than that of Jones.*/
FROM emp, dept
/*The DEPT table is used to get the department name.*/
WHERE emp.deptno = dept.deptno
AND sal + NVL(comm,0) > /* Subquery: */
(SELECT sal + NLV(comm,0)
/* total compensation is sal + comm */
FROM emp
WHERE ename = 'JONES');
SELECT ename, -- select the name
sal + NVL(comm, 0), -- total compensation
job, -- job
loc -- and city containing the office
FROM emp, -- of all employees
dept
WHERE emp.deptno = dept.deptno
AND sal + NVL(comm, 0) > -- whose compensation
-- is greater than
(SELECT sal + NVL(comm,0) -- the compensation
FROM emp
WHERE ename = 'JONES'); -- of Jones.
