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.2. Денежные типы

8.3. Символьные типы

8.4. Двоичные типы данных
8.4.1. Шестнадцатеричный формат bytea

8.4.2. Формат спецпоследовательностей bytea
8.5. Типы даты/времени
8.5.1. Ввод даты/времени

8.5.2. Вывод даты/времени

8.5.3. Часовые пояса

8.5.4. Ввод интервалов

8.5.5. Вывод интервалов
8.6. Логический тип

8.7. Типы перечислений
8.7.1. Объявление перечислений

8.7.2. Порядок

8.7.3. Безопасность типа

8.7.4. Тонкости реализации
8.8. Геометрические типы
8. 8.1. Точки

8.8.2. Прямые

8.8.3. Отрезки

8.8.4. Прямоугольники

8.8.5. Пути

8.8.6. Многоугольники

8.8.7. Окружности
8.9. Типы, описывающие сетевые адреса
8.9.1. inet

8.9.2. cidr

8.9.3. Различия inet и cidr

8.9.4. macaddr
8.10. Битовые строки

8.11. Типы, предназначенные для текстового поиска
8.11.1. tsvector

8.11.2. tsquery
8.12. Тип UUID

8.13. Тип XML
8.13.1. Создание XML-значений

8.13.2. Обработка кодировки

8.13.3. Обращение к XML-значениям
8.14. Типы JSON
8.14.1. Синтаксис вводимых и выводимых значений JSON

8.14.2. Эффективная организация документов JSON

8.14.3. Проверки на вхождение и существование jsonb

8.14.4. Индексация jsonb
8.15. Массивы
8.15.1. Объявления типов массивов

8.15.2. Ввод значения массива

8.15.3. Обращение к массивам

8.15.4. Изменение массивов

8.15.5. Поиск значений в массивах

8.15.6. Синтаксис вводимых и выводимых значений массива
8.16. Составные типы
8.16.1. Объявление составных типов

8.16.2. Ввод значения составного типа

8.16.3. Обращение к составным типам

8.16.4. Изменение составных типов

8.16.5. Синтаксис вводимых и выводимых значений составного типа
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.18. Идентификаторы объектов

8. 19. Тип pg_lsn

8.20. Псевдотипы

PostgreSQL предоставляет пользователям богатый ассортимент встроенных типов данных. Кроме того, пользователи могут создавать свои типы в PostgreSQL, используя команду CREATE TYPE.

Таблица 8-1 содержит все встроенные типы данных общего пользования. Многие из альтернативных имён, приведённых в колонке «Псевдонимы», используются внутри PostgreSQL по историческим причинам. В этот список не включены некоторые устаревшие типы и типы для внутреннего применения.

Таблица 8-1. Типы данных

ИмяПсевдонимыОписание
bigintint8знаковое целое из 8 байт
bigserialserial8восьмибайтное целое с автоувеличением
bit [ (n) ] битовая строка фиксированной длины
bit varying [ (n) ]varbitбитовая строка переменной длины
booleanboolлогическое значение (true/false)
box прямоугольник в плоскости
bytea двоичные данные («массив байт»)
character [ (n) ]char [ (n) ]символьная строка фиксированной длины
character varying [ (n) ]varchar [ (n) ]символьная строка переменной длины
cidr сетевой адрес IPv4 или IPv6
circle круг в плоскости
date календарная дата (год, месяц, день)
double precisionfloat8число двойной точности с плавающей точкой (8 байт)
inet адрес узла IPv4 или IPv6
integerint, int4знаковое четырёхбайтное целое
interval [ поля ] [ (p) ] интервал времени
json текстовые данные JSON
jsonb двоичные данные JSON, разобранные
line прямая в плоскости
lseg отрезок в плоскости
macaddr MAC-адрес
money денежная сумма
numeric [ (p, s) ]decimal [ (p, s) ]вещественное число заданной точности
path геометрический путь в плоскости
pg_lsn Последовательный номер в журнале PostgreSQL
point геометрическая точка в плоскости
polygon замкнутый геометрический путь в плоскости
realfloat4число одинарной точности с плавающей точкой (4 байта)
smallintint2знаковое двухбайтное целое
smallserialserial2двухбайтное целое с автоувеличением
serialserial4четырёхбайтное целое с автоувеличением
text символьная строка переменной длины
time [ (p) ] [ without time zone ] время суток (без часового пояса)
time [ (p) ] with time zonetimetzвремя суток с учётом часового пояса
timestamp [ (p) ] [ without time zone ] дата и время (без часового пояса)
timestamp [ (p) ] with time zonetimestamptzдата и время с учётом часового пояса
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 раз превышает содержание «Войны и мира» Толстого — должно хватить для огромного большинства случаев 🙂

Таким образом, ваше дерево решений может быть таким:

  1. Нужны ли мне незападноевропейские символы? Если да —> используйте типов NCHAR/NVARCHAR , иначе СИМВОЛ/ВАРЧАР

  2. Является ли моя строка очень короткой (< 5 символов) и обычно всегда одинаковой длины? Если да: используйте CHAR, иначе VARCHAR

  3. Нужны ли мне действительно очень большие объемы текста? Если это так, используйте 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к раз

У меня есть структура данных что-то вроде этого —

 класс Дом
{
    внутренний идентификатор;
    струнная улица;
    струнный город;
    просмотр строки;
    статус строки;
}
 
  1. улица и город являются обычными строками и всегда должны содержать менее 32 символов. Я так понимаю, у них должен быть тип данных SQL nchar(32)? Или они должны быть varchar?

  2. обзор — необязательная строка, которую могут ввести пользователи. А если и дают, то могут сильно варьироваться, от 4-5 слов до 2000+ символов. Итак, какой тип данных я должен использовать для хранения этого?

  3. статус — это флаг, который может принимать значения «Новый», «Старый», «Не запущен». Какое бы значение оно ни имело, оно будет отображаться в сетке данных настольного приложения. Должен ли я хранить это поле как строку или байт с разными битами, действующими как флаги?

  • 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

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.