SQL. НЕКОТОРЫЕ Операторы языка определения данных
Основные типы данных языка SQL
Трехзначная логика
В SQL используется трехзначная логика, т.е. результат логического выражения может принимать три значения – истина (True), ложь (False) и неизвестно (NULL).
Если значение в ячейке отсутствует (ячейка пуста, не заполнена), то говорят, что значение в этой ячейке есть NULL.
Следует четко понимать, что NULL – это не ноль, это вообще не значение, это отсутствие всякого значения.
Результаты выполнения логических операций с использованием операторов «и», «или» и «не» представлены в таблицах истинности (см. таблицы 10.1, 10.2, 10.3).
Таблица 10.1
Таблица истинности оператора «и» (AND) в трехзначной логике
AND (И) | TRUE | FALSE | NULL |
TRUE | True | False | Null |
FALSE | False | False | False |
NULL | Null | False | Null |
Таблица 10.2
Таблица истинности оператора «или» (OR) в трехзначной логике
OR (ИЛИ) | TRUE | FALSE | NULL |
TRUE | True | True | True |
FALSE | True | False | Null |
NULL | True | Null | Null |
Таблица 10.3
Таблица истинности оператора «не» (NOT) в трехзначной логике
|
|
NOT (НЕ) | TRUE | FALSE | NULL |
False | True | Null |
Основные типы данных, определенные в стандарте языка SQL, можно условно разделить на числовые типы, текстовые типы, типы календарных дат и времени, специальные типы. Один и тот же тип данных может называться по-разному в различных СУБД.
Таблица 10.4
Основные типы данных языка Microsoft Jet SQL
Тип данных | Описание |
CHAR(n) | Текстовая строка постоянной длины n символов |
VARCHAR(n) | Текстовая строка переменной длины не более n символов |
INTEGER (INT, LONG, INTEGER4) | Длинное целое число (4 байта) |
SMALLINT (SHORT, INTEGER2) | Маленькое целое число (2 байта) |
BYTE (INTEGER1) | Целое число от 0 до 255 (1 байт) |
COUNTER (AUTOINCREMENT) | Счетчик (длинное целое число) |
REAL | Число с плавающей запятой обычной точности (4 байта) |
FLOAT | Число с плавающей запятой двойной точности (8 байт) |
MONEY | Денежный тип данных (8 байт) |
DATETIME (DATE, TIME) | Календарные даты и время |
BIT | Логический тип данных («да», «нет») |
В данном разделе рассмотрим операторы создания, изменения структуры и удаления таблиц.
Оператор CREATE TABLE создает в базе данных новую таблицу.
Синтаксис:
CREATE TABLE <имя_таблицы> (<предложение1> [,< предложение2>] [,…])
Здесь и далее квадратные скобки означают, что конструкции внутри них необязательны.
После имени таблицы следует список предложений, разделенных запятыми. В качестве предложений могут выступать следующие элементы: определение столбца, определение первичного ключа, определение внешнего ключа и др.
Определение столбца таблицы имеет вид:
<имя_столбца> <тип_данных> [DEFAULT <значение_по_умолчанию>] [NOT NULL]
Наличие конструкции DEFAULT позволяет указать значение, которое автоматически будет вноситься в данный столбец при добавлении в таблицу новой строки.
|
|
Наличие конструкции NOT NULL обеспечивает условие обязательности данных в этом столбце.
Определение первичного ключа имеет вид:
PRIMARY KEY (<имя_столбца1> [, <имя_столбца2>] [,…])
В круглых скобках перечисляются имена столбцов создаваемой таблицы, образующих первичный ключ.
Наличие предложения PRIMARY KEY обеспечивает условие целостности таблицы.
Определение внешнего ключа имеет вид:
FOREIGN KEY (<имя_столбца1> [, <имя_столбца2>] [,…])
REFERENCES <имя_таблицы>
В круглых скобках перечисляются имена столбцов создаваемой таблицы, образующих внешний ключ. После слова REFERENCES указывается имя таблицы (таблицы-предка), связь с которой создает этот внешний ключ. По умолчанию внешний ключ связывается с первичным ключом таблицы-предка.
Наличие предложения FOREIGN KEY обеспечивает условие ссылочной целостности (в некотором смысле).