Sql

Sql тип данных bit: bit (Transact-SQL) — SQL Server

Типы данных в MySQL | Cloud4Y

автор: Олег
опубликовано: 10.10.2022


Когда вы создаёте таблицы в MySQL, приходится указывать тип данных для каждого столбца. Это необходимо для того, чтобы определить, какие именно данные можно туда добавлять, каким образом они будут обрабатываться и сколько места займут. MySQL поддерживает типы данных SQL нескольких видов: числовые, типы даты и времени, строковые (символьные и байтовые) типы, пространственные типы и JSON типы данных. В статье подробно разберём, какие типы данных есть в MySQL.


Числовые типы

MySQL поддерживает все базовые числовые типы данных SQL. Сюда входят как точные числовые типы данных, так и приблизительные, включая целые, с фиксированной запятой и с плавающей запятой.

 Кроме того, MySQL также имеет тип данных BIT, используемый для хранения битовых значений. Основная масса числовых данных может быть как знаковой так и беззнаковой, но это не касается типа BIT.

Числовые типы

Описание

TINYINT

Крошечное целое число

SMALLINT

Маленькое целое

MEDIUMINT

Среднее по размеру целое

 INT

Стандартное целое

 BIGINT

Крупное целое число

 DECIMAL

Число, имеющее фиксированную точку

FLOAT

Число одинарной точности с плавающей запятой

DOUBLE

Число двойной точности с плавающей запятой

 BIT

Битовый тип

Типы данных даты и времени

MySQL позволяет использовать типы для даты и времени, а также сочетания даты и времени.

 Также поддерживается тип timestamp, с помощью которого можно отслеживать изменения в строке таблицы. Нужно хранить обозначения годов без дат и месяцев? Тогда подойдет YEAR-тип данных.

Типы даты и времени

Описание

 DATE

Дата в формате CCYY-MM-DD

 TIME

Время в формате hh:mm:ss

 DATETIME

Дата и время в формате CCYY-MM-DD hh:mm:ss

 TIMESTAMP

Метка времени CCYY-MM-DD hh:mm:ss

 YEAR

Обозначение года в формате CCYY или YY

Аренда облачного сервера для разработки, хостинга, обученияПодробнее

Строковые типы данных в MySQL

В MySQL строка может содержать любые данные, начиная с обычного текста и заканчивая двоичными значениями, например изображениями или файлами.  Строки можно сравнивать и искать на основе сопоставления с образцом с помощью оператора LIKE,  регулярного выражения и полнотекстового поиска.

Типы строк

Описание

CHAR

Недвоичная (символьная) строка фиксированной длины.

VARCHAR

Недвоичная строка переменной длины

BINARY

Двоичная строка фиксированной длины

VARBINARY

Двоичная строка переменной длины

TINYBLOB

Очень маленький BLOB (бинарный большой объект)

BLOB

Маленький BLOB

MEDIUMBLOB

BLOB среднего размера

LONGBLOB

Большой BLOB

TINYTEXT

Очень маленькая недвоичная строка

TEXT

Небольшая недвоичная строка

MEDIUMTEXT

Недвоичная строка среднего размера

LONGTEXT

Большая недвоичная строка

ENUM

Перечисление, где каждому значению столбца может быть назначен один член перечисления

SET

Множество, где каждому значению столбца может быть назначено ноль или более членов

Пространственные типы данных

MySQL поддерживает многочисленные типы пространственных данных, содержащих различные виды геометрических и географических значений, как показано в следующей таблице:

Типы пространственных данных

Описание

 GEOMETRY

Пространственное значение любого типа

 POINT

Точка (пара координат XY)

 LINESTRING

Кривая (одно или несколько POINT-значений)

 POLYGON

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

 GEOMETRYCOLLECTION

Коллекция значений GEOMETRY

 MULTILINESTRING

Коллекция значений LINESTRING

 MULTIPOINT

Коллекция значений POINT

 MULTIPOLYGON

Коллекция значений POLYGON

Тип данных JSON

Начиная с версии 5. 7.8, MySQL поддерживает собственный тип данных JSON, что позволяет более эффективно хранить и управлять документами JSON. Также это обеспечивает автоматическую проверку документов JSON и оптимальный формат хранения.

