Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык работы с базами данных SQL.doc
Скачиваний:
9
Добавлен:
20.09.2019
Размер:
71.68 Кб
Скачать

Типы данных sql и операции

В языке SQL, как и в других языках программирования, имеется набор средств, позволяющих указать тип данных для каждого атрибута. Следует отметить, что определение типов данных является той частью, в которой конкретные реализации языка не согласуются с его официальным стандартом. Это объясняется следующими факторами. Во-первых, требуется обеспечить совместимость SQL с другими языками программирования. Во-вторых, и это более важно, реализация SQL для конкретной СУБД должна обеспечивать работу с теми типами данных, которые поддерживаются в этой СУБД. Поэтому при описании мы будем подразделять типы, стандартные для SQL, и типы, специфические для Oracle.

  • Символьные типы данных. К ним относятся типы:

  • CHAR(длина) – символьные строки фиксированной длины (при хранении недостающие символы дополняются пробелами). Длина не может превышать 255 символов;

  • Числовые типы данных. К стандартным числовым типам SQL относятся:

  • Integer – используется для представления целых чисел длиной в 4 байта. Для этого типа может задаваться синоним int;

  • SMALLINT - используется для представления целых чисел длиной в 2 байта;

  • NUMERIC, DECIMAL – числа с фиксированной запятой;

  • FLOAT(точность), REAL, DOUBLE PRECISION – используются для хранения чисел с плавающей точкой.

В некоторых командах SQL необходимо конкретно указывать значения посредством констант. Константы с фиксированной запятой представляются в виде обычных десятичных чисел: 21, -375.18, 62,357. Константы с плавающей запятой имеют такой же формат, как и в большинстве языков программирования: 1.5Е7, 2.5Е-6, -0.789Е54. Строковые константы должны быть заключены в кавычки: ”Минск”, ”Boston”.

Как и в других языках программирования, в языке SQL можно строить выражения с использованием имен атрибутов, констант, операций и функций, соединенных операторами: арифметическими(+- сложение, - - вычитание, * - умножение, / - деление), реляционные(= - равно, > - больше,< - меньше, >= - больше или равно, <= - меньше или равно, <> - не равно), логические(AND, OR, NOT).

. Перечислим специальные операции, которые выполняются в языке SQL.

операнд IN(списокзначений)

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

операнд NOT IN(списокзначений)

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

  • операция

операнд BETWEEN начзначение AND конзначение

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

  • операция

операнд LIKE шаблон

возвращает истину, если первый операнд-строка удовлетворяет шаблону, В шаблоне могут использоваться символы-заместители ‘%’ (замещает любую подстроку) и ‘_’ (замещает один символ) 1. Так выражение

name LIKE ’К%’

истинно, если значение поля name начинается с символа ‘К’.

Особо следует сказать об агрегирующих функциях SQL. В процессе их выполнения анализируются несколько (возможно, что и все) строк таблицы, и результатом является обобщенное (агрегированное) значение. Сведем в таблицу описание агрегирующих функций:

SUM(выражение)

Считает сумму значений указанного выражения для всех строк. Если число строк равно нулю, возвращает NULL, как и все остальные агрегирующие функции.

MIN(выражение)

Находит минимальное из значений указанного выражения для всех строк.

MAX(выражение)

Находит максимальное из значений указанного выражения для всех строк.

AVG(выражение)

Находит среднее арифметическое из значений указанного выражения для всех строк.

COUNT(*)

Возвращает число строк

COUNT(ALL выражение)

Возвращает число строк, для которых определено значение выражения

COUNT(DISTINCT выражение)

Возвращает число различных значений выражения

В языке SQL используется ключевое слово NULL для хранения отсутствующих, пропущенных или неизвестных значений атрибута любого типа. Строго говоря, NULL не является значением в обычном понимании, и это следует учитывать при использовании значений атрибутов, которые могут находиться в состоянии NULL:

  • все операции, за исключением операции конкатенации строк, возвращают значение NULL, если значение хотя бы одного из операндов отсутствует;

  • для проверки на пустое значение необходимо использовать специальные конструкции IS NULL или IS NOT NULL вместо операций сравнения;

  • функции преобразования типа, имеющие NULL в качестве аргумента, также возвращают значение NULL;

  • логические операции расширяются до трехзначной логики по следующим правилам:

and

T

F

N

or

T

F

N

not

T

F

N

T

T

F

N

T

T

T

T

F

T

N

F

F

F

F

F

T

F

N

N

N

F

N

N

T

N

N

  • в агрегирующих функциях для обеспечения точности и однозначности толкования результатов отсутствующие значения атрибутов игнорируются, за исключением функции count(*), которая возвращает общее число строк, в том числе и с пустыми значениями.