Sql типы полей: bit (Transact-SQL) — SQL Server
Содержание
Типы данных даты и времени
Столбцы данного типа используются для записи дат, времени и их
комбинаций.
Типы данных DATETIME, DATE, TIME
Тип
данных DATETIME используется для величин, содержащих информацию как о
дате, так
и о времени в формате ‘YYYY-MM-DD HH:MM:SS’
Тип
данных DATE используется для величин с
информацией только о дате в формате ‘YYYY-MM-DD’. Поддерживается
диапазон
величин от ‘1000-01-01’ до ‘9999-12-31’.
Тип данных TIME используется для хранения значений
времени в формате HH.MM.SS[.ssss]
Тип данных YEAR
MySQL Server поддерживает однобайтный
тип данных YEAR, предназначенный для представления
значений года в формате YYYY. Диапазон возможных значений — от 1901 до
2155.
Величины типа YEAR могут быть
заданы в различных форматах:
- Как четырехзначная строка в интервале значений от ‘1901’ до
‘2155’. - Как четырехзначное число в интервале значений от 1901 до
2155. - Как
двухзначная строка в интервале значений от ’00’ до ’99’. Величины в
интервалах от ’00’ до ’69’ и от ’70’ до ’99’ при этом преобразуются в
величины YEAR в интервалах от 2000 до 2069 и от 1970 до 1999
соответственно. - Как двухзначное число в интервале значений от 1 до 99.
Величины в интервалах от 1 до 69 и от 70 до 99 при этом преобразуются в
величины YEAR в интервалах от 2001 до 2069 и от 1970 до 1999
соответственно. Необходимо принять во внимание, что интервалы для
двухзначных чисел и двухзначных строк несколько различаются, так как
нельзя указать «ноль» непосредственно как число и интерпретировать
его как 2000. Необходимо задать его как строку ‘0’ или ’00’, или же оно
будет интерпретировано как 0000.
Недопустимые
величины YEAR преобразуются в 0000.
Тип данных TIMESTAMP
Назначение типа данных timestamp в MS SQL
Server и
MySQL Server значительно отличается.
В языке Transcat SQL, используемом в MS SQL Server тип данных,
TIMESTAMP представляет собой автоматически сформированные уникальные
двоичные числа. При произведении любых изменений в строке значение
TIMESTAMP будет обновлено. Таким образом, столбец типа TIMESTAMP можно
использовать, чтобы определить, было ли произведено изменение
какого-либо значения в строке с момента ее последнего считывания.
В таблице может быть только один столбец типа TIMESTAMP.
В MySQL Server тип столбца TIMESTAMP используется для автоматической
записи текущих даты и времени при выполнении операций вставки или
обновления. Допускается наличие нескольких столбцов типа TIMESTAMP в
таблице, но в этом случае автоматически обновляется только первый из
них. Столбец типа TIMESTAMP можно установить в значение, отличное от
текущих даты и времени путем явного указания значения столбца при
выполнении операций вставке и обновлении данных.
PostgreSQL : Документация: 9.
4: Типы данных : Компания Postgres Professional
RU
EN
RU EN
- Содержание
- 8.1. Числовые типы
- 8.1.1. Целочисленные типы
- 8.1.2. Числа с фиксированной точностью
- 8.1.3. Типы с плавающей точкой
- 8.1.4. Последовательные типы
- 8.1.2. Числа с фиксированной точностью
- 8.1.1. Целочисленные типы
- 8.2. Денежные типы
- 8.3. Символьные типы
- 8.4. Двоичные типы данных
- 8.3. Символьные типы
- 8.4.1. Шестнадцатеричный формат bytea
- 8.4.2. Формат спецпоследовательностей bytea
- 8.4.1. Шестнадцатеричный формат bytea
- 8.5. Типы даты/времени
- 8.5.1. Ввод даты/времени
- 8.5.2. Вывод даты/времени
- 8.5.3. Часовые пояса
- 8.5.4. Ввод интервалов
- 8.5.5. Вывод интервалов
- 8.5.2. Вывод даты/времени
- 8.5.1. Ввод даты/времени
- 8.6. Логический тип
- 8.7. Типы перечислений
- 8.7.1. Объявление перечислений
- 8.7.2. Порядок
- 8.7.3. Безопасность типа
- 8.7.4. Тонкости реализации
- 8.7.2. Порядок
- 8.7.1. Объявление перечислений
- 8.8. Геометрические типы
- 8. 8.1. Точки
- 8.8.2. Прямые
- 8.8.3. Отрезки
- 8.8.4. Прямоугольники
- 8.8.5. Пути
- 8.8.6. Многоугольники
- 8.8.7. Окружности
- 8.8.2. Прямые
- 8. 8.1. Точки
- 8.9. Типы, описывающие сетевые адреса
- 8.9.1. inet
- 8.9.2. cidr
- 8.9.3. Различия inet и cidr
- 8.9.4. macaddr
- 8.9.2. cidr
- 8.9.1. inet
- 8.10. Битовые строки
- 8.11. Типы, предназначенные для текстового поиска
- 8.11.1. tsvector
- 8.11.2. tsquery
- 8.11.1. tsvector
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.13.1. Создание XML-значений
- 8.13.2. Обработка кодировки
- 8.13.3. Обращение к XML-значениям
- 8.13.2. Обработка кодировки
- 8.13.1. Создание XML-значений
- 8.14. Типы JSON
- 8.14.1. Синтаксис вводимых и выводимых значений JSON
- 8.14.2. Эффективная организация документов JSON
- 8.14.3. Проверки на вхождение и существование jsonb
- 8.14.4. Индексация jsonb
- 8.14.2. Эффективная организация документов JSON
- 8.14.1. Синтаксис вводимых и выводимых значений JSON
- 8.15. Массивы
- 8.15.1. Объявления типов массивов
- 8.15.2. Ввод значения массива
- 8.15.3. Обращение к массивам
- 8.15.4. Изменение массивов
- 8.15.5. Поиск значений в массивах
- 8.15.6. Синтаксис вводимых и выводимых значений массива
- 8.15.2. Ввод значения массива
- 8.15.1. Объявления типов массивов
- 8.16. Составные типы
- 8.16.1. Объявление составных типов
- 8.16.2. Ввод значения составного типа
- 8.16.3. Обращение к составным типам
- 8.16.4. Изменение составных типов
- 8.16.5. Синтаксис вводимых и выводимых значений составного типа
- 8.16.2. Ввод значения составного типа
- 8.16.1. Объявление составных типов
- 8.17. Диапазонные типы
- 8.17.1. Встроенные диапазонные типы
- 8.17.2. Примеры
- 8.17.3. Включение и исключение границ
- 8.17.4. Неограниченные (бесконечные) диапазоны
- 8.17.5. Ввод/вывод диапазонов
- 8.17.6. Конструирование диапазонов
- 8.17.7. Типы дискретных диапазонов
- 8.17.8. Определение новых диапазонных типов
- 8.17.9. Индексация
- 8.17.10. Ограничения для диапазонов
- 8.17.2. Примеры
- 8.17.1. Встроенные диапазонные типы
- 8.18. Идентификаторы объектов
- 8. 19. Тип pg_lsn
- 8.20. Псевдотипы
- 8. 19. Тип pg_lsn
PostgreSQL предоставляет пользователям богатый ассортимент встроенных типов данных. Кроме того, пользователи могут создавать свои типы в PostgreSQL, используя команду CREATE TYPE.
Таблица 8-1 содержит все встроенные типы данных общего пользования. Многие из альтернативных имён, приведённых в колонке «Псевдонимы», используются внутри PostgreSQL по историческим причинам. В этот список не включены некоторые устаревшие типы и типы для внутреннего применения.
Таблица 8-1. Типы данных
Имя | Псевдонимы | Описание |
---|---|---|
bigint | int8 | знаковое целое из 8 байт |
bigserial | serial8 | восьмибайтное целое с автоувеличением |
bit [ (n) ] | битовая строка фиксированной длины | |
bit varying [ (n) ] | varbit | битовая строка переменной длины |
boolean | bool | логическое значение (true/false) |
box | прямоугольник в плоскости | |
bytea | двоичные данные («массив байт») | |
character [ (n) ] | char [ (n) ] | символьная строка фиксированной длины |
character varying [ (n) ] | varchar [ (n) ] | символьная строка переменной длины |
cidr | сетевой адрес IPv4 или IPv6 | |
circle | круг в плоскости | |
date | календарная дата (год, месяц, день) | |
double precision | float8 | число двойной точности с плавающей точкой (8 байт) |
inet | адрес узла IPv4 или IPv6 | |
integer | int, int4 | знаковое четырёхбайтное целое |
interval [ поля ] [ (p) ] | интервал времени | |
json | текстовые данные JSON | |
jsonb | двоичные данные JSON, разобранные | |
line | прямая в плоскости | |
lseg | отрезок в плоскости | |
macaddr | MAC-адрес | |
money | денежная сумма | |
numeric [ (p, s) ] | decimal [ (p, s) ] | вещественное число заданной точности |
path | геометрический путь в плоскости | |
pg_lsn | Последовательный номер в журнале PostgreSQL | |
point | геометрическая точка в плоскости | |
polygon | замкнутый геометрический путь в плоскости | |
real | float4 | число одинарной точности с плавающей точкой (4 байта) |
smallint | int2 | знаковое двухбайтное целое |
smallserial | serial2 | двухбайтное целое с автоувеличением |
serial | serial4 | четырёхбайтное целое с автоувеличением |
text | символьная строка переменной длины | |
time [ (p) ] [ without time zone ] | время суток (без часового пояса) | |
time [ (p) ] with time zone | timetz | время суток с учётом часового пояса |
timestamp [ (p) ] [ without time zone ] | дата и время (без часового пояса) | |
timestamp [ (p) ] with time zone | timestamptz | дата и время с учётом часового пояса |
tsquery | запрос текстового поиска | |
tsvector | документ для текстового поиска | |
txid_snapshot | снимок идентификатора транзакций | |
uuid | универсальный уникальный идентификатор | |
xml | XML-данные |
Совместимость: В стандарте SQL описаны следующие типы (или их имена): bigint, bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (с часовым поясом и без), timestamp (с часовым поясом и без), xml.
Каждый тип данных имеет внутреннее представление, скрытое функциями ввода и вывода. При этом многие встроенные типы стандартны и имеют очевидные внешние форматы. Однако есть типы, уникальные для PostgreSQL, например геометрические пути, и есть типы, которые могут иметь разные форматы, например, дата и время. Некоторые функции ввода и вывода не являются в точности обратными друг к другу, то есть результат функции вывода может не совпадать со входным значением из-за потери точности.
SQL Server: наиболее часто используемые типы данных?
спросил
Изменено
6 лет, 10 месяцев назад
Просмотрено
35 тысяч раз
Я немного запутался, так как в sql-сервере есть много типов переменных (ntext, varchar, nvarchar и т. д.), так что, может быть, если вы сообщите мне, какие типы данных вы используете для следующих полей, я пойму это немного лучше. Если мне не хватает общего типа поля, сообщите мне об этом.
ID
Номер телефона
Электронная почта
Описание (абзац текста)
Имя
SSN
Цена
Дата отгрузки
Пол (м/ж)
Снято с производства (да/нет)
Количество
Почтовый индекс 9001 3
- sql
- sql-сервер
1
Краткая рекомендация:
TEXT, NTEXT, IMAGE
: все эти типы устарели и должны быть удалены в будущей версии SQL Server — не используйте их!CHAR
по сравнению сVARCHAR
:CHAR
имеет фиксированную длину и будет дополнять ввод пробелами до определенной длины. Лучше всего работает для коротких строк (< 5 символов), например. коды, такие как валюта (почти всегда 3 символа), статус США (2 символа) и т. д.VARCHAR
, с другой стороны, лучше всего подходит для более длинных строк и сохраняет только столько символов, сколько вставлено/обновлено. Если вы определяетеVARCHAR(200)
и вставьте в поле толькоРождество
, ваше поле занимает 9 символов (и немного накладных расходов)NCHAR/NVARCHAR
: Версии вышеуказанного Unicode; всегда хранит 2 байта на символ, поэтому ваше поле сChristmas
будет хранить 9 символов и использовать для этого 18 байтов. Они необходимы, если у вас есть незападноевропейские символы, такие как кириллица, арабский, иврит, азиатский или другие алфавиты.VARCHAR(MAX) / NVARCHAR(MAX)
являются заменойTEXT
иNTEXT
— они хранят до 2 ГБ (2 миллиарда байт) данных — это более чем в 300 раз превышает содержание«Войны и мира» Толстого
— должно хватить для огромного большинства случаев 🙂
Таким образом, ваше дерево решений может быть таким:
Нужны ли мне незападноевропейские символы? Если да —> используйте
типов NCHAR/NVARCHAR
, иначеСИМВОЛ/ВАРЧАР
Является ли моя строка очень короткой (< 5 символов) и обычно всегда одинаковой длины? Если да: используйте CHAR, иначе VARCHAR
Нужны ли мне действительно очень большие объемы текста? Если это так, используйте VARCHAR(MAX), в противном случае измените размер в соответствии с вашими потребностями
2
Поле -> Тип данных ----- --------- Идентификатор внутр. Номер телефона varchar Электронная почта varchar Описание varchar Имя varchar SSN varchar Десятичная цена, деньги, маленькие деньги Дата и время доставки Секс бит Дисконтный бит Количество инт Почтовый индекс varchar
4
Идентификатор - внутр. Телефон - varchar(12) электронная почта - varchar (размер) описание varchar(max) имя -varchar(размер) ssn - varchar(11) цена - небольшие деньги (или деньги, если нужно) shipdate — дата (для sql server 2008 или smalldatetime для версий до 2008) снято с производства - немного количество - инт почтовый индекс - varchar (10)
Многие люди будут рекомендовать nvarchar во всех случаях вместо varchar, но, зная мои сайты/аудиторию, мне не нужно разрешать международные наборы символов и я не хочу тратить пространство/скорость/ресурсы ( минимальный я знаю). Если вам нужно, замените nvarchar, где это уместно
6
Вот что я использовал в прошлом
ID = bigint Телефон = varchar(12) Электронная почта = varchar(100) Описание = nvarchar(max) (только sql Server 2005 и 2008) Имя = nvarchar (100) SSN = varchar(11) Цена = деньги ShipDate = datetime (дата при использовании SQL Server 2008) Пол = символ (1) (я также использовал бит перед 0 = женщина 1 = мужчина) Снято с производства (истинное ложное поле) = бит Количество = int, если не дробное десятичное число, если оно дробное Почтовый индекс = varchar (10)
ID int или bigint Номер телефона varchar Электронная почта varchar Описание varchar Имя varchar SSN varchar Цена денег Дата отгрузки datetime или дата Пол (м/ж) char(1) Снятый с производства (да/нет) бит Количество инт Почтовый индекс varchar
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Типы данных SQL для строк
спросил
Изменено
11 лет, 5 месяцев назад
Просмотрено
1к раз
У меня есть структура данных что-то вроде этого —
класс Дом { внутренний идентификатор; струнная улица; струнный город; просмотр строки; статус строки; }
улица и город являются обычными строками и всегда должны содержать менее 32 символов. Я так понимаю, у них должен быть тип данных SQL nchar(32)? Или они должны быть varchar?
обзор — необязательная строка, которую могут ввести пользователи. А если и дают, то могут сильно варьироваться, от 4-5 слов до 2000+ символов. Итак, какой тип данных я должен использовать для хранения этого?
статус — это флаг, который может принимать значения «Новый», «Старый», «Не запущен». Какое бы значение оно ни имело, оно будет отображаться в сетке данных настольного приложения. Должен ли я хранить это поле как строку или байт с разными битами, действующими как флаги?
- sql
- структуры данных
Я бы предложил использовать VARCHAR(32) для адреса и города, если вы разрабатываете таблицу США. Если вы разрабатываете международный, увеличьте оба поля и переключитесь, например, на NVARCHAR(72) . Хранилище NVARCHAR занимает больше места, но позволяет хранить символы, отличные от ASCII….
CHAR(32) резервирует 32 байта данных, независимо от того, содержит ли поле 1 символ или 32 символа. Кроме того, некоторые клиентские языки программирования не обрезают лишние пробелы автоматически (что правильно, но этого можно не ожидать). NCHAR(32) резервирует 64 байта, так как каждый символ представлен в 2 байтах
Для обзора, я согласен с lanks, TEXT или VARCHAR(max) — (для MS SQL) будет лучший. Может ли отзыв быть длиннее 2000 символов? Если 2000 — это абсолютный предел, то я бы выбрал VARCHAR(2000) . Я бы использовал поле TEXT только в том случае, если у вас есть возможность просмотреть какой-либо объем. Имейте в виду, что если пользователь вводит отзыв длиной более 2000 символов, база данных выдаст ошибку, если вы попытаетесь вставить его, поэтому ваше приложение должно либо ограничить количество символов, либо обработать ошибку, когда она произойдет.
Статус должен быть наименьшим целым числом, допустимым в вашей базе данных. Вы можете создать вторую таблицу для текстовых описаний кодов.
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.