Операторы

Что такое операторы? Как использовать операторы ? Какие оператоы поддерживает язык SQL?

Операторы специфические для языка SQL

Здесь вы найдете информацию по операторам специфическим для языка SQL, которые не встречаются или не встречаются в этом виде в других языках программирования.

* - все столбцы таблицы данных

Синтаксис

    *

Описание:

    * является синонимом для всех полей строки таблицы данных, используется для сокращения количества текста.

    Пример:

SELECT *
FROM torder; 

Выбирает все строчки и все поля таблицы troder.

ALL - все строчки таблицы данных

Синтаксис

Описание:

    ALL используется для того, чтобы выбирать все (без исключений) значения/строки результирующей таблицы данных.

    Пример:

SELECT *
FROM tkunden
WHERE rating > ALL ( SELECT rating FROM tkunden WHERE stadt='Berlin'
); 

Выбрать всех клиентов, рейтинг которых больше чем рейтинг всех клиентов из Берлина.

ANY - некоторые

Синтаксис

Описание:

    ANY и SOME являются синонимами. Используется для того, чтобы применять логический оператор к некоторым значениям справо от него.

    Пример:

SELECT *
FROM tkunden
WHERE rating > ANY ( SELECT rating FROM tkunden WHERE stadt='Berlin'
); 

Выбрать всех клиентов, рейтинг которых больше чем рейтинг хотя бы одного из клиентов из Берлина.

BETWEEN - между двумя значениями

Синтаксис

Описание:

    WW BETWEEN W1 AND W2 имеет значение 'истина', если значение WW находится между W1 и W2.

    Пример:

SELECT vnum,anz,preis
FROM torder
WHERE preis BETWEEN 100 AND 500;

Здесь выбираются поля vnum, anz и preis таблицы torder, где поле preis имеет значение не меньше 100 и не больше 500.

EXISTS - существует

Синтаксис

Описание:

    EXISTS используется вместе с подзапросами SELECT включенными в главный
    запрос и
    имеет значение истина, если подзапрос возвращает данные, и - ложь, если
    подзапрос не
    возвращает данных.

    Пример:

SELECT DISTINCT knum
FROM tkunden outer
WHERE EXISTS
( SELECT * FROM tkunden inner
WHERE inner.vnum=outer.vnum AND inner.knum<&gt;outer.knum ); 

Здесь выбираются те клиенты (knum), которые обслуживаются
более чем одним продавцом.

IN - один из

Синтаксис

Описание:

    WW IN ( значение [,...] ) указывает базе данных, что поле WW должно иметь одно из указанных значений.

    Пример:

SELECT *
FROM torder
WHERE preis IN (100,200,300,400,500);

Здесь выбираются все строки таблицы torder, где поле preis имеет одно из значений 100, 200, 300, 400 или 500.

IS NULL - без конкретного значения

Синтаксис

Описание:

    С помощью этого оператора можно специально выбирать строки таблиц данных с пустыми (не имеющими значения) полями или же исключать их из результата запроса.

    Пример:

SELECT *
FROM tkunden
WHERE stadt IS NOT NULL; 

Здесь выбираются все клиенты, у которых поле stadt имеет какое-либо значение.

LIKE - похожи на

Синтаксис

    LIKE форматная строка

Описание:

    LIKE используется только с полями типа CHAR или VARCHAR. Для форматной строки используются следующие конвенции :
    _ (символ подчеркивания) указывает на то, что на этом месте допускаются любые символы
    % (процент) указывает на то, что на этом месте допускаются любые комбинации символов (wildcard)

    Пример:

SELECT *
FROM tkunden
WHERE kname LIKE 'G%'; 

Выбрать всех клиентов с именем начинающимся с G.

MATCHES - выглядит как (informix)

Синтаксис:

    MATCHES форматная строка

Описание:

    MATCHES используется только с полями типа CHAR или VARCHAR. Для форматной строки используются следующие конвенции :
    ? (знак вопроса) указывает на то, что на этом месте допускаются любые символы
    * (звездочка) указывает на то, что на этом месте допускаются любые комбинации символов (wildcard)
    [множество символов] - квадратные скобки с указанным в них множеством символов указывают на допустимые на этом месте символы