Теперь вы знаете, какой тип данных выбирать для своих таблиц.

database as a service


Полезный материал?

автор: Олег
опубликовано: 10.10.2022

Читайте нас: 

Предыдущая статья Следующая статья

Что еще почитать:

25 августа 2022 Как создавать таблицы в MySQL 15 августа 2022 MySQL — как сбросить пароль root 11 марта 2022 Как установить MySQL на Windows

Последние статьи

20 февраля 2023 10 Лучших книг по PostgreSQL в 2023 году 17 февраля 2023 Основные команды для терминала Linux 10 февраля 2023 Red Hat Enterprise Linux: особенности и преимущества

Типы данных Microsoft SQL Server

Полный список всех типов данных в Microsoft SQL Server

Заголовки:

  • Источники
  • Data Type Precedence (Transact-SQL)
  • Data Type Synonyms (Transact-SQL)
  • Precision, Scale, and Length (Transact-SQL)
  • SQL Server, SSIS and Biml Data Types
  • SQL Server Data Types Length
  • SQL Server to MySQL, Oracle, PostgreSQL and SQLite Data Type Mapping

Источники

  • MSDN Типы данных
  • MSDN Приоритет типов данных
  • MSDN Синонимы типов данных
  • MSDN Точность, масштаб и длина
  • Integration Services Data Types
  • DbType Enumeration
  • SQL Server, SSIS and Biml Data Types
  • SQL Server Integration Services, Data Type Mapping

Приоритет типов данных (Transact-SQL)

Если оператор связывает два выражения различных типов данных, то по правилам приоритета типов данных определяется, какой тип данных имеет меньший приоритет и будет преобразован в тип данных с большим приоритетом. Если неявное преобразование не поддерживается, возвращается ошибка. Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных.

В SQL Server используется следующий приоритет типов данных:

  1. sql_variant
  2. xml
  3. datetimeoffset
  4. datetime2
  5. datetime
  6. smalldatetime
  7. date
  8. time
  9. float
  10. real
  11. decimal
  12. money
  13. smallmoney
  14. bigint
  15. int
  16. smallint
  17. tinyint
  18. bit
  19. ntext
  20. text
  21. image
  22. timestamp
  23. uniqueidentifier
  24. nvarchar (including nvarchar(max) )
  25. nchar
  26. varchar (including varchar(max) )
  27. char
  28. varbinary (including varbinary(max) )
  29. binary (lowest)

Синонимы типов данных (Transact-SQL)

Синонимы типов данных включены в SQL Server ради совместимости со спецификацией ISO. Эти синонимы и соответствующие им системные типы данных SQL Server приведены в следующей таблице.

СинонимСистемный тип данных SQL Server
Binary varyingvarbinary
char varyingvarchar
characterchar
characterchar(1)
character(n)char(n)
character varying(n)varchar(n)
Decdecimal
Double precisionfloat
float[(n)] for n = 1-7real
float[(n)] for n = 8-15float
integerint
national character(n)nchar(n)
national char(n)nchar(n)
national character varying(n)nvarchar(n)
national char varying(n)nvarchar(n)
national textntext
timestamprowversion

Синонимы типов данных можно использовать вместо соответствующих базовых типов данных в инструкциях языка определения данных (data definition language, DDL), таких как CREATE TABLE, CREATE PROCEDURE или DECLARE @variable. Однако после создания объекта синонимы утрачивают силу. При создании объекта ему назначается базовый тип данных, связанный с синонимом. Никаких признаков того, что в инструкции, создавшей объект, был указан синоним, не остается.

Всем объектам, производным от первоначального объекта, таким, как столбцы результирующего набора или выражения, назначается базовый тип данных. Все последующие вызовы функций работы с метаданными, выполняемые для первоначального объекта и любых производных от него объектов, сообщают базовый тип данных, а не синоним. Это имеет место при работе с метаданными, например в процедуре sp_help и других системных хранимых процедурах, представлениях информационных схем и различных API-операции над метаданными, сообщающих типы данных столбцов таблицы или результирующего набора.

Точность, масштаб и длина (Transact-SQL)

