кодесурса
«SQL

Типы данных SQL

script1adsense2code
script1adsense3code

Типы данных

Тип данных - это набор представимых значений. Каждое представимое значение принадлежит как минимум одному типу данных, а некоторые принадлежат нескольким типам данных. 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

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

«SQL

Пример: таблица с использованием числовых типов данных

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

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: SQL Home
Далее: Синтаксис SQL

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code