SOME - некоторые из

Синтаксис

Описание:

    ANY и SOME являются синонимами. Используется для того, чтобы применять логический оператор к некоторым значениям справо от него.

    Пример:

SELECT *
FROM tkunden
WHERE rating > SOME ( SELECT rating FROM tkunden WHERE
stadt='Berlin' ); 

Выбрать всех клиентов, рейтинг которых больше чем рейтинг хотя бы одного из клиентов из Берлина.

Логические операторы

Внутри логических формул формулы и данные соединяются логическими операторами.

ОператорОписаниеПримерКоментарий
AND Логическое и, например означает аа AND bb - aa и bb Приоритет исполнения выше OR, но ниже NOT. preis > 10 AND preis < 100; Выбрать все заказы, у которых цена заказанных продуктов больше 10 и меньше чем 100.
NOT Логическое "не" : если aa имеет значение истина, то NOT aa - ложь и т.п. Приоритет исполнения выше, чем AND и OR. NOT preis=0 Выбрать все заказы, у которых цена заказанных продуктов не равна 0.
OR Логическое "или", например означает аа OR bb - aa или bb Приоритет исполнения ниже NOT и AND. preis > 10 AND preis < 100 OR preis > 1000 Выбрать все заказы, у которых цена заказанных продуктов больше 10 и меньше чем 100, или же превышает 1000.
= Знак равно, например aa=bb означает aa равно bb. Приоритет исполнения выше NOT, AND и OR. preis = 10 Выбрать все заказы с ценой продукта равной 10.
> aa > bb принимает значение истина, когда aa имеет значение большее, чем bb. Приоритет исполнения выше, чем NOT, AND и OR, и ниже, чем =. preis > 0 Выбрать все заказы с ценой продукта больше 0.
>= aa >= bb принимает значение истина, когда aa имеет значение большее или равное bb. Приоритет исполнения выше, чем NOT, AND и OR, и ниже, чем =. preis >= 300 Выбрать все заказы с ценой продукта больше или равной 300.
&lt aa < bb принимает значение истина, когда aa имеет значение меньшее, чем bb. Приоритет исполнения выше, чем NOT, AND и OR, и ниже, чем =. preis < 300 Выбрать все заказы с ценой продукта меньше 300.
<= aa <= bb принимает значение истина, когда aa имеет значение меньшее или равное bb. Приоритет исполнения выше, чем NOT, AND и OR, и ниже, чем =. preis <= 300 Выбрать все заказы с ценой продукта меньше или равной 300.
<> aa <> bb принимает значение истина, когда aa имеет значение не равное bb. Приоритет исполнения выше, чем NOT, AND и OR, и ниже, чем =. preis <> 0 Выбрать все заказы с ценой продукта не равной 0.

Арифметические операторы

Внутри формул значения и поля данных соединяются арифметическими операторами.

ОператорОписаниеПримерЗначение
-негативный знак-0.01минус 0,01
+позитивный знак (не обязателен)+.9плюс 0,9
*умножение2*Field32 умножить на значение поля Field3
/делениеProzent3/100Значение поля Prozent3 делится на 100
+сложениеFeldA + (-0.9)Сложение значения поля FeldA и константы -0,01
-вычитаниеFeldA - 0.01Значение поля FeldA минус 0,01

Приоритеты операторов

Все операторы языка SQL исполняются в определенной последовательности, в зависимости от их приоритета:

ОператорОписаниеПриоритет
+- Знак числа 0
* /Умножение и деление 1
+ -Сложение и вычитание 2
=равенство 3
<>неравенство 3
>больше 3
<меньше 3
>=больше или равно 3
<=меньше или равно 3
[NOT] BETWEEN ... AND ...[не] между ... и ... 3
IS [NOT] NULL [не] без значения 3
[NOT] IN [не] входит в состав списка 3
NOT Отрицание 4
AND Логическое И 5
OR Логическое ИЛИ 6