Точность представляет собой количество цифр в числе. Масштаб представляет собой количество цифр справа от десятичной запятой в числе. Например: число 123,45 имеет точность 5 и масштаб 2.

В среде SQL Server максимальная точность типов данных numeric и decimal по умолчанию составляет 38 разрядов. В более ранних версиях SQL Server максимум по умолчанию составляет 28.

Длиной для числовых типов данных является количество байт, используемых для хранения числа. Длина символьной строки или данных в Юникоде равняется количеству символов. Длина для типов данных binary, varbinary и image равна количеству байт. Например, тип данных int может содержать 10 разрядов, храниться в 4 байтах и не должен содержать десятичный разделитель. Тип данных int имеет точность 10, длину 4 и масштаб 0.

При сцеплении двух выражений типа char, varchar, binary или varbinary длина результирующего выражения является суммой длин двух исходных выражений, но не превышает 8 000 символов.

При сцеплении двух выражений типа nchar или nvarchar длина результирующего выражения является суммой длин двух исходных выражений, но не превышает 4 000 символов.

Если два выражения одного и того же типа данных, но разной длины, сравниваются с помощью предложения UNION, EXCEPT или INTERSECT, длина результата будет равняться длине максимального из двух выражений.

Точность и масштаб числовых типов данных, кроме decimal, фиксированы. Если арифметический оператор объединяет два выражения одного и того же типа, результат будет иметь тот же тип данных с точностью и масштабом, определенными для этого типа. Если оператор объединяет два выражения с различными числовыми типами данных, тип данных результата будет определяться правилами старшинства типов данных. Результат имеет точность и масштаб, определенные для этого типа данных.

Следующая таблица определяет, как вычисляется точность и масштаб результата, если результат операции имеет тип decimal. Результат имеет тип decimal, если одно из следующих утверждений является истиной:

  • Оба выражения имеют тип decimal.
  • Одно выражение имеет тип decimal, а другое имеет тип данных со старшинством меньше, чем decimal.

Выражения операндов обозначены как выражение e1 с точностью p1 и масштабом s1 и выражение e2 с точностью p2 и масштабом s2. Точность и масштаб для любого выражения, отличного от decimal, соответствуют типу данных этого выражения

ОперацияТочность результатаМасштаб результата *
e1 + e2max(s1, s2) + max(p1-s1, p2-s2) + 1max(s1, s2)
e1 — e2max(s1, s2) + max(p1-s1, p2-s2) + 1max(s1, s2)
e1 * e2p1 + p2 + 1s1 + s2
e1 / e2p1 — s1 + s2 + max(6, s1 + p2 + 1)max(6, s1 + p2 + 1)
e1 { UNION | EXCEPT | INTERSECT } e2max(s1, s2) + max(p1-s1, p2-s2)max(s1, s2)
e1 % e2min(p1-s1, p2 -s2) + max( s1,s2 )max(s1, s2)

* Точность и масштаб результата имеют абсолютный максимум, равный 38. Если значение точности превышает 38, то соответствующее значение масштаба уменьшается, чтобы по возможности предотвратить усечение целой части результата.

SQL Server, SSIS и Biml типы данных

Таблица ниже является упрощенной схемой связи между типами данныхSQL Server, SSIS и Biml. Таблица не включает все возможные комбинации и все виды типов данных, но полезна как быстрая ссылка при разработке и изучении Biml.

