Типы данных SQL
Типы данных
Тип данных - это набор представимых значений. Каждое представимое значение принадлежит как минимум одному типу данных, а некоторые принадлежат нескольким типам данных. SQL поддерживает три типа данных: предопределенные типы данных, составные типы и определяемые пользователем типы.
Предопределенные типы данных иногда называют «встроенными типами данных», хотя и не в этом международном стандарте. Каждый предопределенный тип данных является подтипом самого себя и не имеет других типов данных. Отсюда следует, что каждый предопределенный тип данных является супертипом сам по себе и не имеет других типов данных.
Определяемые пользователем типы данных могут быть определены стандартом, реализацией или приложением.
Созданный тип указывается с использованием одного из конструкторов типов данных SQL, ARRAY, REF и ROW. Тип является либо типом массива, либо ссылочным типом, либо типом строки, в зависимости от того, указан ли он с помощью ARRAY, REF или ROW, соответственно. Типы массивов являются единственными примерами созданных типов, известных в общем как типы коллекций.
Типы данных используются в операторе CREATE TABLE как часть определений столбцов:
CREATE TABLE <tablename>(
<column_name> <data_type> ... ,
<column_name> <data_type> ... ,
... );
Что такое Юникод?
Согласно unicode.org «Unicode предоставляет уникальный номер для каждого символа, независимо от платформы, программы и языка. Стандарт Unicode был принят такими лидерами отрасли, как Apple, HP, IBM, JustSystems, Microsoft, Oracle, SAP, Sun, Sybase, Unisys и многие другие. Unicode требуется современными стандартами, такими как XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML и т. Д., И является официальным способом внедрить ИСО / МЭК 10646. Он поддерживается во многих операционных системах, во всех современных браузерах и во многих других продуктах. Появление стандарта Unicode и доступность инструментов для его поддержки являются одними из наиболее значительных последних мировых тенденций в области программных технологий.
Включение Unicode в клиент-серверные или многоуровневые приложения и веб-сайты обеспечивает значительную экономию средств по сравнению с использованием устаревших наборов символов. Unicode позволяет использовать один программный продукт или один веб-сайт для нескольких платформ, языков и стран без необходимости реорганизации. Это позволяет передавать данные через множество различных систем без повреждения ».
Примеры типов данных SQL:
буквальный | Примеры |
Строка символов | «59», «Питон» |
числовой | 48, 10,34, 2., .001, -125, +5.33333, 2.5E2, 5E-3 |
логический | ИСТИНА, ЛОЖЬ, НЕИЗВЕСТНО |
Datetime | ДАТА, «2016-05-14», ВРЕМЯ «04: 12: 00», TIMESTAMP «2016-05-14 10:23:54» |
интервал | ИНТЕРВАЛ '15 -3 'ГОДА В МЕСЯЦ, ИНТЕРВАЛ '23: 06: 5.5' ЧАС ВТОРОЙ |
Типы данных SQL: новые возможности в стандарте SQL 2003
- Новые типы данных
- BIGINT
- MULTISET
- Расширения для существующих типов данных
- Неограниченный массив
- Удаление существующих типов
- НЕМНОГО
- БИТ ВАРИНГ
Здесь мы обсудили стандартные типы данных SQL 2003 с кратким описанием и примером.
Типы данных SQL с примером и объяснением
Содержание:
Типы символьных строк:
Тип данных символьной строки описывается дескриптором типа данных символьной строки.
Тип данных | Описание |
ПЕРСОНАЖ | Строка символов фиксированной длины. Строка текста в формате, определенном разработчиком. Аргумент size - это одно неотрицательное целое число, которое указывает на максимальную длину строки. Значения для этого типа должны быть заключены в одинарные кавычки. |
CHARACTER VARYING (VARCHAR) | Строка символов переменной длины, максимальная длина фиксирована. |
ХАРАКТЕР БОЛЬШОЙ ОБЪЕКТ (ЧАСТЬ) | Символьный большой объект (или CLOB) представляет собой набор символьных данных в системе управления базами данных, обычно хранящихся в отдельном месте, на которое ссылается сама таблица. |
НАЦИОНАЛЬНЫЙ ХАРАКТЕР (НЧАР) | Тип NATIONAL CHARACTER совпадает с типом CHARACTER за исключением того, что он содержит стандартизированные многобайтовые символы или символы Unicode. |
НАЦИОНАЛЬНЫЙ ХАРАКТЕР ВАРИАНТ (NCHAR VARYING) | Тип NATIONAL CHARACTER VARYING такой же, как и тип CHARACTER VARYING, за исключением того, что он содержит стандартизированные многобайтовые символы или символы Unicode. |
НАЦИОНАЛЬНЫЙ ХАРАКТЕР БОЛЬШОЙ ОБЪЕКТ (NCLOB) | Тип NCLOB такой же, как тип CLOB, за исключением того, что он содержит стандартизированные многобайтовые символы или символы Юникода. |
SQL: символьная строка фиксированной длины:
SQL: символьные строки переменной длины
Пример: таблица со столбцами строк фиксированной и переменной длины и строкой CLOB
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
col1 CHAR(8), -- exactly 8 characters
col2 VARCHAR(100), -- up to 100 characters
col3 CLOB -- very large strings
);
Типы символьных строк СУБД:
СУБД и версия | Типы |
MySQL 5.7 | CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM и SET |
PostgreSQL 9.5.3 | CHARACTER VARYING (n), VARCHAR (n), CHARACTER (n), CHAR (n), ТЕКСТ |
SQL Server | CHAR, VARCHAR, TEXT, NCHAR, NVARCHAR, NTEXT |
Oracle 11g | CHAR, VARCHAR2, VARCHAR, NCHAR, NVARCHAR2, CLOB, NCLOB, LONG |
Логический тип:
Тип данных boolean включает в себя различные значения истинности true и false. Логический тип данных также поддерживает неизвестное значение true в качестве нулевого значения, если только это не запрещено ограничением NOT NULL.
Тип данных | Описание |
БУЛЕВЫ | Хранит значения истинности - ИСТИНА или ЛОЖЬ. |
Пример: таблица, использующая логический тип
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
col1 BOOLEAN
);
Булевы типы СУБД:
СУБД и версия | Типы |
MySQL 5.7 | TINYINT (1) |
PostgreSQL 9.5 | БУЛЕВЫ |
SQL Server 2014 | НЕМНОГО |
Oracle 11g | БУЛЕВЫ |
Тип бинарного крупного объекта:
Бинарная строка - это последовательность октетов, которая не имеет ни набора символов, ни сопоставления, связанного с ней, и описывается дескриптором двоичного типа данных.
Тип данных | Описание |
БИНАРНЫЙ БОЛЬШОЙ ОБЪЕКТ (BLOB). | BLOB хранит длинную последовательность байтов. |
Пример: таблица со столбцами двоичных данных фиксированного и переменного размера и BLOB
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
col1 BINARY(8), -- exactly 8 byte
col2 VARBINARY(140), -- up to 140 byte
col3 BLOB -- very large data: store picture, sound ...
);
Двоичные типы СУБД:
СУБД и версия | Типы |
MySQL 5.7 | TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB |
PostgreSQL 9.5 | BYTEA |
SQL Server 2014 | большой двоичный объект |
Oracle 11g | LOB |
Числовые типы:
Числовые типы данных представляют собой числовые значения.
Тип данных | Описание |
INTEGER | Представляет целое число. Минимальные и максимальные значения зависят от СУБД. |
SMALLINT | То же, что и тип INTEGER, за исключением того, что он может содержать меньший диапазон значений, в зависимости от СУБД. |
BIGINT | То же, что и тип INTEGER, за исключением того, что он может содержать больший диапазон значений, в зависимости от СУБД. |
ДЕСЯТИЧНЫЙ (p, s) | Точное числовое, точность р, шкала с. Десятичное число, то есть число, в котором может быть десятичная точка. Аргумент размера состоит из двух частей: точности и масштаба. Масштаб не может превышать точность. Точность на первом месте, и запятая должна отделяться от аргумента шкалы. |
ЧИСЛЕННЫЙ (p, s) | Точное числовое, точность р, шкала с. Максимальная точность зависит от СУБД. |
ПОПЛАВКОВЫЕ (р) | Приблизительная числовая точность мантиссы с. Точность больше или равна 1, а максимальная точность зависит от СУБД. |
РЕАЛЬНЫЙ | То же, что и тип FLOAT, за исключением того, что СУБД определяет точность. |
ДВОЙНАЯ ТОЧНОСТЬ | То же, что и тип FLOAT (СУБД определяет точность), но больше, чем у REAL. |
Пример: примеры точности и масштаба для 235,89
Пример: таблица с использованием числовых типов данных
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
name VARCHAR(100), -- up to 100 characters
col1 DECIMAL(5,2), -- three digits before the decimal and two behind
col2 SMALLINT, -- no decimal point
col3 INTEGER, -- no decimal point
col4 BIGINT, -- no decimal point.
col5 FLOAT(2), -- two or more digits after the decimal place
col6 REAL,
col7 DOUBLE PRECISION
);
Числовые типы СУБД:
СУБД и версия | Типы |
MySQL 5.7 | INTEGER (TINYINT, SMALLINT, MEDIUMINT, INT BIGINT, INTEGER) Фиксированная точка (десятичный, числовой) ПЛАВУЩАЯ ТОЧКА (ПЛАВУЩАЯ, ДВОЙНАЯ) БИТ-ЗНАЧЕНИЕ (БИТ), |
PostgreSQL 9.5.3 | НЕБОЛЬШОЙ, ЦЕЛОЙ, БОЛЬШОЙ, ДЕЦИМАЛЬНЫЙ, ЧИСЛЕННЫЙ, РЕАЛЬНЫЙ, ДВОЙНОЙ ТОЧНОСТЬ, МАЛЕНЬКИЙ, СЕРИЙНЫЙ, БОЛЬШОЙ |
SQL Server 2014 | ТОЧНАЯ ЧИСЛЕННОСТЬ (BIGINT, BIT, DECIMAL, INT, MONEY, NUMERIC, SMALLINT, SMALLMONEY, TINYINT) ПРИМЕРНАЯ ЧИСЛЕННОСТЬ (FLOAT, REAL) |
Oracle 11g | ЧИСЛО ПЛАВУЩАЯ ТОЧКА (BINARY_FLOAT, BINARY_DOUBLE) |
Типы даты и времени:
Типы данных datetime представляют дату и время дня.
Тип данных | Описание |
ДАТА | Представляет дату. Формат: гггг-мм-дд |
ВРЕМЯ БЕЗ ВРЕМЕНИ ЗОНА | Представляет время суток без часового пояса. Формат: чч: мм: сс |
ВРЕМЯ ВРЕМЯ ЗОНА | Представляет время суток с часовым поясом. Формат: гггг-мм-дд в зоне времени -06: 00. |
TIMESTAMP БЕЗ ВРЕМЕННОЙ ЗОНЫ | Представляет комбинацию значений DATE и TIME, разделенных пробелом. Формат: гггг-мм-дд чч: мм: сс |
TIMESTAMP с зоной времени | Представляет комбинацию значений DATE и TIME, разделенных пробелом с часовым поясом. Формат: гггг-мм-дд чч: мм: сс в зоне времени -06: 00. |
Пример: таблица, использующая типы данных Datetime
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
col1 DATE, -- store year, month and day (Oracle: plus hour, minute and seconds)
col2 TIME,
col3 TIMESTAMP(9), -- a timestamp with 9 digits after the decimal of seconds
col4 TIMESTAMP WITH TIME ZONE -- a timestamp including the name of a timezone
);
Типы даты и времени СУБД:
СУБД и версия | Типы |
MySQL 5.7 | ДАТА, ВРЕМЯ, DATETIME, TIMESTAMP, ГОД |
PostgreSQL 9.5.3 | TIMESTAMP [БЕЗ ВРЕМЕННОЙ ЗОНЫ], TIMESTAMP с ВРЕМЕННОЙ ЗОНОЙ, ДАТА, ВРЕМЯ [БЕЗ ВРЕМЕННОЙ ЗОНЫ], ВРЕМЯ ВРЕМЕННОЙ ЗОНЫ |
SQL Server | DATE, DATETIME2, DATETIME, DATETIMEOFFSET, SMALLDATETIME, TIME |
Oracle 11g | ДАТА, TIMESTAMP, TIMESTAMP с ВРЕМЕННОЙ ЗОНОЙ, TIMESTAMP с ЛОКАЛЬНОЙ ВРЕМЕННОЙ ЗОНОЙ |
Тип интервала:
Он хранит количество времени между двумя значениями datetime. Например, между 10:00 и 12:30 - интервал 02:30 (2 часа 30 минут). Есть два класса интервалов. Первый из них называется интервалами год-месяц и не содержит никаких полей, кроме ГОД и МЕСЯЦ, хотя не оба поля обязательны для заполнения. Другой класс называется дневными интервалами, которые могут включать в себя любые поля, кроме YEAR или MONTH.
Тип данных | Описание |
Год месяц | Не содержит полей, кроме ГОД и МЕСЯЦ, хотя не оба поля обязательны для заполнения. |
Дневные | Включает в себя любые поля, кроме ГОДА или МЕСЯЦА. Эти интервалы могут содержать дневное значение, часовое значение, минутное значение, второе значение или некоторую их комбинацию. |
Поля в году-месяце ИНТЕРВАЛЬНЫЕ значения:
Ключевое слово | Имея в виду |
ГОД | лет |
МЕСЯЦ | месяцы |
Поля в дневных значениях INTERVAL:
Ключевое слово | Имея в виду |
ДЕНЬ | дней |
ЧАС | часов |
МИНУТЫ | минут |
ВТОРОЙ | Секунды и, возможно, доли секунды |
Допустимые значения для полей в значениях INTERVAL:
Ключевое слово | Допустимые значения полей INTERVAL |
ГОД | Неограниченный, за исключением <точности ведущего поля интервала> |
МЕСЯЦ | Месяцы (в течение лет) (0-11) |
ДЕНЬ | Неограниченный, за исключением <точности ведущего поля интервала> |
ЧАС | Часы (в течение дней) (0-23) |
МИНУТЫ | Минуты (в течение часа) (0-59) |
ВТОРОЙ | Секунды (в течение минут) (0-59.999 ...) |
Действительные операторы, включающие дату и время:
Operand1 | оператор | operand2 | Тип результата |
Datetime | - | Datetime | интервал |
Datetime | + или - | интервал | Datetime |
интервал | + | Datetime | Datetime |
интервал | + или - | интервал | интервал |
интервал | * или же / | числовой | интервал |
числовой | * | интервал | интервал |
Пример: таблица, использующая типы данных Interval
CREATE TABLE test (
id DECIMAL PRIMARY KEY,
col1 INTERVAL YEAR TO MONTH,
col2 INTERVAL DAY TO SECOND(6) -- an interval with 6 digits after the decimal of seconds
);
Типы интервалов СУБД :
СУБД и версия | Типы |
MySQL 5.7 | НЕ ПОДДЕРЖИВАЕТСЯ |
PostgreSQL 9.5 | ИНТЕРВАЛ |
SQL Server 2014 | НЕ ПОДДЕРЖИВАЕТСЯ |
Oracle 11g | ИНТЕРВАЛ ГОДА В МЕСЯЦ ИНТЕРВАЛЬНЫЙ ДЕНЬ ВТОРОЙ |
XML Types2
XML | Хранит данные XML. Его можно использовать везде, где разрешен тип данных SQL, например, столбец таблицы. |
Пример: таблица, использующая тип данных XML
CREATE TABLE test(
id DECIMAL PRIMARY KEY,
col1 XML
);
Типы коллекций:
КОЛЛЕКЦИЯ (ARRAY, MULTISET) | ARRAY (предлагается в SQL99) представляет собой набор заданной длины и упорядочивает коллекцию элементов, MULTISET (добавляется в SQL2003) представляет собой неупорядоченную коллекцию элементов переменной длины. Оба элемента должны иметь предопределенный тип данных. |
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: SQL Home
Далее: Синтаксис SQL
Новый контент: Composer: менеджер зависимостей для PHP , R программирования