Sql тип данных text: SQL — Урок 2. Типы данных
SQL — Типы данных
Тип данных определяет, какое значение может содержать столбец: целочисленные данные, символьные данные, денежные данные, данные даты и времени, двоичные строки и т. д.
Типы данных SQL
Каждый столбец в таблице базы данных должен иметь имя и тип данных.
Разработчик SQL должен решить, какой тип данных будет храниться внутри каждого столбца при создании таблицы. Тип данных является ориентиром для SQL, чтобы понять, какой тип данных ожидается внутри каждого столбца, а также определяет, как SQL будет взаимодействовать с сохраненными данными.
Список типов данных MySQL
В MySQL существует три основных типа данных: текст, число и дата.
Типы текстовых данных
Тип | Описание |
CHAR(size) | Удерживает строку фиксированной длины (может содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Может хранить до 255 символов |
VARCHAR(size) | Удерживает строку переменной длины (может содержать буквы, цифры и специальные символы). Максимальный размер указан в скобках. Может хранить до 255 символов. Если вы ставите большее значение, чем 255, оно будет преобразовано в тип TEXT |
TINYTEXT | Удерживает строку длиной не более 255 символов |
TEXT | Удерживает строку с максимальной длиной 65535 символов |
BLOB | Для BLOB (Binary Large OBjects). Сохраняет до 65535 байт данных |
MEDIUMTEXT | Удерживает строку с максимальной длиной 16,777,215 символов |
MEDIUMBLOB | Для BLOB (Binary Large OBjects). Удерживает до 16 777 215 байт данных |
LONGTEXT | Удерживает строку с максимальной длиной 4 294 967 295 символов |
LONGBLOB | Для BLOB (Binary Large OBjects). Сохраняет до 4 294 967 295 байтов данных |
ENUM(a,b,c,etc.) |
Позвольте ввести список возможных значений. Вы можете перечислить до 65535 значений в списке ENUM. Если вставлено значение, которое отсутствует в списке, будет добавлено пустое значение.
Вы вводите возможные значения в этом формате: ENUM (‘a’, ‘b’, ‘c’)
|
SET | Подобно ENUM, за исключением того, что SET может содержать до 64 элементов списка и может хранить несколько вариантов |
Типы числовых данных
Тип | Описание |
TINYINT(size) | От -128 до 127. От 0 до 255 UNSIGNED *. Максимальное количество цифр может быть указано в круглых скобках |
SMALLINT(size) | -32768 до 32767 нормально. 0 до 65535 UNSIGNED*. Максимальное количество цифр может быть указано в скобках |
MEDIUMINT(size) | -8388608 до 8388607 normal. 0 до 16777215 UNSIGNED*. Максимальное количество цифр может быть указано в скобках |
INT(size) | -2147483648 до 2147483647 normal. 0 до 4294967295 UNSIGNED*. Максимальное количество цифр может быть указано в скобках |
BIGINT(size) | -9223372036854775808 до 9223372036854775807 normal. 0 до 18446744073709551615 UNSIGNED *. Максимальное количество цифр может быть указано в скобках |
FLOAT(size,d) | Небольшое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d |
DOUBLE(size,d) | Большое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d |
DECIMAL(size,d) | DOUBLE хранится как строка, позволяющая фиксированную десятичную точку. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d |
UNSIGNED — дополнительный параметр целочисленного типа. Обычно целое число переходит от отрицательного к положительному. Добавление атрибута UNSIGNED будет перемещать этот диапазон вверх так, чтобы он начинался с нуля вместо отрицательного числа.
Тип даты
Тип | Описание |
DATE() | Формат даты: YYYY-MM-DD |
DATETIME() | Формат даты и времени: YYYY-MM-DD HH:MI:SS |
TIMESTAMP() | Количество секунд с момента Unix (‘1970-01-01 00:00:00’ UTC). Формат даты: YYYY-MM-DD HH:MI:SS |
TIME() | Формат времени: HH:MI:SS |
YEAR() | Год |
Язык запросов SQL. «Текстовые типы данных» Вторая статья
Так же почитайте материал «язык запросов sql» в первой части, надеюсь статья вам понравиться.
Стандарт Unicode, который поддерживается в большинстве современных СУБД, был разработан с целью преодоления ограничений, присущих стандартным наборам символов. В настоящем стандарте для сохранения символов используется 2 байта. Их достаточно для кодирования почти всех символов, используемых в мире. Например, общий набор китайских иероглифов составляет 21000 из 65536 возможных в Юникод символов. Поскольку для сохранения символьной информации используется вдвое больше места в памяти, используется несколько типов символьной информации, в состав названий которых входит слово CHAR.
Текстовый тип данных CHAR (n)
Диапазон: до 8000 ANSI-символов
Размер: 1 байт для каждого символа.
Размер: число в скобках, которое определяет количество байт, выделяемых для каждого значения в столбце.
Максимум: 15 символов. (Значение по умолчанию).
Например, если тип столбца определено CHAR (15), а вводите менее 15 символов, остальные позиции заполняются пробелами. То есть все равно выделяться 15 байт.
Текстовый тип данных NCHAR.
Практически те же характеристики, что и предшественник. Единственное различие между ними заключается в том, что данные этого типа могут содержать не более 4000 символов Unicode.
Тип VARCHAR (varying char).
Диапазон: до 8000 символов.
Размер памяти меняется в зависимости от количества введенных символов в элементах колонки.
Например, вы определили тип колонки VARCHAR (15), но ввели меньше символов, в этом случае пропускает не будут добавляться, есть подобный элемент занимает менее 15 байт. Можно сэкономить место на диске.
Текстовый тип данных NVARCHAR.
То же, что и VARCHAR. Единственное отличие — до 4000 символов Юникод составляют диапазон возможных значений.
Если превысить максимальный (или заданий) размер поля, СУБД автоматически удаляет остальные символы без предупреждения.
Типы DATETIME и SMALLDATETIME.
Используются для хранения комбинаций даты и времени, что удобнее, чем с помощью символьных типов. Отдельных типов для хранения даты или отдельно времени не существует.
Текстовый тип данных DATETIME.
4 первых байта для сохранения количества дней до и после базовой даты.
Округление происходит с недостачей.
• Формат отображения: МММ DD YYYY hh: miAM / PM. Например, Sep 23 1949 11:11 PM.
• При использовании оператора Insert данные этого типа заключаются в одинарные кавычки.
• Неважно, в каком порядке вы укажете дату и время, в любом случае SQL Server распознает и сохранит их в правильном порядке.
• При вводе значений типа Datetime можно использовать для даты символы верхнего и нижнего регистров и оставлять между месяцем, днем и годом один и более пробела.
• Дата и время должны отделяться пробелами. Если ввести дату без времени, то будет принято стандартное время 12:00 АМ (24:00).
• Если опустить дату, то будет установлено значение по 1 января 1900.
Ввод дат:
Sept 23 1949
SEPT 23 1949
September 23 1949
Sept 1949 23
1949 sept 23
При использовании числового формата значений DATETIME разрешается использование символов наклонной черты, дефиса и точки в качестве разделения между единицами времени:
6/24/71
6-24-1971
6.24.1971
06.24.71
Значения без разделителей, состоящий из 6 или 8 цифр, всегда интерпретируется в следующем порядке: год, месяц и день. Причем на день и месяц всегда выделяется по 2 знаки.
Заметьте, если вы работаете с типом DATETIME, и в качестве значения вставите пустой элемент, то не получите значение NULL. Если в качестве значения даты и времени ввести два апострофа, не вставляя между ними никаких символов, SQL Server интерпретирует их как 1 января 1900, 24:00.
Единицы времени вводят в следующем порядке: часы, минуты, секунды и миллисекунды. Чтобы набор чисел можно было интерпретировать как время, а не дату, нужно между единицами времени ставить двоеточие.
11:21
11:21:30:871
6 ам
7 РМ
Настроить формат можно с помощью команды SET DATEFORMAT (mdy / ymd), SET LENGUAGE задает язык.
Тип SMALLDATETIME для хранения данных в более узком диапазоне и с меньшей точностью. Однако экономит место на диске.
Достигните свои возможные результаты, используя информационные технологии. Официальные представители фирмы 1с в волоколамске помогут в этом.
Предлагаю в качестве подарка скачать бесплатную книгу: причины зависаний на ПК, восстановление данных, компьютерная сеть через электропроводку и много других интересных фишек.
Еще больше интересных новостей, а главное общение, решений ваших проблем! Добавляйтесь в телеграм — https://t.me/mycompplus
Понравилась полезная статья? Подпишитесь на RSS и получайте больше нужной информации!
Руководство по SQL. Типы данных. – PROSELYTE
Тип данных в языке структурированных запросов SQL – это атрибут, которые определяет тип данных любого объекта. Каждая колонка, переменная и выражение должны относится к одному из типов данных SQL.
Мы используем типы данных во время создания таблиц, определяя, к какому именно из них принадлежит каждая колонка нашей таблицы.
Ниже приведены типы данных языка SQL, разделённые по категориям:
- целочисленные
- числа с плавающей точкой
- время и дата
- символы
- символы Unicode
- бинарные
- другие
Целочисленные типы данных
Тип данных | От | До |
---|---|---|
bigint | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
int | -2,147,483,648 | 2,147,483,647 |
smallint | -32,768 | 32,767 |
tinyint | 0 | 255 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^38 -1 |
money | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 |
smallmoney | -214,748.3648 | +214,748.3647 |
Типы данных с плавающей точкой
Тип данных | От | До |
---|---|---|
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
Время и дата
Тип данных | От | До |
---|---|---|
datetime | 1 Января, 1753 | 31 Декабря, 9999 |
smalldatetime | 1 Января, 1900 | 6 Июня, 2079 |
date | Хранит дату в формате May 30, 2016 | |
time | Хранит время в формате 15:30 P.M. |
Символы
Тип данных | Описание |
---|---|
char | Максимальная длина – 8,000 символов. (Фиксированная длина символов, которые не входят в Unicode) |
varchar | Максимальная длина – 8,000 символов. (Изменяющаяся длина данных, не входящих в Unicode). |
varchar(max) | Максимальная длина – 231characters, Изменяющаяся длина данных, не входящих в Unicode (только для SQL Server 2005). |
text | Изменяющаяся длина данных, не входящих в Unicode с максимальной длинной – 2,147,483,647 символов. |
Символы Unicode
Тип данных | Описание |
---|---|
nchar | Максимальная длина – 4,000 символов.( Фиксированная длина Unicode) |
nvarchar | Максимальная длина – 4,000 символов.( Изменяющаяся длина Unicode) |
nvarchar(max) | Максимальная длина – 231 символ. ( Изменяющаяся длина Unicode, только для SQL Server 2005) |
ntext | Максимальная длина – 1,073,741,823 символов. ( Изменяющаяся длина Unicode) |
Бинарные типы данных
Тип данных | Описание |
---|---|
binary | Максимальная длина – 8,000 байтов.( Фиксированная длина бинарных данных) |
varbinary | Максимальная длина – 8,000 байтов.( Изменяющаяся длина бинарных данных) |
varbinary(max) | Максимальная длина – 231 байт.(Фиксированная длина бинарных данных. Только для SQL Server 2005) |
image | Максимальная длина – 2,147,483,647 байтов. ( Изменяющаяся длина бинарных данных) |
Другие типы данных
Тип данных | Описание |
---|---|
sql_variant | Хранит значения различных типов данных, поддерживаемых сервером SQL, за исключением, text, ntext и timestamp. |
timestamp | Хранит уникальное для базы данных значение, которое обновляется при каждом изменении записи. |
uniqueidentifier | Хранит глобальный уникальный идентификатор (GUID) |
xml | Хранит XML данные. Мы можем хранить экземпляр xml в колонке, либо в переменной ( Только для SQL Server 2005). |
cursor | Хранит ссылку на курсор. |
table | Хранит результирующее множество для крайней обработки. |
На этом мы заканчиваем изучение типов данных.
В следующей статье мы рассмотрим операторы языка структурированных запросов SQL.
Подробно о типах данных | SQL
В следующих выпусках рубрики «T-SQL для начинающих» будет рассказано о применении синтаксиса T-SQL для построения таблиц. Но прежде чем начинать строить таблицы, необходимо поговорить о типах данных. Для каждого столбца таблицы должен быть определен некоторый тип данных, например, целые (integer) или символьные (character). Это позволяет системе в последующем контролировать данные, которые будут помещаться в этот столбец. В предлагаемой статье автор рассматривает предусмотренные в системе типы данных и рассказывает о том, как создавать собственные типы данных. Подобные дополнительные типы данных следует создать до того как начнется построение таблиц, ведь при создании таблиц могут понадобиться ссылки на эти типы данных. Определяемые пользователями типы данных позволят существенно усилить контроль над данными и повысить их целостность, особенно в проектах, в которых с базами данных параллельно работают несколько разработчиков.
При создании таблицы необходимо указать тип данных для каждого столбца. Любые данные, помещаемые в столбец, должны отвечать этому типу данных. В некоторых случаях следует указывать и допустимую длину данных в столбце. В листинге 1 приведен оператор SQL, который создает таблицу авторов Authors в базе данных публикаций Pubs, спользуя только предусмотренные в системе типы данных.
Большинство столбцов в этой таблице являются текстовыми полями. Номер телефона, обозначение штата и почтовый индекс всегда имеют постоянную длину, поэтому соответствующие им столбцы phone, state и ZIP удобнее объявить символьными (char). Имя автора, его адрес и город, где он живет, могут различаться по длине, поэтому для них предпочтительнее использовать тип символьных данных переменной длины (varchar). Столбец contract с информацией о наличии контракта с автором, в котором данные представляются в форме да/нет, целесообразно отнести к двоичному типу данных bit, у которого имеется два возможных значения — 0 и 1. Теперь остановимся подробнее на системных типах данных.
В версии SQL Server 6.0 определено 19 типов данных, а в версии SQL Server 7.0 добавлено еще 4 типа для удобства работы с закодированными с помощью Unicode данными, а также для поддержки приложений, основанных на использовании хранилищ данных. Каждый тип данных имеет ряд разновидностей, отличающихся возможным набором значений. Знание этих значений облегчит выбор подходящего типа данных.
Символьные данные типа char предсавляют собой один из наиболее распространенных типов данных. К этому типу относятся такие символьные данные, как имена или адреса. В версии SQL Server 6.5 длина любого столбца с символьными данными ограничивалась 255 знаками. Если же информация оказывалась длиннее, к примеру, если в столбец предполагалось вводить свободный комментарий по поводу контракта, то тогда следовало использовать текстовый тип данных (text). В SQL Server 7.0 это ограничение отменено, так что символьное поле может содержать до 8000 байтов. Верхняя граница обусловлена размером страницы памяти, поскольку ни одна запись не может располагаться в памяти на нескольких страницах. В тех случаях, когда для столбца определен тип данных char, данные следует помещать в одинарных кавычках, как показано в следующем примере:
UPDATE..... SET..... WHERE.....
Как отмечалось в статье «Работа с символьными данными», помещенной в майском номере журнала, можно выбрать символьный тип данных либо фиксированной длины, char, либо переменной длины, varchar. Фиксированный размер оказывается предпочтительным в тех случаях, когда данные имеют одинаковую или сходную длину, например, при вводе идентификатора автора (часто в этом качестве используют индивидуальный номер системы социальной безопасности, что, кстати, является плохим примером для подражания). В большинстве ситуаций применение переменной длины данных не приводит к сколько-нибудь заметному увеличению времени обработки. В то же время фамилия автора может быть очень длинной, так что использование типа varchar оказывается вполне оправданным. Применительно к подавляющему большинству фамилий фиксированная длина поля означает потерю значительного объема памяти, поэтому лучше использовать тип данных varchar. При выборе того или иного типа данных всегда следует искать компромисс с учетом двух аспектов: с одной стороны, потери полезного объема памяти при использовании данных фиксированной длины, а с другой стороны, увеличения времени обработки в случае применения данных переменной длины.
SQL Server 7.0 поддерживает набор символов Unicode. В связи с этим, чтобы воспользоваться всеми преимуществами, предоставляемыми расширенными возможностями Unicode, необходимо было ввести дополнительный тип данных.Если вам захочется использовать символьные данные Unicode, то следует указать тип данных Nchar или, если это информация переменной длины, то Nvarchar. При вводе данных Unicode их следует заключать в одиночные кавычки, причем непосредственно перед ними необходимо поставить заглавную латинскую букву N. Если в рассмотренном ранее примере имя автора отнесено к типу данных Unicode, то предыдущий оператор обновления примет следующий вид:
UPDATE..... SET..... WHERE.....
Ограничение максимальной длины информации при работе с типом данных Unicode составляет 4000 знаков. Это объясняется тем, что для хранения каждого символа Unicode требуется два байта памяти. Поэтому на стандартную страницу памяти размером 8К можно поместить в два раза меньше символов Unicode, чем при использовании обычных символов.
Базовый тип целых чисел integer охватывает диапазон от -2 147 483 638 до 2 147 483 647. Уменьшенные целые smallint включают числа от -32 768 до 32767. Зачастую, когда точно известно, что диапазон возможных числовых значений данных невелик, лучше применять тип данных smallint. К примеру, в базе данных личной коллекции компакт-дисков при выборе типа данных для первичного ключа целесообразно использовать тип данных smallint. Ведь предположение о том, что число компакт-дисков в такой коллекции превысит 32 676 единиц, кажется неправдоподобным. В этой ситуации не следует для оптимизации памяти использовать тип данных tinyint, поскольку он позволяет обрабатывать только значения от 0 до 255. Такой тип данных можно было бы применить для нумерации депозитных сертификатов, а для коллекции компакт-дисков он может оказаться недостаточным.
Если приложение таково, что необходимо получать из базы данных числовое значение в строго указанном формате, то для этого следует выбрать один из точных числовых типов данных. Существуют два точных числовых типа данных: десятичный (decimal) и числовой (numeric), которые по существу совпадают друг с другом. Для них можно задать требуемые точность p и масштаб s в формате decimal (p,s). Точность представляет собой число значащих символов по обе стороны от десятичной запятой, а масштаб — количество символов справа от нее. Например, число 123,4567 можно хранить в столбце, для которого тип данных задан в виде (7,4). Если число, которое должно быть помещено в столбец с точным числовым типом данных, содержит больше десятичных знаков, чем указано в типе данных, то такое число округляется до требуемой точности. Числовые типы данных могут использовать для хранения значений от 2 до 17 байтов.
Некоторые числа нельзя точно представить в десятичном виде с ограниченным числом знаков, например, одну треть или число пи. Для записи таких чисел используются действительный (real) или плавающий (float) типы данных. Данные действительного типа хранятся с точностью от 1 до 7 знаков. Плавающий формат, который иногда называют еще форматом двойной точности, может хранить числа, содержащие от 8 до 15 значащих цифр. Действительный и плавающий типы данных применяются в научных приложениях для хранения чисел, не требующих точного двоичного выражения. Одна-две последние цифры могут не вполне точно сохраняться при преобразованиях в двоичный формат. Поэтому такие числа не следует использовать в операциях точного сравнения, применяемых для формулирования условий оборота WHERE.
Предположим, что в базе данных необходимо хранить двоичную информацию. В этой ситуации имеется выбор между двумя форматами представления: c фиксированной или переменной длиной. Данным фиксированной длины соответствует тип данных binary, а двоичным данным переменной длины соответствует тип данных varbinary.
Для представления денежных значений используются два типа данных: денежный (money) и малый денежный (smallmoney). Тип данных денежный применяется для хранения значений от плюс до минус 922 триллионов. Большинство из нас вполне может пользоваться малым денежным типом данных, который перекрывает диапазон значений от -214 748,3648 до +214 748,3647. По существующей договоренности денежный тип данных при хранении имеет четыре десятичных знака после запятой, а для его представления пользователям требуется только два знака . Отметим, что многие финансовые транзакции не используют денежный тип данных. Например, в биржевыех торговых операциях применяются 1/32 доли, для хранения которых необходимо пять десятичных мест.
В SQL Server и дата и время хранятся в одном столбце, так что если с помощью функции GETDATE() запросить текущую дату, то при этом система сообщит и время. Для дат применяются два типа данных, datetime и smalldatetime. Тип данных smalldatetime охватывает период времени от 1 января 1900 года до 6 июня 2079 года и включает время с точностью до минуты. Такого диапазона достаточно для подавляющего большинства проектов. Тип данных datetime годен для использования до 31 декабря 9999 года (это следует учитывать при решении проблемы 10К года). Начало диапазона этого типа данных датируется 1 января 1753 года. Почему 1753? Это связано с переходом с юлианского на грегорианский календарь. Несмотря на то, что грегорианский календарь был предложен некоторое время назад, процесс его принятия продолжался в течение приблизительно 30 лет. На протяжении этого периода некоторые страны уже приняли грегорианский, а другие еще нет. Поэтому для того, чтобы дата воспринималась однозначно, надо знать географическое положение объекта. Кроме того, год начинался не 1 января, а 1 марта. Поэтому такая дата, как 15 января 1792 года, может интерпретироваться и как середина первого месяца 1492 года, и как середина 11-го месяца 1793 года. Создатели SQL Server решили не рисковать, и поэтому приняли решение не воспринимать даты, относящиеся к периоду времени до начала 1753 года. Следует отметить также, что тип данных datetime показывает тысячные доли секунды, хотя точность гарантируется только до 1/300 части секунды.
Для символьных данных длиннее, чем 255 знаков, в SQL Server 6.5 следует применять тип данных текст (text). В SQL Server 7.0 граница применимости этого типа данных отодвигается до 8000 знаков. Для больших двоичных объектов (BLOB), таких как цифровые образы, используется тип данных образ (image). ?анные типа текст или образ не хранятся в строках, поэтому к ним не применимо ограничение на размер страницы памяти. В строках хранятся лишь указатели на страницы базы данных, в которых находится информация. Для обновления этих типов данных необходимы специальные процедуры, которые выходят за рамки рассмотрения настоящей статьи. (Более подробно об этом написано в статье Майкла Оути «Нам не страшен огромный BLOB», опубликованной в апрельском номере журнала.) Здесь необходимо отметить только то, что изменения текстовых данных или образов не фиксируются в журнале, а указатели не обновляются. Изменяются только сами поля, содержащие текст или образ.
Некоторые типы данных трудно отнести к какой-либо категории. Один из таких типов — битовые данные (bit). Это целое число, которое может принимать только два значения — 0 и 1 (в одном байте можно хранить восемь подобных величин). Битовые значения часто применяются в качестве флагов, принимающих значения истина или ложь. Их можно использовать, например, для хранения сведений о том, заключен ли контракт с автором, или принадлежат ли его книги к бестселлерам, или для чего-либо аналогичного. Одно незначительнгое отличие версии SQL Server 7.0 состоит в том, что для столбцов с битовыми данными теперь разрешены и неопределенные значения, в то время как в версии SQL Server 6.5 допустимы были только значения 0 и 1.
Для внутренних целей в SQL Server используется тип данных метка времени (timestamp). Этот тип данных генерирует уникальное значение, которое обновляется каждый раз, когда модифицируется информация в строке таблицы. Метки времени являются внутренними значениями, поддерживаемыми в SQL Server. Они не соответствуют реальным датам и времени.
В SQL Server 7.0 введены два новых типа данных, которые более подробно будут рассмотрены в последующих публикациях. тип данных уникальный идентификатор (uniqueidentifier) позволяет присвоить столбцу уникальное в глобальном масштабе значение. Глобальная уникальность означает неповторимость не только в рамках конкретной базы данных или в пределах одного компьютера, но вообще везде. Этот тип данных играет важную роль при работе с хранилищами данных, когда информация собирается в него из множества разнообразных источников. Тип данных курсор (cursor) применяется для переменных курсора. Использование курсора — отдельная большая тема, которой автор собирается посвятить целую статью.
SQL Server позволяет пользователям определять собственные типы данных, которые являются комбинацией системных типов данных. Как правило, они базируются на системном типе данных определенной длины (имеются в виду числовые и символьные значения), для которого назначаются правила и значения по умолчанию. Например, можно определить тип данных Почтовый индекс как char(10), а тип данных Телефонный номер как char(14). Тогда тип данных Почтовый индекс будет гарантировать целостность форматов почтовых индексов во всех столбцах, для любого клиента, поставщика, служащего или контактного лица где угодно по всему миру.
Но в тех случаях, когда пользователь хочет создать тип данных, имея лишь набросок желаемого, SQL Server оказывается не слишком полезным. К примеру, нельзя создать новый тип данных, обладающий целым набором связанных с ним свойств, для таких понятий как широта или долгота для географических приложений. Ведь для него пришлось бы прибегнуть к методам сферической тригонометрии для вычисления расстояния между двумя точками. Возможно, когда-нибудь SQL Server станет настолько гибким, что сможет помочь и в таких ситуациях.
На данный момент добавлять новые типы данных можно с помощью SQL Server Enterprise Manager или из анализатора запросов Query Analyzer (в версии SQL Server 6.5 это производится из окна ISQL/w). Каждый тип данных, который добавляют пользователи, действует только в пределах конкретной базы данных. Если же необходимо создать тип данных для всех баз, то его следует поместить в базу данных моделей Model. С момента создания в этой базе данных новый тип данных будет доступен во всех остальных базах. Существует другой способ решения этой проблемы — написать сценарий или сгенерировать его с помощью утилиты генерации сценариев Generate SQL Script, входящей в состав SQL Server. Тогда этот сценарий можно будет запускать из любой базы данных. В Enterprise Manager следует дважды щелкнуть правой кнопкой мыши на названии базы данных, а затем последовательно выбрать из меню Все задачи (All tasks), Генерировать сценарий SQL (Generate SQL Script) и наконец, выбрать пункт создания сценария для всех типов данных.
В окне Enterprise Manager следует выбрать пункт Базы данных (Databases), выбрать конкретную базу из списка, а затем перейти к пункту Определяемые пользователем типы данных (User-Defined Data Types). Щелкните правой кнопкой мыши и выберите пункт Свойства новых определяемых пользователем типов данных (New User-defined Datatype Properties). После этого приступайте к определению типа данных.
Как принято в SQL Server, добавить новый тип данных можно также с помощью анализатора запросов Query Analyzer. Обратите внимание на то, что кавычки заключают название системного типа данных, но вокруг названия вновь создаваемого типа данных их не ставят. Кроме того, полезно сразу указать, допускает ли создаваемый тип данных неопределенные значения. Для конкретного столбца можно будет в последующем переопределить эту установку, но первоначальная спецификация допустимых возможностей облегчает введение стандартов. А это и является той целью, ради которой вводятся новые типы данных.
При определении типов данных оператор создания таблицы может выглядеть так, как показано на листинге 2. Для тех столбцов, к которым применяются определенные пользователем типы данных, не требуется указывать длину помещаемых в него сведений, — ведь она уже была определена при создании типа данных. Можно также не сообщать системе о том, допустимы ли в рассматриваемом столбце неопределенные значения, поскольку это задано в спецификации типа данных. Хотя не повредит включить такое упоминание и в этот оператор.
Правильный подбор типов данных является частью проектирования таблицы. В SQL Server 6.5 очень трудно изменить свойства столбца после того, как он был создан. В версии SQL Server 7.0 это возможно, но проводить такую процедуру следует с крайней осторожностью.
Введение определяемых пользователем типов данных является одним из способов обеспечения целостности информации в различных приложениях, над которыми трудятся разные команды разработчиков. При этом предполагается , что все они используют SQL Server. Однако при перенесении кода SQL в другие СУБД целесообразно избегать применения определяемых пользователем типов данных.
Майкл Д. Рейли ([email protected]) является одним из основателей и вице президентом компании Mount Vernon Data Systems, которая занимается консалтингом по Windows NT и SMS, а также разработкой приложений,широко использующих базы данных. Он обладает сертификатами MCSE и MCT по Windows NT, SQL Server и SMS.
au_id varchar(11) NOT NULL , aulname varchar (40) NOT NULL , au_fname varchar (20) NOT NULL , phone char (12) NOT NULL , address varchar (40) NULL , city varchar (20) NULL , state char (2) NULL , zip char (5) NULL , contract bit NOT NULL)
SP_ADDTYPE id, `char(11)`, `not null` GO SP_ADDTYPE phonenumber, `char(12)`, `not null` GO SP_ADDTYPE statecode, `char(2)`, `null` GO SP_ADDTYPE zipcode, `char(10)`, `null` GO CREATE TABLE dbo. authors ( au_id id NOT NULL , au_lname varchar (40) NOT NULL , au_fname varchar (20) NOT NULL , phone phonenumber(12) , address varchar (40) NULL , city varchar (20) NULL , state statecode, zip zipcode, contract bit NOT NULL )
телеграм канал. Подпишись, будет полезно!
SQL – Типы данных | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Тип данных в SQL, это атрибут, который определяет тип данных любого объекта. Каждый столбец, переменная и выражение связанных с типом данных в SQL.
Вы могли бы использовать эти типы данных при создании таблиц. Вы бы могли выбрать конкретный тип данных для столбца таблицы на основе ваших требований.
SQL Server предлагает шесть категорий типов данных для использования:
Точные типы числовых данных
ТИП ДАННЫХ | От | До |
---|---|---|
bigint | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
int | -2,147,483,648 | 2,147,483,647 |
smallint | -32,768 | 32,767 |
tinyint | 0 | 255 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^38 -1 |
money | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 |
smallmoney | -214,748.3648 | +214,748.3647 |
Примерные типы числовых данных
ТИП ДАННЫХ | От | До |
---|---|---|
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
Типы данных даты и времени
ТИП ДАННЫХ | От | До |
---|---|---|
datetime | 1 января 1753 | 31 декабря, 9999 |
smalldatetime | 1 января 1900 | 6 июня 2079 |
date | Сохраняет дату, как 30 июня 1991 года | |
time | Сохраняет время суток, как 12:30 |
Примечание – Здесь, дата и время имеет точность 3,33 миллисекунды , как и smalldatetime имеет 1 минуту точности.
Типы данных символьных строк
ТИП ДАННЫХ | Описание |
---|---|
char | Максимальная длина 8000 символов. (Фиксированная длина без Unicode символов) |
varchar | Максимум 8000 символов. (Переменная длина данных не-Unicode). |
varchar(max) | Максимальная длина 231 символов, переменная длина данных не Unicode (SQL Server 2005). |
text | Переменная длина данных, не Unicode с максимальной длиной 2147483647 символов. |
Типы строк данных символов Unicode
ТИП ДАННЫХ | Описание |
---|---|
nchar | Максимальная длина 4000 символов. (Фиксированная длина Unicode) |
nvarchar | Максимальная длина 4000 символов. (Переменная длина Unicode) |
nvarchar(max) | Максимальная длина 231 символов (SQL Server 2005). (Переменная длина Unicode) |
ntext | Максимальная длина 1,073,741,823 символов. (Переменная длина Unicode) |
Двоичные типы данных
ТИП ДАННЫХ | Описание |
---|---|
binary | Максимальная длина 8000 байт (фиксированная длина двоичных данных) |
varbinary | Максимальная длина 8000 байт. (Переменной длины двоичных данных) |
varbinary(max) | Максимальная длина 231 байт (SQL Server 2005). (Переменная длина двоичные данные) |
image | Максимальная длина 2147483647 байт. (Переменная длина двоичных данных) |
Другие типы данных
ТИП ДАННЫХ | Описание |
---|---|
sql_variant | Сохраняет значение различных типов данных SQL Server с поддержкой, за исключением текста, ntext и timestamp. |
timestamp | Хранит уникального номер базы данных, который обновляется каждый раз, когда строка получает обновление |
uniqueidentifier | Хранит уникальный глобальный идентификатор (GUID) |
xml | Хранит XML данные. Вы можете хранить экземпляры XML в столбце или переменной (SQL Server 2005). |
cursor | Ссылка на объект курсора |
table | Хранит набор результатов для последующей обработки |
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
SQL (типы данных): таблица
В современном мире насчитывается большое количество средств и технологий, предназначенных для хранения информации. Одним из наиболее распространенных способов являются базы данных, для работы с которыми используются различные системы управления. Данный способ хранения предполагает, что все данные четко структурированы и занесены в специальные таблицы. Они, в свою очередь, состоят из столбцов-атрибутов определенного типа данных.
Тип данных – что это?
Сегодня существует несколько определений, объясняющих понятие термина «тип данных». Однако каждое из них имеет один общий смысл. Поэтому тип данных можно условно обозначить как группу данных, характеризуемую ее значениями (символьными, числовыми и т.д.), а также операциями, применяемыми к рассматриваемым значениям.
Сфера применения типов данных многогранна. Они используются не только для хранения информации, но также и в программировании для решения различных задач. При проектировании программ широко распространена практика разработки и использования собственных типов данных с определенным набором операций. Однако в основе пользовательских всегда лежат базовые типы данных. SQL-стандарт также основывается на использовании наиболее распространенных базовых типов, но с рядом определенных дополнений.
Классификация типов данных
Группировка данных по их типу возникла давно и была вызвана необходимостью структурирования информации для более удобной обработки. В настоящее время основу существующих типов данных образуют два: символьный и числовой.
На их базе была разработана современная классификация, включающая в себя указатели, логический, целочисленный, числовой с плавающей точкой и строковый типы данных. SQL—классификация полностью охватывает все вышеперечисленное. Однако для некоторых современных СУБД существуют дополнительные надстройки. К ним относятся Oracle и MySQL.
Базовые типы данных
Использующиеся при создании атрибутов таблиц, отвечающих стандартам языка SQL, типы данных подразделяются на 4 класса:
- строковые значения;
- дроби;
- целочиселенные значения;
- значения даты и времени.
Строковый тип данных
Первая группа значений позволяет хранить любые данные, представленные в виде символов.
Это могут быть специальные символы, цифры и буквы, которые в своей совокупности будут обрабатываться как строки в любом запросе SQL. Типы данных, таблица с перечислением которых представлена ниже, образуют первую группу.
CHAR (size) | Используется для хранения строк. Параметр в скобках позволяет фиксировать длину хранимой строки. Максимальный размер в байтах, который можно задать для строки, – 255. |
VARCHAR (size) | Аналогично предыдущему типу позволяет хранить строки длиной до 255 символов. Однако отличие от CHAR в том, что для хранения значения данного типа выделяется требуемое количество памяти. То есть для строки, состоящей из 5-ти символов, потребуется 6 байт памяти. В первом же случае память для значения будет выделена согласно указанному параметру. |
TINY ТЕХТ | Используется для хранения строковых данных размером до 255 символов. |
ТЕХТ | Используется для хранения текстовой информации, размер которой не превышает 65 535 букв. |
BLOB | Рассматриваемый тип данных аналогичен типу ТЕХТ и позволяет сохранять в базе текстовую информацию, объем которой может достигать 65 535 знаков. Но на практике используется для хранения звуковых данных, рисунков, электронной документации и пр. |
MEDIUM ТЕХТ | Был разработан на базе типа ТЕХТ, но позволяет хранить больше данных за счет увеличенного размера до 16 777 215 букв или символов. |
MEDIUM BLOB | Используется для сохранения в базе электронных документов, размер которых не превышает отметку в 16 777 215 знаков. |
LONG ТЕХТ | Функционально аналогичен предыдущим типам, но с увеличенным объемом памяти до 4 гигабайт. |
LONG BLOB | Позволяет помещать в базу данные больших объемов (4 294 967 295 символа). |
ENUM (a, b, c, etc.) | Специальный тип данных, использующийся для задания списка возможных значений. Позволяет указать 65535 значений. Строки рассматриваемого типа могут принимать единственное значение из указанных в множестве. В случае, когда будет происходить добавление значений, которые не присутствуют в заданном списке, в таблицу будут записаны пустые значения. |
SET | Задает множество допустимых значений. В отличие от предыдущего типа, используется для содержания 64 параметров, которые могут быть проинициализированы любым или несколькими элементами из заданных аргументов. |
Таблица дробных типов данных
Дробные SQL типы данных используются для хранения чисел с плавающей точкой. На практике, как правило, задают различные финансовые показатели. В зависимости от необходимой точности применяют один из трех представленных:
FLOAT (size, d) | Позволяет содержать дробные числа указываемой точности d. |
DOUBLE (size, d) | Используется для хранения дробных чисел с двоичной точностью. |
DECIMAL(size, d) | Хранение дробных значений в виде строк. |
Например, в банковских расчетах точность дробной части достигает значение в 8-мь или 10-ть знаков. Первые два типа не могут быть задействованы в данной области.
Хранение финансовых показателей в виде строк значительно облегчает решение многих задач. Однако при решении финансовых вопросов или проведении различных операций SQL преобразование типов данных имеет огромное значение. Разработчики должны обязательно учитывать тип хранения и способы обработки, чтобы данные всегда оставались неизменными.
Целочисленный тип данных
Целые числа – отдельная группа чисел, образующая один из основных классов. Целочисленные SQL типы данных основываются на использовании базового типа INTEGER с некоторым расширением его свойств.
INT (size) | Хранение целочисленных значений, образующих диапазон [-231; 231-1] |
TINYINT (size) | Служит для хранения чисел в диапазоне от -128 до 127 |
SMALLINT (size) | Характеризуется увеличенным диапазоном хранимых значений в размере от -32 768 до 32 767 |
MEDIUMINT (size) | Используется для хранения чисел размерностью от -223 до 223-1 |
BIGINT (size) | Охватывает диапазон целочисленных значений, начиная с -263 и заканчивая 263-1 |
Выбрав правильный тип данных, можно значительно сэкономить память и уменьшить затраты серверного времени, когда выполняются необходимые SQL-запросы. Типы данных, а точнее их диапазон, определяют количество требуемого места для хранения.
Поэтому разработчикам баз данных важно помнить, что использование больших диапазонов для атрибутов влечет увеличение затрат на память. Необходимо четко анализировать решаемые задачи и выявлять случаи, где известен примерный диапазон и определено условие использования чисел со знаком. Если диапазон используемых аргументов невелик, а все числа будут положительными, то будет корректнее использовать беззнаковый тип, образуемый атрибутом UNSIGNED.
Типы данных даты и времени
При изучении основ SQL типы данных даты и времени представляют особый интерес.
Использование нижеуказанных типов предоставляет дополнительные преимущества при разработке систем, работа которых зависит от временных показателей.
DATE | Главное предназначение — хранение даты в формате ГОД-МЕСЯЦ-ДЕНЬ (“ГГГГ-MM-ДД” или «уууу-mm-dd» ). Обычно значения разделены через «-», однако в качестве разделителя может быть задействован любой символ, кроме цифр. |
TIME | Позволяет заносить в ячейку таблицы временные значения. Все значения задаются форматом «hh:mm:ss» |
DATETIME | Объединяет функции предыдущих двух типов. Формат хранения представлен следующим образом: «уууу-mm-dd hh:mm:ss». |
TIMESTAMP | Сохраняет дату и время, исчисляемое количеством секунд, прошедших начиная с полуночи 1.01.1970 года и до заданного значения. |
YEAR (M) | Используется для хранения годовых значений в двух- или четырехзначном формате. |
Что ещё необходимо знать?
Все эти типы данных детально систематизированы компанией Microsoft. SQL типы данных ею разработаны более подробно.
Например, фирмой подробно расписан, какой объем памяти в байтах выделяется при использовании каждого типа. Изучив имеющуюся информацию, разработчикам проще проектировать структуру таблиц и всей базы исходя из аппаратных возможностей сервера.
Специальный указатель – NULL
Иногда при заполнении базы данных возникает ситуация, когда при добавлении записи в таблицу необходимость вносить информацию во все столбцы отсутствует. Для этого применяется специальный указатель пустого значения – NULL, который в качестве вспомогательного средства использует язык SQL. Типы данных столбцов, которые не обязательно должны быть заполнены, при создании таблиц указываются с оператором, разрешающим включение пустых значений. В другом случае оператор NULL с дополнительной приставкой NOT может быть задействован для указания обязательного заполнения всех значений.
Указатель NULL не имеет типа, а просто указывает на пустое значение в таблицах баз данных. Поэтому он может быть скомбинированным с любым из вышеперечисленных типов.
Типы данных SQL — JournalDev
Типы данных SQL определяют тип значения, которое может храниться в столбце таблицы. Например, если мы хотим, чтобы в столбце хранились только целочисленные значения, мы можем определить его тип данных как int
.
Типы данных SQL
Типы данных SQL можно условно разделить на следующие категории.
- Числовые типы данных, такие как int, tinyint, bigint, float, real и т. Д.
- Типы данных даты и времени, такие как Date, Time, Datetime и т. Д.
- Символьные и строковые типы данных, такие как char, varchar, text и т. Д.
- Типы данных символьной строки Unicode, например nchar, nvarchar, ntext и т. Д.
- Типы двоичных данных, такие как binary, varbinary и т. Д.
- Разные типы данных — clob, blob, xml, cursor, table и т. Д.
Важные моменты типов данных SQL
- Не все типы данных поддерживаются всеми поставщиками реляционных баз данных. Например, база данных Oracle не поддерживает DATETIME, а MySQL не поддерживает тип данных CLOB.Поэтому при проектировании схемы базы данных и написании запросов sql обязательно проверьте, поддерживаются ли типы данных или нет.
- Перечисленные здесь типы данных включают не все типы данных, это наиболее часто используемые типы данных. Некоторые поставщики реляционных баз данных имеют свои собственные типы данных, которые могут не быть здесь перечислены. Например, Microsoft SQL Server имеет типы данных
money
иsmallmoney
, но, поскольку он не поддерживается другими популярными поставщиками баз данных, он не указан здесь. - У каждого поставщика реляционных баз данных есть собственный предел максимального размера для разных типов данных, вам не нужно запоминать его. Идея состоит в том, чтобы знать, какой тип данных будет использоваться в конкретном сценарии.
Давайте подробно рассмотрим различные категории типов данных sql.
Числовые типы данных SQL
Тип данных | От | до |
---|---|---|
бит | 0 | 1 |
tinyint | 0 | 255 |
smallint | -32,768 | 32,767 |
внутренний | -2,147,483,648 | 2,147,483,647 |
bigint | -9,223,372,036, 854,775,808 | 9,223,372,036, 854,775,807 |
в десятичном виде ^ | ||
числовой | -10 ^ 38 +1 | 10 ^ 38-1 |
с плавающей запятой | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
Типы данных даты и времени SQL
Тип данных | Описание |
---|---|
ДАТА | Сохраняет дату в формате ГГГГ-ММ-ДД |
ВРЕМЯ | Сохраняет время в формате ЧЧ: MI: SS |
ДАТА | Сохраняет информацию о дате и времени в формате ГГГГ-ММ- DD HH: MI: SS |
TIMESTAMP | Сохраняет количество секунд, прошедших с эпохи Unix (‘1970-01-01 00:00:00’ UTC) |
YEAR | Сохраняет год в виде двух цифр или 4-значный формат.Диапазон от 1901 до 2155 в 4-значном формате. Диапазон от 70 до 69, что соответствует 1970-2069 гг. |
Типы данных символов и строк SQL
Тип данных | Описание |
---|---|
CHAR | Фиксированная длина с максимальной длиной 8000 символов |
VARCHAR | Хранилище переменной длины с максимальной длиной 8000 символов |
VARCHAR (макс.) | Хранилище переменной длины с указанным максимальным количеством символов, не поддерживается в MySQL |
TEXT | Хранилище переменной длины с максимальным размером данных 2 ГБ |
Обратите внимание, что все вышеперечисленные типы данных предназначены для потока символов, они не должны использоваться с данными Unicode.
Символьные и строковые типы данных SQL Unicode
Тип данных | Описание |
---|---|
NCHAR | Фиксированная длина с максимальной длиной 4000 символов |
NVARCHAR | Хранение переменной длины с максимальной длиной 4000 символов |
NVARCHAR (макс.) | Хранилище переменной длины с предоставленным максимальным количеством символов |
NTEXT | Хранилище переменной длины с максимальным размером данных 1 ГБ |
Обратите внимание, что указанные выше типы данных не поддерживаются в базе данных MySQL.
Типы двоичных данных SQL
Тип данных | Описание |
---|---|
BINARY | Фиксированная длина с максимальной длиной 8000 байт |
VARBINARY | Хранение переменной длины с максимальной длиной 8000 байт |
VARBINARY (max) | Хранилище переменной длины с предоставленным максимальным количеством байтов |
IMAGE | Хранилище переменной длины с максимальным размером двоичных данных 2 ГБ |
Разные типы данных SQL
Тип данных | Описание |
---|---|
CLOB | Символьные большие объекты, которые могут содержать до 2 ГБ |
BLOB | Для больших двоичных объектов |
XML | для хранения данных xml |
JSON | для хранения данных JSON |
Вот и все для быстрого обзор типов данных SQL.
Ссылка: Типы данных Oracle Database, типы данных mySQL
.
Типы данных SQL
Резюме : в этом руководстве вы узнаете о наиболее часто используемых типах данных SQL, включая типы данных символьных строк, числовые типы данных и типы данных даты и времени.
В базе данных каждый столбец таблицы имеет определенный тип данных. Тип данных определяет тип данных, которые столбец может содержать, например символьные строки, числовые значения и значения даты и времени.
SQL предоставляет набор основных типов данных, которые можно использовать для определения столбцов таблиц.В этом руководстве мы рассмотрим наиболее часто используемые типы данных SQL.
Тип данных символьной строки
Тип данных символьной строки представляет собой символьный тип данных, включая типы символов фиксированной и переменной длины.
Символьный тип данных фиксированной длины
Символьный тип данных фиксированной длины хранит символьные строки фиксированной длины. Ниже показан символьный тип данных SQL с фиксированной длиной:
CHARACTER (n)
В этом синтаксисе n
представляет количество символов, которое может хранить столбец.Параметр n
является необязательным. Если вы его пропустите, система баз данных будет использовать его по умолчанию.
Итак, следующая декларация:
СИМВОЛ
эквивалентно следующему:
СИМВОЛ (1)
Максимальное значение n зависит от реализации системы баз данных.
Большинство систем баз данных используют CHAR
вместо CHARACTER
для представления символьного типа данных фиксированной длины:
CHAR (n)
Следующее определяет столбец с символьным типом данных фиксированной длины, который может хранить до пяти символов:
имя_столбца CHARACTER (5)
Если вы сохраняете строку, длина которой равна двум в столбце выше, то система базы данных добавит три пробела к строке, чтобы гарантировать, что каждое значение в столбце имеет фиксированную длину, равную пяти.
Примером использования символьного типа данных фиксированной длины является хранение сокращений состояний, поскольку все сокращения состояний состоят из двух символов, например CA, NY и TX.
Символ переменной длины или VARCHAR
Для хранения строк переменной длины в столбце используется символьный тип данных переменной длины. Ниже показан синтаксис символа переменной длины SQL:
CHARACTER VARYING (n)
В этом синтаксисе n представляет максимальное количество символов, которое может хранить столбец.Некоторые системы баз данных позволяют указать количество байтов, которое может хранить столбец.
Большинство систем баз данных используют VARCHAR
для представления символьных типов данных переменной длины, таких как MySQL и Microsoft SQL Server. Oracle использует как VARCHAR2
, так и VARCHAR
.
В следующем примере определяется столбец с типом данных VARCHAR
:
first_name VARCHAR (50)
Если вы сохраняете значение длиной 20 в столбце first_name
, система базы данных сохраняет это значение без дополнительных пробелов.
Однако, если вы сохраняете значение, длина которого больше 50, система базы данных может выдать ошибку.
Числовые типы
Числовые значения хранятся в столбцах с типом чисел, обычно обозначаемым как ЧИСЛО
, INTEGER
, REAL
и DECIMAL
.
Ниже приведены числовые типы данных SQL:
- BIT (n)
- BIT VARYING (n)
- DECIMAL (p, s)
- INTEGER
- SMALLINT
- BIGINT
- , s FLOAT (p, s)
- DOUBLE PRECISION (p, s)
- REAL (s)
Десятичные типы
Тип данных DECIMAL
используется для хранения точных числовых значений в базе данных e.г., денежные ценности.
Следующее определяет столбец с типом данных DECIMAL
:
имя_столбца DECIMAL (p, s)
В этом синтаксисе:
- p — точность, которая представляет количество значащих цифр.
- s — это шкала, которая представляет количество цифр после десятичной точки.
Максимальные значения p
и s
зависят от реализации каждой системы баз данных.
Следующее определяет столбец зарплаты с 12 цифрами, которые включают 4 цифры после десятичной точки:
зарплата DECIMAL (12,4)
В столбце зарплаты может храниться число со значением до 99 999 999.9999
Целое число
Целочисленный тип данных хранит целые числа, как положительные, так и отрицательные. Примеры целых чисел: 10, 0, -10 и 2010.
Большинство систем баз данных используют INT
для представления целочисленного типа:
INT
Некоторые варианты целочисленных типов данных: BIGINT
и SMALLINT
.
Типы данных с плавающей запятой
Типы данных с плавающей запятой представляют приблизительные числовые значения. Точность и масштаб десятичных знаков с плавающей запятой имеют переменную длину и практически без ограничений.
Ниже приведены примеры типа данных FLOAT
:
FLOAT ПОПЛАВКОВЫЙ (10) ПОПЛАВКОВЫЙ (50)
Типы даты и времени
Типы данных даты и времени используются для хранения информации, связанной с датами и временем.SQL поддерживает следующие типы данных даты и времени:
Тип данных DATE
Тип данных DATE
представляет значения даты, которые состоят из трех частей: года, месяца и дня. Обычно диапазон типа данных DATE
составляет от 0001-01-01
до 9999-12-31
.
Значение даты обычно указывается в виде:
'ГГГГ-ДД-ММ'
Например, следующее значение DATE
: 31 декабря 2020 г.
:
'2020-12-31'
Тип данных TIME
Тип данных TIME
хранит значения, представляющие время дня в часах, минутах и секундах.
Значения ВРЕМЯ
должны быть указаны в следующей форме:
'ЧЧ: ММ: СС'
Для хранения наносекунд может использоваться дополнительное дробное значение, например:
'10: 59: 30.9999 '
Тип данных TIMESTAMP
Тип данных TIMESTAMP
представляет значения временных меток, которые включают в себя значения DATE
и TIME
.
Значения TIMESTAMP
указаны в следующей форме:
TIMESTAMP 'ГГГГ-ММ-ДД ЧЧ: ММ: СС'
Обратите внимание, что между датой и временем есть разделитель пробел.
Теперь у вас должен быть краткий обзор типов данных SQL, включая типы данных символьной строки, числовые типы данных и типы данных даты и времени.
- Было ли это руководство полезным?
- Да Нет
.
SQL Server: типы данных
Ниже приведен список типов данных, доступных в SQL Server (Transact-SQL), который включает строковые, числовые типы данных и типы данных даты / времени.
Строковые типы данных
Ниже приведены строковые типы данных в SQL Server (Transact-SQL):
Синтаксис типа данных | Максимальный размер | Пояснение |
---|---|---|
СИМВОЛ ( размер ) | Максимальный размер 8000 символов. | Где размер — количество символов для хранения. Фиксированная длина. Пробел заполнен справа до размера символов. Данные не в Юникоде. |
VARCHAR ( размер ) или VARCHAR (макс.) | Максимальный размер 8000 или не более символов. | Где размер — количество символов для хранения. Переменной длины. Если указано max , максимальное количество символов составляет 2 ГБ.Данные не в Юникоде. |
ТЕКСТ | Максимальный размер 2 ГБ. | переменной длины. Данные не в Юникоде. |
NCHAR ( размер ) | Максимальный размер 4000 символов. | Фиксированная длина. Данные Unicode. |
NVARCHAR ( размер ) или NVARCHAR (макс.) | Максимальный размер 4000 или не более символов. | Где размер — количество символов для хранения.Переменной длины. Если указано max , максимальное количество символов составляет 2 ГБ. Данные Unicode. |
NTEXT | Максимальный размер 1 073 741 823 байта. | Переменная длина. Данные Unicode. |
ДВОИЧНЫЙ ( размер ) | Максимальный размер 8000 символов. | Где размер — количество символов для хранения. Фиксированная длина. Пробел заполнен справа до размера символов.Двоичные данные. |
VARBINARY ( размер ) или VARBINARY (макс.) | Максимальный размер 8000 или не более символов. | Где размер — количество символов для хранения. Переменной длины. Если указано max , максимальное количество символов составляет 2 ГБ. Недвоичные данные. |
ИЗОБРАЖЕНИЕ | Максимальный размер 2 ГБ. | Переменная длина. Двоичные данные. |
Числовые типы данных
Ниже приведены числовых типов данных в SQL Server (Transact-SQL):
Синтаксис типа данных | Максимальный размер | Пояснение |
---|---|---|
БИТ | Целое число, которое может быть 0, 1 или NULL. | |
TINYINT | от 0 до 255 | |
МАЛЕНЬКИЙ | -32768 до 32767 | |
ИНТ | -2 147 483 648 до 2 147 483 647 | |
BIGINT | -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 | |
ДЕСЯТИЧНЫЙ ( м , d ) | м по умолчанию 18, если не указано иное. d по умолчанию 0, если не указано. | Где м — это общее количество цифр, а d — количество цифр после десятичной дроби. |
DEC ( м , d ) | м по умолчанию 18, если не указано иное. d по умолчанию 0, если не указано. | Где м — это общее количество цифр, а d — количество цифр после десятичной дроби. Это синоним типа данных DECIMAL. |
ЧИСЛО ( м , d ) | м по умолчанию 18, если не указано иное. d по умолчанию 0, если не указано. | Где м — это общее количество цифр, а d — количество цифр после десятичной дроби. Это синоним типа данных DECIMAL. |
ПОПЛАВОК ( n ) | Число с плавающей запятой. n по умолчанию 53, если не указано иное. | Где n — количество битов для хранения в экспоненциальном представлении. |
НАСТОЯЩИЙ | Эквивалент FLOAT (24) | |
МАЛЕНЬКАЯ ДЕНЬ | — 214 748,3648 до 214 748,3647 | |
ДЕНЬГИ | -922,337,203,685,477,5808 до 922,337,203,685,477,5807 |
Дата / время Типы данных
Ниже приведены типов данных даты / времени в SQL Server (Transact-SQL):
Синтаксис типа данных | Максимальный размер | Пояснение (если применимо) |
---|---|---|
ДАТА | Диапазон значений от 0001-01-01 до 9999-12-31. | Отображается как «ГГГГ-ММ-ДД» |
ВРЕМЯ | Диапазон значений даты от «1753-01-01 00:00:00» до «9999-12-31 23:59:59». Диапазон значений времени от ’00: 00: 00 ‘до ’23: 59: 59: 997’ | Отображается как «ГГГГ-ММ-ДД чч: мм: сс [.ммм]» |
DATETIME2 (точность долей секунды ) | Диапазон значений даты от 0001-01-01 до 9999-12-31. Диапазон значений времени от «00: 00: 00» до «23: 59: 59: 9999999». | Отображается как «ГГГГ-ММ-ДД чч: мм: сс [. Доли секунды]» |
МАЛЫЙ СРОК | Диапазон значений даты от «1900-01-01» до «2079-06-06». Диапазон значений времени от «00: 00: 00» до «23: 59: 59». | Отображается как «ГГГГ-ММ-ДД чч: мм: сс» |
ВРЕМЯ | Диапазон значений от ’00: 00: 00.0000000 ‘до ’23: 59: 59.9999999’ | Отображается как «ГГГГ-ММ-ДД чч: мм: сс [.nnnnnnn]» |
DATETIMEOFFSET ( с точностью до долей секунды ) | Диапазон значений даты от 0001-01-01 до 9999-12-31. Диапазон значений времени от «00: 00: 00» до «23: 59: 59: 9999999». Диапазон смещения часового пояса от -14: 00 до +14: 00. | Отображается как «ГГГГ-ММ-ДД чч: мм: сс [.nnnnnnn]» [{+ | -} чч: мм] |
.