SQL ServerSSIS VariablesSSIS Pipeline BufferOLE DBADO.NETBiml
bigintInt64DT_I8LARGE_INTEGERInt64Int64
binaryObjectDT_BYTESBinaryBinary
bitBooleanDT_BOOLVARIANT_BOOLBooleanBoolean
charStringDT_STRVARCHARStringFixedLengthAnsiStringFixedLength
dateObjectDT_DBDATEDBDATEDateDate
datetimeDateTimeDT_DBTIMESTAMPDATEDateTimeDateTime
datetime2ObjectDT_DBTIMESTAMP2DBTIME2DateTime2DateTime2
datetimeoffsetObjectDT_DBTIMESTAMPOFFSETDBTIMESTAMPOFFSETDateTimeOffsetDateTimeOffset
decimalDecimalDT_NUMERICNUMERICDecimalDecimal
floatDoubleDT_R8FLOATDoubleDouble
geographyDT_IMAGEObjectObject
geometryDT_IMAGEObjectObject
hierarchyidDT_BYTESObjectObject
image (*)ObjectDT_IMAGEBinaryBinary
intInt32DT_I4LONGInt32Int32
moneyObjectDT_CY, DT_NUMERICCURRENCYCurrencyCurrency
ncharStringDT_WSTRNVARCHARStringFixedLengthStringFixedLength
ntext (*)StringDT_NTEXTStringString
numericDecimalDT_NUMERICNUMERICDecimalDecimal
nvarcharStringDT_WSTRNVARCHARStringString
nvarchar(max)ObjectDT_NTEXTString
realSingleDT_R4FLOAT, DOUBLESingleSingle
rowversionObjectDT_BYTESBinaryBinary
smalldatetimeDateTimeDT_DBTIMESTAMPDATEDateTimeDateTime
smallintInt16DT_I2SHORTInt16Int16
smallmoneyObjectDT_CY, DT_NUMERICCURRENCYCurrencyCurrency
sql_variantObjectDT_WSTR, DT_NTEXTObjectObject
tableObject
text (*)ObjectDT_TEXTAnsiString
timeObjectDT_DBTIME2DBTIME2TimeTime
timestamp (*)ObjectDT_BYTESBinaryBinary
tinyintByteDT_UI1BYTEByteByte
uniqueidentifierString, ObjectDT_GUIDGUIDGuidGuid
varbinaryObjectDT_BYTESBinaryBinary
varbinary(max)ObjectDT_IMAGEBinaryBinary
varcharStringDT_STRVARCHARStringAnsiString
varchar(max)ObjectDT_TEXTAnsiString
xmlObjectDT_NTEXTXml

(* Данные типы данных будут удалены в будущих версиях SQL Server. 38 -1Exact Numericssmallmoney4-214 748.3648 to 214 748.3647Exact Numericsmoney8-922 337 203 685 477.5808 to 922 337 203 685 477.5807Approximate Numericsfloat1-24
25-537
154
8-3.40E+38 to -1.18E-38, 0 and 1.18E-38 to 3.40E+38
-1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308Date and Timedate30001-01-01 through 9999-12-31
January 1, 1 CE through December 31, 9999 CEDate and Timesmalldatetime41900-01-01 through 2079-06-06
January 1, 1900 through June 6, 2079
00:00:00 through 23:59:59Date and Timetime8-11
12-13
14-163
4
500:00:00.0000000 through 23:59:59.9999999Date and Timedatetime21-2
3-4
5-76
7
80001-01-01 through 9999-12-31
January 1, 1 CE through December 31, 9999 CE
00:00:00 through 23:59:59. 31 — 1)n + 2Other Data TypescursorOther Data Typessql_variantmax 8016Other Data Typeshierarchyidmax 892Other Data Typesrowversion8Other Data Typestimestamp(*)Other Data Typesuniqueidentifier16Other Data Typesxmlmax 2GbOther Data TypestableSpatial Data TypesgeometrySpatial Data Typesgeography

SQL Server to MySQL, Oracle, PostgreSQL, SQLite Data Type Mapping

