Тип данных sql bit: Типы данных
Содержание
Сопоставления типов данных SQL Server — ADO.NET
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
-
В SQL Server и . NET Framework используются различные системы типов. Например, максимальная разрядность структуры .NET Framework Decimal составляет 28, в то время как максимальная разрядность десятичных и числовых типов данных SQL Server — 38. Чтобы обеспечить целостность данных при чтении и записи, объект SqlDataReader предоставляет характерные для SQL Server типизированные методы доступа, возвращающие объекты System.Data.SqlTypes, а также методы доступа, возвращающие типы .NET Framework. Типы данных SQL Server и .NET Framework также представлены перечислениями в классах DbType и SqlDbType, которые можно использовать при указании типов данных SqlParameter.
В следующей таблице приведены выводимый тип .NET Framework DbType и перечисления SqlDbType, а также методы доступа для SqlDataReader.
Тип ядра СУБД SQL Server | Тип платформы .NET Framework | Перечисление SqlDbType | Типизированный метод доступа SqlDataReader SqlTypes | Перечисление DbType | Типизированный метод доступа SqlDataReader DbType |
---|---|---|---|---|---|
BIGINT | Int64 | BigInt | GetSqlInt64 | Int64 | GetInt64 |
binary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
bit | Логическое | Bit | GetSqlBoolean | Boolean | GetBoolean |
char | Строка Char[] | Char | GetSqlString | AnsiStringFixedLength, String | GetString GetChars |
date 1 (SQL Server 2008 и более поздние версии) | Дата и время | Date1 | GetSqlDateTime | Date1 | GetDateTime |
DATETIME | Дата и время | DateTime | GetSqlDateTime | DateTime | GetDateTime |
datetime2 (SQL Server 2008 и более поздние версии) | Дата и время | DateTime2 | Нет | DateTime2 | GetDateTime |
datetimeoffset (SQL Server 2008 и более поздние версии) | DateTimeOffset | DateTimeOffset | нет | DateTimeOffset | GetDateTimeOffset |
Decimal | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
FILESTREAM attribute (varbinary(max)) | Byte[] | VarBinary | GetSqlBytes | Binary | GetBytes |
FLOAT | Double | Float | GetSqlDouble | Double | GetDouble |
Изображение | Byte[] | Binary | GetSqlBinary | Binary | GetBytes |
INT | Int32 | Int | GetSqlInt32 | Int32 | GetInt32 |
money | Decimal | Money | GetSqlMoney | Decimal | GetDecimal |
nchar | Строка Char[] | NChar | GetSqlString | StringFixedLength | GetString GetChars |
ntext | Строка Char[] | NText | GetSqlString | String | GetString GetChars |
NUMERIC | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
nvarchar | Строка Char[] | NVarChar | GetSqlString | String | GetString GetChars |
real | Один | Real | GetSqlSingle | Single | GetFloat |
rowversion | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
smalldatetime | Дата и время | DateTime | GetSqlDateTime | DateTime | GetDateTime |
smallint | Int16 | SmallInt | GetSqlInt16 | Int16 | GetInt16 |
smallmoney | Decimal | SmallMoney | GetSqlMoney | Decimal | GetDecimal |
sql_variant | Объект 2 | Variant | GetSqlValue2 | Object | GetValue2 |
text | Строка Char[] | Text | GetSqlString | String | GetString GetChars |
time (SQL Server 2008 и более поздние версии) | TimeSpan | Time | нет | Time | GetDateTime |
TIMESTAMP | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
tinyint | Byte | TinyInt | GetSqlByte | Byte | GetByte |
UNIQUEIDENTIFIER | Guid | UniqueIdentifier | GetSqlGuid | Guid | GetGuid |
varbinary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
varchar | Строка Char[] | VarChar | GetSqlString | AnsiString, String | GetString GetChars |
xml | Xml | Xml | GetSqlXml | Xml | нет |
1 Вы не можете задать для свойства DbType
параметра SqlParameter
значение SqlDbType.
. Date
2 Если известен базовый тип sql_variant
, используйте конкретный типизированный метод доступа.
документация по SQL Server
Дополнительные сведения о типах данных SQL Server см. в статье Типы данных (Transact-SQL).
См. также
- Типы данных SQL Server и ADO.NET
- Двоичные данные и данные больших значений SQL Server
- Сопоставления типов данных в ADO.NET
- Настройка параметров и типы данных параметров
- Общие сведения об ADO.NET
Типы данных в MySQL | Cloud4Y
автор:
Олег
опубликовано:
10.10.2022
Когда вы создаёте таблицы в MySQL, приходится указывать тип данных для каждого столбца. Это необходимо для того, чтобы определить, какие именно данные можно туда добавлять, каким образом они будут обрабатываться и сколько места займут. MySQL поддерживает типы данных SQL нескольких видов: числовые, типы даты и времени, строковые (символьные и байтовые) типы, пространственные типы и JSON типы данных. В статье подробно разберём, какие типы данных есть в MySQL.
Числовые типы
MySQL поддерживает все базовые числовые типы данных SQL. Сюда входят как точные числовые типы данных, так и приблизительные, включая целые, с фиксированной запятой и с плавающей запятой. Кроме того, MySQL также имеет тип данных BIT, используемый для хранения битовых значений. Основная масса числовых данных может быть как знаковой так и беззнаковой, но это не касается типа BIT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типы данных даты и времени
MySQL позволяет использовать типы для даты и времени, а также сочетания даты и времени. Также поддерживается тип timestamp, с помощью которого можно отслеживать изменения в строке таблицы. Нужно хранить обозначения годов без дат и месяцев? Тогда подойдет YEAR-тип данных.
|
|
|
|
|
|
|
|
|
|
|
|
Аренда облачного сервера для разработки, хостинга, обученияПодробнее
Строковые типы данных в MySQL
В MySQL строка может содержать любые данные, начиная с обычного текста и заканчивая двоичными значениями, например изображениями или файлами. Строки можно сравнивать и искать на основе сопоставления с образцом с помощью оператора LIKE, регулярного выражения и полнотекстового поиска.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пространственные типы данных
MySQL поддерживает многочисленные типы пространственных данных, содержащих различные виды геометрических и географических значений, как показано в следующей таблице:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тип данных 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
Последние статьи
1 июня 2023
Что такое Minikube
30 мая 2023
Программа Bug bounty — что это
25 мая 2023
Usergate обзор функций и возможностей платформы
Реализация типов данных SQL
Эта статья посвящена многим различным типам данных SQL, которые мы используем при работе с SQL Server. Мы начнем с краткого обзора и рассмотрим некоторые вещи, такие как категории типов данных, с какими объектами мы можем работать и как создавать собственные пользовательские типы данных.
Обзор типов данных SQL
Для начала давайте поговорим о том, что такое тип данных. Если бы мне пришлось определить его, я бы сказал, что тип данных определяет тип, размер и диапазон данных, которые могут храниться в объекте. Итак, это подводит нас к вопросу об объектах, которые имеют типы данных:
- Столбцы
- Переменные
- Выражения
- Параметры
Эти четыре типа данных объектов SQL имеют первостепенное значение. Столбцы, очевидно, для таблиц. Каждый раз, когда мы создаем переменную, нам также необходимо присвоить ей тип данных. В дополнение к этому у нас есть выражения и параметры для завершения списка объектов, которые будут хранить данные, и поэтому нам нужно указать, какие данные они будут содержать.
Двигаясь дальше, давайте посмотрим на три категории типов данных:
- Встроенные типы данных
- Пользовательские псевдонимы типов данных
- Определяемые пользователем типы данных общеязыковой среды выполнения (CLR)
О первой категории сказать особо нечего. Это типы данных, к которым мы все привыкли. Ниже приведена диаграмма, в которой перечислены хорошо известные встроенные типы данных и их диапазоны:
Категория данных | Тип данных SQL | Размер | Диапазон значений |
Точное числовое значение | Кусочек | 1 | 1, 0 или NULL |
Tinyint | |||
Смоллмани | 4 | – от 214 748,3648 до 214 748,3647 | |
Деньги | 8 | -922 337 203 685 477,5808 до 922 337 203 685 477,5807 | |
числовой[(p[s])] | 5-17 | ||
десятичный [(p[s])] | 5-17 | ||
Приблизительное числовое значение | Плавать | 4-8 | – от 1,79E+308 до -2,23E-308, 0 и от 2,23E-308 до 1,79E+308 |
Действительный/плавающий(24) | 4 | – 3,40E + 38 до -1,18E – 38, 0 и 1,18E – 38 до 3,40E + 38 | |
Строки символов | символ [ ( N ) ] | Н | N = от 1 до 8000 байт символов, отличных от Unicode |
nvarchar [ ( N | макс ) ] | 931-1 (2 147 483 647) байт | ||
Другие типы данных | Уникальный идентификатор | 16 | ххххххх-хххх-хххх-хххх-хххххххххх (шестнадцатеричное десятичное число) |
Отметка времени | 8 | двоичный(8) или varbinary(8) | |
xml ([ СОДЕРЖАНИЕ | ДОКУМЕНТ ] xml_schema_collection ) | |||
sql_вариант | 8016 | тип данных, в котором хранятся значения различных типов данных, поддерживаемых SQL Server. | |
Иерархид | 892 | 6*logAn бит, где n — дочерний узел | |
Курсор | |||
Стол | |||
Системное имя | 256 | ||
Дата и время | Дата | 3 | 01-01-0001 по 31-12-9999 |
время [ (точность долей секунды) ] | от 3 до 5 | 00:00:00.0000000 до 23:59:59.9999999 | |
Маленькая дата и время | 4 | Дата: с 01.01.1900 по 06.06.2079. Время: с 00:00:00 до 23:59:59 | |
Дата и время | 8 | Дата: с 1 января 1753 г. по 31 декабря 9999 г. Время: с 00:00:00 до 23:59:59. | |
datetime2 [ (дробное секундная точность) ] | от 6 до 8 | Дата: с 01.01.01 по 31.12.9999. Время: с 00:00:00 до 23:59.:59.9999999 | |
datetimeoffset [ (точность долей секунды) ] | от 8 до 10 | Дата: с 01.01.01 по 31.12.9999. Время: с 00:00:00 до 23:59:59,9999999. Смещение часового пояса: от -14:00 до +14:00 | |
Пространственный | География 931-1 |
- Примечание. Типы данных Text, Ntext и Image SQL будут удалены в будущей версии SQL Server. Рекомендуется избегать использования этих типов данных в новых разработках. Вместо этого используйте типы данных varchar(max), nvarchar(max) и varbinary(max).
Далее у нас есть то, что мы упомянули в начале, и это определяемые пользователем типы данных псевдонимов, которые позволяют нам создавать наши собственные типы данных на основе встроенного списка выше.
Последняя категория — определяемые пользователем типы данных CLR, которые позволяют нам создавать собственные типы данных с помощью .NET Framework. Это немного сложнее, чем описанное выше, и требует навыков программирования для создания сборки, регистрации этой сборки в SQL Server, создания нового типа данных SQL на основе этой сборки, а затем мы можем начать использовать вновь созданный тип данных в SQL Server. .
Рекомендации по типам данных SQL
Давайте перейдем к следующему разделу, который в основном представляет собой просто теорию, но определенно то, о чем вам следует подумать при постоянном или временном хранении данных.
Преобразование
Как разработчик базы данных, одной из наиболее распространенных процедур при написании кода является преобразование. Преобразование происходит, когда данные из объекта перемещаются, сравниваются или объединяются с данными из другого объекта. Эти преобразования могут происходить автоматически, то, что мы называем неявным преобразованием в SQL Server, или вручную, которое известно как явное преобразование, что в основном означает написание кода специально для чего-то. Полезное эмпирическое правило заключается в том, что явное преобразование всегда лучше неявного преобразования, поскольку оно делает код более читабельным. Теперь, когда мы говорим о преобразованиях, также стоит упомянуть то, что может помочь нам с явным преобразованием, таким как функции CAST и CONVERT, используемые для преобразования выражения одного типа данных SQL в другой.
GUID
GUID — это аббревиатура от Globally Unique Identifier. Это способ гарантировать уникальность, и это один из самых больших типов данных SQL. Единственным недостатком GUID является размер 16 байт. Поэтому по возможности избегайте индексов по GUID.
NULL и NOT NULL
Если вы придерживаетесь значений по умолчанию для SQL Server, это может привести к проблемам с целостностью данных. Вы всегда должны пытаться указать свойство nullability всякий раз, когда вы определяете столбцы в таблицах. Возвращаясь к основам, ноль означает неизвестное или отсутствующее значение, что в основном означает, что это не 0 или пустая строка, и мы не можем выполнить сравнение с нулевым значением. Мы не можем сказать, что ноль = ноль. Это невозможно сделать. Существует свойство ANSI_NULLS, которое мы можем установить и контролировать это сравнение с нулевыми значениями.
Разреженные столбцы
Этот тип столбца является обычным столбцом в SQL Server, за исключением свойства, для которого установлено значение on, и оно указывает SQL Server оптимизировать этот столбец для нулевого хранилища.
Рекомендации по типам данных SQL
Прежде всего, всегда используйте правильный тип данных для задания. Это намного больше, чем думает большинство людей. Это может оказать существенное влияние на эффективность, производительность, хранение и дальнейшее развитие базы данных.
Если мы возьмем первые два, оптимизатор запросов сгенерирует план выполнения в зависимости от того, какие типы данных используются. Очень простой пример: если мы используем тип данных bigint там, где мы могли бы использовать smallint — тогда мы, скорее всего, просто замедляем запрос. Выбор правильного типа данных SQL в конечном итоге приведет к более эффективной работе оптимизатора запросов.
Это хорошая идея предоставить документацию для себя и других, использующих базу данных, по типам данных, входящих в объекты. Само собой разумеется, но избегайте устаревших типов данных, всегда проверяйте последнюю документацию Microsoft для получения новостей и обновлений. Если есть небольшой шанс, что вы собираетесь работать с данными не на английском языке, всегда используйте типы данных Unicode. Кроме того, используйте типы данных sysname для административных сценариев вместо файла nvarchar.
Примеры типов данных SQL
Давайте перейдем к SSMS и посмотрим, как мы можем работать с некоторыми типами данных, упомянутыми в предыдущих разделах. Мы рассмотрим конверсии, разреженные столбцы и псевдонимы типов данных.
Преобразование
Функции Cast, Convert и Parse преобразуют выражение одного типа данных SQL в другой. Ниже приведен пример запроса, который можно использовать в образце базы данных «AdventureWorks» для таблицы «TransactionHistory». Он захватывает «ProductID» и «TransactionDate», из которых мы можем использовать эту дату транзакции, чтобы увидеть, как работает конверсия:
1 2 3 4 5 6 | SELECT th.ProductID, th.TransactionDate, CAST(th.TransactionDate AS NVARCHAR(30)) AS CastDate, —CAST: ANSI SQL std CON ВЕРТ(VARCHAR(10), th.TransactionDate, 110 ) AS ConvertDate, —CONVERT T-SQL для конкретного PARSE(’20 October 2019′ AS DATETIME USING ‘en-US’) AS ParseDate — преобразовать строку в int/datetime ОТ Production.TransactionHistory th; |
Вот результирующий набор различных типов данных SQL:
Мы использовали функцию Cast для TransactionDate, чтобы преобразовать значения в nvarchar до длины 30. Затем мы использовали Convert, чтобы сделать то же самое, но затем мы также указали формат 110, который дает нам определенный стиль даты. Наконец, мы использовали Parse, который по сути работает так же, но мы можем применить к нему культуру.
Давайте внимательнее посмотрим на набор результатов и посмотрим, что у нас получилось:
- Здесь у нас есть дата и время транзакции, поскольку она находится в базе данных (тип данных datetime).
- Вот как это выглядит, когда мы приводим его к текстовому представлению
- Преобразование делает то же самое, но в данном случае мы указываем, как функция Convert будет преобразовывать выражение (110 = мм-дд-гггг).
- Синтаксический анализ в этом случае просто переводит запрошенные данные с использованием определенной культуры (en-US).
Далее давайте посмотрим, что мы можем сделать с помощью функции Parse. Parse отлично подходит для преобразования строк в даты и целые числа. Например, если мы выполним приведенный ниже оператор Select, он возьмет строку 100 000 и превратит ее в целое число:
SELECT PARSE(‘100. |
Вот набор результатов:
Теперь предположим, что мы хотим сделать то же самое снова, но по какой-то причине целое число содержит символ, который SQL Server не может преобразовать в целое число:
SELECT PARSE(‘100.000’ AS INT) AS StringToIntError; |
Вот сообщение об ошибке, которое он выдает:
Сообщение 9819, уровень 16, состояние 1, строка 2
Ошибка преобразования строкового значения «100.000» в тип данных int с использованием культуры «».
Итак, что мы можем сделать в этом случае, так это использовать Try_Parse вместо обычного Parse, потому что, если мы попробуем то же самое, что и выше, оно вернет нулевое значение, а не ошибку:
SELECT TRY_PARSE(‘100.000’ AS INT) AS StringToIntNull; |
Вот как это выглядит:
Этот метод можно использовать в качестве идентификатора, если что-то может привести к ошибке заблаговременного защитного кодирования AKA. Попытки могут применяться и для двух других типов данных SQL.
Разреженные столбцы
Как я упоминал в начале, разреженные столбцы уменьшают требования к пустому пространству. Итак, давайте перейдем к Object Explorer в нашей тестовой базе данных, найдем и запросим таблицу BillOfMaterials, чтобы увидеть, как это работает:
SELECT * FROM Production.BillOfMaterials bom; |
Обратите внимание, что в столбцах ProductAssemblyID и EndDate много нулевых значений:
Таким образом, мы можем сказать, что эти два являются хорошими кандидатами на роль разреженных столбцов. Итак, один из способов изменить это — просто изменить свойство в дизайнере или сделать это с помощью кода T-SQL, приведенного ниже:
ALTER TABLE Production.BillOfMaterials ALTER COLUMN ProductAssemblyID ADD SPARSE; GO ALTER TABLE Production. ГО |
Команды не завершились успешно в первый раз, поэтому мне пришлось потерять кластеризованный индекс (строка 7), и тогда все пошло гладко:
Если мы вернемся в обозреватель объектов, обновим таблицу BillOfMaterials, мы увидим, что эти два столбца теперь помечены как разреженные:
Красиво, верно. Еще одна полезная вещь, связанная с разреженными столбцами, называется наборами столбцов. Это полезно в ситуации, когда у нас есть таблица, содержащая набор столбцов специального назначения, которые редко используются, как в нашем примере столбцы ProductAssemblyID и EndDate или AddressLine2, MiddleName и т. д. Таким образом, идея с набором столбцов заключается в том, что SQL Сервер возьмет все эти столбцы и предоставит нам сгенерированный XML-столбец, который можно обновить. Это может привести к повышению производительности приложения, поскольку SQL Server может работать с набором столбцов, а не с каждым разреженным столбцом по отдельности.
Итак, давайте добавим набор столбцов, используя эти два примера выше, используя следующую команду:
ALTER TABLE Production.BillOfMaterials ADD SparseColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS; ГО |
Итак, если мы попытаемся добавить набор столбцов, но в нашей таблице уже есть разреженные столбцы, произойдет ошибка:
Сообщение 1734, уровень 16, состояние 1, строка 9
Невозможно создать набор разреженных столбцов «SparseColumns» в таблице «BillOfMaterials», так как таблица уже содержит один или несколько разреженных столбцов. Набор разреженных столбцов нельзя добавить в таблицу, если таблица содержит разреженный столбец.
Если вы когда-нибудь сталкивались с этим, самый простой обходной путь — отменить разреженные столбцы. Это легко сделать в конструкторе. Просто откройте его из обозревателя объектов, выберите нужный столбец и в свойствах столбца измените свойство Is Parse на 9. 0036 № , как показано ниже:
Теперь, если мы выполним команду еще раз, она будет успешной:
Суть в том, что не добавляйте сначала разреженные столбцы — сначала добавляйте наборы столбцов, а затем разреженные столбцы. Таким образом, вам не придется делать это сложным путем. Что действительно здорово, так это то, что наши операторы DML, такие как Select, Insert и Update, могут по-прежнему работать по-старому, ссылаясь на столбцы по отдельности, или мы можем делать это, используя наборы столбцов.
Пользовательские типы данных SQL
Давайте закончим с созданием пользовательского типа данных. Мы собираемся создать псевдоним типа данных, основанный на другом типе данных. Скажем так, нам нужно хранить URL-адреса в нашей таблице, и мы хотим создать фактический тип данных URL-адреса. Все, что нам нужно сделать, это выполнить код ниже:
CREATE TYPE url ИЗ varchar(2048) NOT NULL GO |
URL-адреса — это просто символы, поэтому тип данных varchar идеально подходит для этого. Я установил максимальное значение 2048 из-за этой ветки, которую я нашел в Интернете, в которой говорится, что вы должны хранить свои URL-адреса до 2048 символов:
Мы можем увидеть этот новый тип данных SQL, если перейдем к обозревателю объектов в папке «Программируемость, типы, пользовательские типы данных»:
Отсюда мы можем начать использовать только что созданный тип данных. Просто пример:
ALTER TABLE Purchasing.Vendor ДОБАВИТЬ PurchasingWebServiceURL2 url NULL GO |
Заключение
В этой статье мы узнали, как реализовать типы данных SQL. Мы начали с обзора, чтобы познакомиться с некоторыми встроенными типами данных. Затем мы обсудили некоторые моменты, которые следует учитывать при работе с типами данных и преобразованиями с использованием функций Cast, Convert и Parse. Мы также перешли к SSMS, где показали, как преобразовать выражение одного типа данных в другой. Мы рассмотрели, как работать с разреженными столбцами, а затем увидели, как создавать собственные пользовательские типы данных.
Я надеюсь, что эта статья о типах данных SQL была для вас информативной, и я благодарю вас за то, что вы ее прочитали.
- Автор
- Последние сообщения
Боян Петрович
Боян, также известный как «Бокси», выпускник Копенгагенской школы дизайна и технологий в области ИТ-технологий, специализирующийся на сетях и электронных технологиях, является аналитиком программного обеспечения с опытом работы в области качества. гарантия, поддержка программного обеспечения, пропаганда продукта и вовлечение пользователей.
Он много писал для SQL Shack и ApexSQL Solution Center по самым разным темам, от клиентских технологий, таких как разрешение 4K и тематика, обработка ошибок до стратегий индексирования и мониторинга производительности.
Боян работает в ApexSQL в Нише, Сербия, как неотъемлемая часть команды, занимающейся проектированием, разработкой и тестированием следующего поколения инструментов баз данных, включая MySQL и SQL Server, а также автономных инструментов и интеграций в Visual Studio, SSMS. и VSCode.
Подробнее о Бояне на LinkedIn
Просмотреть все сообщения Бояна Петровича
Последние сообщения Бояна Петровича (посмотреть все)
Все, что вам нужно знать о типах данных SQL
Что касается любого языка, будь то язык кодирования, такой как C, или язык запросов, такой как SQL, тип данных является одной из его наиболее неотъемлемых частей. На самом деле в SQL имеется более 30 типов данных, способных хранить все виды реальных данных. Чтобы начать работать с данными, необходимо иметь четкое представление о типах данных SQL.
Что такое тип данных?
Типы данных SQL определяют характер данных, которые могут храниться в объектах базы данных, таких как таблицы. В каждой таблице есть столбцы, и у каждого столбца есть имя и связанный с ним тип данных.
Вы можете определить обе эти вещи во время создания таблицы. Тип данных позволяет базе данных знать, чего ожидать от каждого столбца, а также определяет тип возможных взаимодействий. Например, если вы хотите, чтобы столбец содержал только целые числа, вы можете использовать для него тип данных «int».
SQL содержит множество типов данных, поэтому давайте подробнее рассмотрим наиболее важные категории доступных нам типов данных SQL.
Категории типов данных SQL
Существует шесть основных категорий предопределенных типов данных SQL, которые можно выбрать при создании таблицы. Эти категории следующие:
Числовые типы данных
Они содержат числа и делятся на две категории: точные и приблизительные.
Типы данных строки символов
Они могут содержать числа, алфавиты и символы и иметь такие типы, как «char» и «varchar».
Типы данных строки символов Unicode
Они аналогичны типам данных символьных строк, но занимают в два раза больше места для хранения.
Двоичные типы данных
Символы в этих типах данных имеют шестнадцатеричный формат.
Типы данных даты и времени
Они используются для хранения информации о дате и времени в типах данных, таких как «отметка времени» и «год».
Различные типы данных
Остальные типы данных SQL, выполняющие различные функции, сгруппированы в этой категории. Например, «CLOB» используется для больших символьных объектов, а «xml» — для данных XML.
Давайте более подробно рассмотрим каждую из этих категорий.
Числовые типы данных
Типы числовых данных делятся на две подкатегории:
- Точные типы данных
- Приблизительные типы данных
Буквальное представление значения данных хранится в точных типах данных. Точные типы данных, диапазон чисел, которые можно хранить в каждом из них, и необходимое пространство для хранения указаны ниже.
Тип данных | Из | от до | Место для хранения | Пример |
большойинт | -9 223 372 036 854 775 808 | 9 223 372 036 854 775 807 | 8 байт | Население bigint |
интервал | -2 147 483 648 | 2 147 483 647 | 4 байта | Идентификатор целое число |
маленькое целое | -32 768 | 32 767 | 2 байта | Идентификатор smallint |
крохотное целое | 0 | 255 | 1 байт | Возраст крошечный |
бит | 0 | 1 | 1 бит | Текущий бит | 5–17 байт | Баланс числовой(8,2) |
- Типы данных «bigint», «int», «smallint» и «tinyint» могут хранить целые числа, а разница между ними заключается в их диапазоне и объеме требуемой памяти.
Например, если мы хотим сохранить такой атрибут, как идентификатор студента, «int» или «smallint» будут наиболее подходящим типом данных. Для хранения возраста человека следует использовать «tinyint». Для большого числа, такого как население мира, вы должны использовать «bigint»
- Тип данных «бит» — это однобитовое целое число, которое может принимать значение ноль или единица. Его можно использовать для ответов «да» или «нет»; например, если учащийся присутствует в классе, число один будет использоваться для обозначения «да», тогда как ноль будет означать «нет».
- Типы данных «числовой» и «десятичный» записываются как числовые (p, s) и десятичные (p, s) и содержат числа с десятичной точкой.
Точность, или p, — это общее количество чисел в данных. Масштаб или s — это количество цифр после запятой в положительных числах и перед запятой в отрицательных числах. Если вы используете числовое значение, вы должны определить точную точность (p) и масштаб (ы), но в десятичном формате точность (p) является гибкой; только шкала(ы) является точной.
Например, если вы определяете баланс атрибута с числовым значением (7,2), в этом столбце можно хранить числа, такие как 34215,23.
- Приближенные типы данных содержат действительные числа, но данные не сохраняются в виде буквального представления фактических значений.
Подробная информация об этих типах данных приведена ниже.
Тип данных | Хранение | Значение «n» | Точность | Минимальный диапазон | Максимальный диапазон | Пример | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
поплавок(n) | 4 байта | 1-24 | 7 цифр | от -1,79E+308 до -2,23E-308 | 2.23E-308 до 1.79E+308 | Поплавок Pi(6) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
поплавок(n) | 8 байт | 25-53 | 15 цифр | от -1,79E+308 до -2,23E-308 | 2. | Поплавок Pi(34) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
реальный | 4 байта | Н/Д | 7 цифр | от -3,40E+38 до -1,18E-38 94, в этих обозначениях. Здесь число четыре — это точность, а 1,278923 — значимость. Разница между float(n) и «real» заключается в том, что переменная «n» (которая была создана при создании таблицы) определяет точность float(n), а точность «real» является фиксированной. Типы данных строки символовВсе эти типы данных могут содержать буквы, числа и символы. Детали этих типов данных показаны ниже.
Например, если вы определяете атрибут Roll_Number char(3), все записи в этом столбце должны содержать три символа.
Например, атрибут Имя varchar(255) может содержать оба имени: Том и Ханна.
Разница между этими двумя типами данных заключается в том, что «varchar(max)» имеет переменный максимальный размер хранилища, тогда как максимальный размер хранилища для «текста» является фиксированным. Типы данных строки символов UnicodeПодробная информация о различных типах данных в этой категории представлена ниже:
Эти типы данных аналогичны типам данных символьных строк, но каждый символ Unicode занимает два байта памяти, тогда как каждый символ, отличный от Unicode, занимает один байт памяти. Символы Unicode требуют в два раза больше места для хранения, так как каждый символ преобразуется в 16-битное число, которое можно легко сохранить в любой компьютерной системе. Это очень важно, так как устраняет языковой барьер реального мира, кодируя каждый символ с использованием единого стандарта.
Эти типы данных используются для хранения символов различных языков, таких как арабский и немецкий. Двоичные типы данныхИмя, тип, место для хранения и пример типов данных этой категории следующие:
Эти типы данных используются для хранения необработанных данных, таких как IP-адреса. Символы в данных представлены в шестнадцатеричном формате. Каждый символ может принимать любое значение от нуля до девяти, A, B, C, D, E и F.
Любой атрибут с двоичным типом данных определяется как «атрибут двоичный (n)», где n — длина данных.
Например, чтобы сохранить IP-адрес атрибута, вы можете использовать «varbinary(n)», где n определяет максимальную длину данных.
Этот тип данных может использоваться для хранения различных типов данных, таких как изображения, документы PDF и файлы MS Word.
Типы данных даты и времени
Помимо пяти основных категорий, описанных выше, существуют и другие важные типы данных SQL. Давайте заглянем и в них. Различные типы данных
Например, в атрибут «Employee_data xml» мы можем добавить несколько типов информации, например имя и город.
Например, с точки зрения бизнеса выгодно хранить данные из разных секторов, таких как финансы и торговля, вместе в «Business json».
Объект clob определяется как «object clob(n[K|M|G])», где n — целое число без знака, представляющее длину. K, M и G представляют килобайты, мегабайты и гигабайты, и если какой-либо из них присутствует, то длина данных будет следующей:
Используется для хранения данных, таких как изображения, аудиофайлы и видео.
Используется для хранения нетрадиционных данных, таких как голосовые записи и смешанные медиафайлы. типов данных SQL в популярных базах данныхИмейте в виду, что системы баз данных не поддерживают все типы данных, поэтому перед использованием любого заданного типа данных необходимо выполнить проверку. Например, MySQL не поддерживает какой-либо тип данных Unicode, а Oracle не поддерживает «дату и время». Некоторые базы данных также имеют собственные дополнительные типы данных, которые вы можете использовать. Например, в Microsoft SQL Server есть слова «money» и «smallmoney», которые можно использовать вместо «float» и «real», но они относятся к конкретной базе данных и недоступны ни в одной другой системе баз данных. |