Основы SQL
Сводка типов данных
В таблице 2.2 перечислены различные типы данных и показаны литералы, которые соответствуют каждому из этих типов.
Таблица 2.2. Типы данных.
Тип данных | Пример значения |
---|---|
CHARACTER (20) | 'Любительское радио' |
VARCHAR (20) | 'Любительское радио' |
CLOB (1000000) | 'В этой строке миллион символов..' |
SMALLINT, BIGINT ИЛИ INTEGER | 7500 |
NUMERIC или DECIMAL | 3425.432 |
REAL, FLOAT ИЛИ DOUBLE PRECISION | 6.626e-34 |
BLOB (1000000) | '1001001110101011010101010101… ' |
BOOLEAN | 'true' |
DATE | DATE '1957-08-14' |
TIME (2) WITHOUT TIME ZONE (аргумент указывает количество цифр в дробной части) | TIME '12:46:02.43' WITHOUT TIME ZONE |
TIME (3) WITH TIME ZONE | TIME '12:46:02.432-08:00' WITH TIME ZONE |
TIMESTAMP WITHOUT TIME ZONE (0) | TIMESTAMP '1957-08-14 12:46:02' WITHOUN TIME ZONE |
TIMESTAMP WITH TIME ZONE (0) | TIMESTAMP '1957-08-14 12:46:02-08:00' WITH TIME ZONE |
INTERVAL DAY | INTERVAL '4' DAY |
ROW | ROW (Street VARCHAR (25), City VARCHAR (20), Stat CHAR (2), PostalCode VARCHAR (9)) |
ARRAY | INTEGER ARRAY [15] |
MULTISET | Нет точного применения типа multiset |
REF | Это не тип, а указатель |
USER DEFINED TYPE | Тип валюты, созданный на основе decimal |
Помни:
Имеющаяся у вас реализация SQL может не поддерживать все типы данных, перечисленные в этом разделе. Более того, в вашей реализации могут поддерживаться нестандартные типы, которые здесь не описываются. (Каждый из вас успел уже как профессионал набраться опыта, "намотать километраж" и т.д. Так что вы знаете, где искать то, чего еще не знаете.)
Неопределенные значения
Помни:
Если в поле базы данных находятся какие-то данные, то в этом поле имеется определенное значение. А если поле не содержит никаких данных, то говорят, что у него неопределенное значение. Неопределенное значение (null) в числовом поле – это не одно и то же, что нуль. А в символьном поле неопределенное значение – это не одно и то же, что пустая строка. И нуль и пустая строка являются определенными значениями. Неопределенное же значение указывает на то, что имеющееся в поле значение неизвестно.
Встречаются случаи, когда поле может иметь неопределенное значение. В следующем списке приведены некоторые из этих случаев и даны примеры каждого из них.
- Значение существует, но вам оно пока что неизвестно. До того, как была точно вычислена масса кварка, вы в самой верхней строке таблицы QUARM (кварк) установили в поле MASS (масса) неопределенное значение.
- Значение пока что не существует. В строке SQL For Dummies, 5th Edition таблицы BOOKS (книги) вы установили в поле TOTAL_SOLD (всего продано) неопределенное значение, так как первые данные о продажах за квартал еще не поступили.
- Поле для данной строки неприменимо. В строке С-ЗРО таблицы EMPLOYEE (наемный работник) вы установили в поле SEX (пол) неопределенное значение, так как С-ЗРО – это андроид, у которого пола нет.
- Значение выходит за пределы установленного диапазона. В строке Oprah Winfrey (Опра Уинфри) таблицы EMPLOYEE вы установили в поле SALARY (зарплата) неопределенное значение, так как для этого поля вы задали тип NUMERIC (8.2), а оклад, предусмотренный в контракте Опра, превышает 999999.99 доллара.
Совет:
Поле может иметь неопределенное значение по самым разным причинам. Так чад не торопитесь с выводами относительно того, что означает конкретное неопределенное значение.