General TypeTypeMySQLOraclePostgreSQLSQLite
Exact NumericsbitTINYINT(1)NUMBER(3)BOOLEANINTEGER
Exact NumericstinyintTINYINT(signed)NUMBER(3)SMALLINTINTEGER
Exact NumericssmallintSMALLINTNUMBER(5)SMALLINTINTEGER
Exact NumericsintMEDIUMINT, INTNUMBER(10)INTINTEGER
Exact NumericsbigintBIGINTNUMBER(19)BIGINTINTEGER
Exact NumericsdecimalDECIMALNUMBER(p[,s])DECIMAL(p,s)REAL
Exact NumericssmallmoneyDOUBLENUMBER(10,4)MONEYREAL
Exact NumericsmoneyDOUBLENUMBER(19,4)MONEYREAL
Approximate NumericsfloatFLOAT
DOUBLE; REAL
FLOAT(49)DOUBLE PRECISIONREAL
Date and TimedateDATEDATETEXT
Date and TimesmalldatetimeTIMESTAMPDATETIMESTAMP(0)TEXT
Date and TimetimeTIMETIMETEXT
Date and Timedatetime2DDATETIMETIMESTAMPTEXT
Date and TimedatetimeDATETIMESTAMP(3)TEXT
Date and timedatetimeoffsetTIMESTAMP
with time zone
TEXT
Caracter StringscharCHARCHARCHARTEXT
Caracter StringsvarcharVARCHARVARCHAR2VARCHARTEXT
Caracter Stringsvarchar(max)VARCHAR2TEXTTEXT
Caracter StringsncharNCHARNCHARTEXT
Caracter StringsnvarcharNCHARVARCHARTEXT
Caracter Stringsnvarchar(max)VARCHAR
TINYTEXT
TEXT(M)
MEDIUMTEXT
LONGTEXT
NCHARTEXTTEXT
Caracter Stringsntext(*)LONGTEXTTEXT
Caracter Stringstext(*)LONGTEXTTEXT
Binary Stringsimage(*)LONGBLOBLONG RAWBYTEABLOB
Binary StringsbinaryBINARYRAWBYTEABLOB
Binary StringsvarbinaryRAWBYTEABLOB
Binary Stringsvarbinary(max)VARBINARY(M)
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
RAWBYTEABLOB
Other Data TypescursorTEXT
Other Data Typessql_variantBLOBTEXT
Other Data TypeshierarchyidTEXT
Other Data TypesrowversionBYTEATEXT
Other Data Typestimestamp(*)RAWBYTEATEXT
Other Data TypesuniqueidentifierCHARCHAR(36)CHAR(16)TEXT
Other Data TypesxmlXMLTEXT
Other Data Typestable
Spatial Data TypesgeometryVARCHARTEXT
Spatial Data TypesgeographyVARCHARTEXT

(* Данные типы данных будут удалены в будущих версиях SQL Server. Избегайте использование этих типов данных в новых проектах и, по возможности, измените их в текущих проектах.)

Часто задаваемые вопросы о MySQL | Изучите базу данных MySQL с помощью реальных вопросов и ответов

Сервер баз данных

MySQL был создан в результате внутреннего проекта компании, возглавляемого сотрудниками шведской фирмы TcXDataKonsult. Их проект, получивший название MySQL, был впервые выпущен для широкой публики в конце 1996 года. Программное обеспечение оказалось настолько популярным, что в 2001 году они основали компанию, полностью основанную на конкретных предложениях продуктов и услуг MySQL, назвав ее MySQL AB.

MySQL — это сервер реляционных баз данных, который с каждым выпуском приближается к стандарту SQL-92, а это означает, что вы не столкнетесь с большим количеством сюрпризов, если вы знакомы с другим продуктом базы данных. MySQL может похвастаться большим списком известных пользователей, таких как craigslist: www. craigslist.org, Yahoo! Финансы: http://www.yahoo.com,
Википедия: http://www.wikipedia.org и другие.

Сайт часто задаваемых вопросов по MySQL бесплатно предоставляет полезные учебные материалы по MySQL в форме реальных « Вопросы и ответы », подготовленные экспертами простыми словами. Учебный материал основан на часто задаваемых вопросах (часто задаваемые вопросы), и каждый часто задаваемый вопрос разбит на соответствующие категории. также более практические вопросы и ответы доступны для опытных разработчиков баз данных.Однако прилагаются усилия, чтобы использовать часто задаваемые вопросы с простыми примерами, которые помогают изучить MySQL, мощную и самую популярную систему управления реляционными базами данных (RDBMS) с открытым исходным кодом.

Часто задаваемые вопросы по MySQL продолжают распространять знания экспертов по MySQL в сообществе разработчиков баз данных. Вы можете просмотреть недавно добавленные часто задаваемые вопросы (часто задаваемые вопросы) или по категориям, щелкнув доступные ссылки на категории часто задаваемых вопросов в левом верхнем углу страницы. Также вы можете найти нужный часто задаваемые вопросы или ответить через «Что вы хотите спросить сегодня?» область поиска. Кроме того, если вы не найдете свой точный ответ / часто задаваемые вопросы даже через поиск, не стесняйтесь задавать нам свой вопрос / часто задаваемые вопросы. Ответ на размещенный вопрос / часто задаваемые вопросы отвечает как можно раньше. Итак, приступайте к поиску ответов на свои вопросы!


Удобные дампы баз данных:   Обычно используются следующие дампы таблиц данных. Они облегчают вашу работу. Просто нажмите, чтобы загрузить нужный дамп. После загрузки разархивируйте и запустите дамп в свою базу данных. Таблица данных будет готова к использованию.

Этот дамп содержит названия стран мира, а также коды названий стран и телефонные коды стран соответственно.
Нажмите, чтобы загрузить

Штаты США.
Нажмите, чтобы скачать

Города США.
Нажмите, чтобы скачать

Как добавить столбец логического типа данных в существующую таблицу в SQL?

В SQL Server логический тип данных может быть создан путем сохранения типа данных BIT. Хотя это числовой тип данных, он может принимать только значения 0, 1 или NULL. Следовательно, мы легко можем присвоить значения FALSE 0 и значения TRUE 1. Это обеспечит логическую природу типа данных.

Что касается хранилища, если в таблице присутствует менее 9 столбцов битовых данных, они сохраняются как 1 байт. А для столбцов от 9 до 16 BIT их потребление составляет 2 байта, и так далее. В этой статье мы расскажем, как добавить логический тип данных, т. е. BIT, в существующую таблицу в SQL SERVER.

Предположим, что имеется база данных «GEEKSFORGEEKS» и доступна таблица «Авторы» со следующими данными.

Запрос:

 ИСПОЛЬЗУЙТЕ GEEKSFORGEEKS
ВЫБЕРИТЕ * ОТ авторов; 

Вывод:

Добавим в таблицу «Авторы» тип данных BIT. Тип данных Bit полезен для представления логической природы True (1) или False (0), и они являются единственными допустимыми значениями для типа данных BIT.

 -- Добавить столбец с именем "isActiveAuthor"
с типом данных BIT для таблицы "Авторы"
ALTER TABLE Authors ADD isActiveAuthor BIT; 

Поскольку в таблице уже доступно несколько строк, мы можем добавить новый столбец «isActiveAuthor» только как шаблон NULL. После этого мы можем обновить данные. После добавления столбца 

Запрос:

 SELECT * FROM Authors; 

Вывод:

Таким образом, когда столбец типа данных BIT добавляется в существующую таблицу, его значение будет заполнено значениями «NULL».

Теперь давайте попробуем обновить столбец с условием, что если «NumberOfPosts» > 5, установите для «isActiveAuthor» значение 1 или 0. 

 -- Предположим, что если «NumberOfPosts»
   больше 5, автор достаточно активен, чтобы писать статьи
-- Следовательно, для этого условия установите "isActiveAuthor"
   столбец со значением 1
ОБНОВЛЕНИЕ Авторы SET isActiveAuthor = 1 WHERE NumberOfPosts > 5;
-- С другой стороны, если "NumberOfPosts"
   меньше и равно 5,
-- автор неактивен в последние дни
   и, следовательно, установите для столбца «isActiveAuthor» значение 0
ОБНОВЛЕНИЕ Авторы SET isActiveAuthor = 0 WHERE NumberOfPosts <= 5;
ВЫБЕРИТЕ * ОТ авторов; 

Вывод:

Поскольку столбец BIT поддерживает только 0 или 1 в качестве значений, мы заполнили его, как указано выше.

Давайте попробуем обновить значение, отличное от 0 или 1 

 -- Попытка обновить "isActiveAuthor"
   со значением 2, хотя ошибок нет
   производится, выход отличается
ОБНОВЛЕНИЕ Авторы SET isActiveAuthor =
2 ГДЕ Количество сообщений = 5;
ВЫБЕРИТЕ * ОТ авторов; 

Вывод:

Причина обновленного значения 1 в 3-й строке:

Хотя дается обновление для получения значения 2, из-за типа данных «BIT» для столбца «isActiveAuthor» его значение преобразуется только в 1, поскольку тип данных «BIT» поддерживает только 0 или 1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *