![]() |
|
Главная → Уроки SQL → Урок 2. Типы данных
Этот урок носит больше теоретический характер, но пропустить его нельзя. В дальнейшем вы сможете возвращаться к нему, как к
справочному уроку, сейчас же просто ознакомьтесь. В прошлом уроке говорилось, что MySQL поддерживает числовые,
строковые, календарные данные и данные типа NULL. Рассмотрим их по очереди.
Тип данных | Объем памяти | Диапазон | Описание |
TINYINT (M) | 1 байт | от -128 до 127 или от 0 до 255 | Целое число. Может быть объявлено положительным с помощью ключевого слова UNSIGNED, тогда элементам столбца нельзя будет присвоить отрицательное значение. Необязательный параметр М — количество отводимых под число символов. Необязательный атрибут ZEROFILL позволяет свободные позиции по умолчанию заполнить нулями.Примеры: TINYINT — хранит любое число в диапазоне от -128 до 127. TINYINT UNSIGNED — хранит любое число в диапазоне от 0 до 255. TINYINT (2) — предполагается, что значения будут двузначными, но по факту будет хранить и трехзначные.TINYINT (3) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 002. |
SMALLINT (M) | 2 байта | от -32768 до 32767 или от 0 до 65535 | Аналогично предыдущему, но с большим диапазоном.Примеры: SMALLINT — хранит любое число в диапазоне от -32768 до 32767. SMALLINT UNSIGNED — хранит любое число в диапазоне от 0 до 65535. SMALLINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить и пятизначные.SMALLINT (4) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 0002. |
MEDIUMINT (M) | 3 байта | от -8388608 до 8388608 или от 0 до 16777215 | Аналогично предыдущему, но с большим диапазоном.Примеры: MEDIUMINT — хранит любое число в диапазоне от -8388608 до 8388608. MEDIUMINT UNSIGNED — хранит любое число в диапазоне от 0 до 16777215. MEDIUMINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить и семизначные.MEDIUMINT (5) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 00002. |
INT (M) или INTEGER (M) | 4 байта | от -2147683648 до 2147683648 или от 0 до 4294967295 | Аналогично предыдущему, но с большим диапазоном.Примеры: INT — хранит любое число в диапазоне от -2147683648 до 2147683648. INT UNSIGNED — хранит любое число в диапазоне от 0 до 4294967295. INT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить максимально возможные.INT (5) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 00002. |
BIGINT (M) | 8 байта | от -263 до 263-1 или от 0 до 264 | Аналогично предыдущему, но с большим диапазоном.
BIGINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить максимально возможные.BIGINT (7) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 0000002. |
BOOL или BOOLEAN | 1 байт | либо 0, либо 1 | Булево значение. 0 — ложь (false), 1 — истина (true). |
DECIMAL (M,D) или DEC (M,D) или NUMERIC (M,D) | M + 2 байта | зависят от параметров M и D | Используются для величин повышенной точности, например, для денежных данных. M — количество отводимых под число символов (максимальное значение — 64). D — количество знаков после запятой (максимальное значение — 30).Пример:DECIMAL (5,2) — будет хранить числа от -99,99 до 99,99. |
FLOAT (M,D) | 4 байта | мин. значение +(-) 1.175494351 * 10-39 макс. значение +(-) 3. 402823466 * 1038 | Вещественное число (с плавающей точкой). Может иметь параметр UNSIGNED, запрещающий отрицательные числа, но диапазон значений от этого не изменится. M — количество отводимых под число символов. D — количество символов дробной части. Пример:FLOAT (5,2) — будет хранить числа из 5 символов, 2 из которых будут идти после запятой (например: 46,58). |
DOUBLE (M,D) | 8 байт | мин. значение +(-) 2.2250738585072015 * 10-308 макс. значение +(-) 1.797693134862315 * 10308 | Аналогично предыдущему, но с большим диапазоном. Пример:DOUBLE — будет хранить большие дробные числа. |
Необходимо понимать, чем больше диапазон значений у типа данных, тем больше памяти он занимает. Поэтому, если предполагается,
что значения в столбце не будут превышать 100, то используйте тип TINYINT. Если при этом все значения будут положительными, то
используйте атрибут UNSIGNED. Правильный выбор типа данных позволяет сэкономить место для хранения этих данных.
Тип данных | Объем памяти | Максимальный размер | Описание |
CHAR (M) | M символов | М символов | Позволяет хранить строку фиксированной длины М. Значение М — от 0 до 65535.Примеры:CHAR (8) — хранит строки из 8 символов и занимает 8 байтов. Например, любое из следующих значений: '', 'Иван','Ирина', 'Сергей' будет занимать по 8 байтов памяти. А при попытке ввести значение 'Александра', оно будет усечено до 'Александ', т.е. до 8 символов. |
VARCHAR (M) | L+1 символов | М символов | Позволяет хранить переменные строки длиной L. Значение М — от 0 до 65535.Примеры:VARCHAR (3) — хранит строки максимум из 3 символов, но пустая строка '' занимает 1 байт памяти, строка 'a' — 2 байта, строк 'aa' — 3 байта, строка 'aaa' — 4 байта. Значение более 3 символов будет усечено до 3. |
BLOB, TEXT | L+2 символов | 216-1 символов | Позволяют хранить большие объемы текста. Причем тип TEXT используется для хранения именно текста, а BLOB — для хранения изображений, звука, электронных документов и т.д. |
MEDIUMBLOB, MEDIUMTEXT | L+3 символов | 224-1 символов | Аналогично предыдущему, но с большим размером. |
LONGBLOB, LONGTEXT | L+4 символов | 232-1 символов | Аналогично предыдущему, но с большим размером. |
ENUM ('value1', 'value2', …,'valueN') | 1 или 2 байта | 65535 элементов | Строки этого типа могут принимать только одно из значений указанного множества.Пример:ENUM ('да', 'нет') — в столбце с таким типом может храниться только одно из имеющихся значений. Удобно использовать, если предусмотрено, что в столбце должен храниться ответ на вопрос. |
SET ('value1', 'value2', …,'valueN') | до 8 байт | 64 элемента | Строки этого типа могут принимать любой или все элементы из значений указанного множества.Пример:SET ('первый', 'второй') — в столбце с таким типом может храниться одно из перечисленных значений, оба сразу или значение может отсутствовать вовсе. |
Тип данных | Объем памяти | Диапазон | Описание |
DATE | 3 байта | от '1000-01-01' до '9999-12-31' | Предназначен для хранения даты. В качестве первого значения указывается год в формате «YYYY», через дефис — месяц в формате «ММ», а затем день в формате «DD». В качестве разделителя может выступать не только дефис, а любой символ отличный от цифры. |
TIME | 3 байта | от '-838:59:59' до '838:59:59' | Предназначен для хранения времени суток. Значение вводится и хранится в привычном формате — hh:mm:ss, где hh — часы, mm — минуты, ss — секунды. В качестве разделителя может выступать любой символ отличный от цифры. |
DATATIME | 8 байт | от '1000-01-01 00:00:00' до '9999-12-31 23:59:59' | Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате — YYYY-MM-DD hh:mm:ss. В качестве разделителей могут выступать любые символы отличные от цифры. |
TIMESTAMP | 4 байта | от '1970-01-01 00:00:00' до '2037-12-31 23:59:59' | Предназначен для хранения даты и времени суток в виде количества секунд, прошедших с полуночи 1 января 1970 года (начало эпохи UNIX). |
YEAR (M) | 1 байт | от 1970 до 2069 для М=2 и от 1901 до 2155 для М=4 | Предназначен для хранения года. М — задает формат года. Например, YEAR (2) — 70, а YEAR (4) — 1970. Если параметр М не указан, то по умолчанию считается, что он равен 4. |
Вообще-то это лишь условно можно назвать типом данных. По сути это скорее указатель возможности отсутствия значения.
Например, когда вы регистрируетесь на каком-либо сайте, вам предлагается заполнить форму, в которой присутствуют, как обязательные,
так и необязательные поля. Понятно, что регистрация пользователя невозможна без указания логина и пароля, а вот дату рождения и
пол пользователь может указать по желанию. Для того, чтобы хранить такую информацию в БД и используют два значения: NOT NULL (значение не может отсутствовать) для полей логин и пароль,
NULL (значение может отсутствовать) для полей дата рождения и пол.
По умолчанию всем столбцам присваивается тип NOT NULL, поэтому его можно явно не указывать.
- Пример:
-
create table users (login varchar(20), password varchar(15), sex enum('man', 'woman') NULL, date_birth date NULL);
- Предыдущий урок Вернуться в раздел Следующий урок
- Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
Таким образом, мы создаем таблицу с 4 столбцами: логин (не более 20 символов) обязательное, пароль (не более 15 символов) обязательное,
пол (мужской или женский) не обязательное, дата рождения (тип дата) необязательное.
Все, на этом урок, посвященный типам данных, закончен. У вас, возможно, остались вопросы, но они исчезнут по мере освоения дальнейшего
материала, т.к. на практике все становится более понятно, чем в теории.
Код кнопки: |
Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.
Источник: https://www.site-do.ru/db/sql2.php
Типы данных SQL
Типы данных SQL разделяются на три группы:
— строковые;
— с плавающей точкой (дробные числа);
— целые числа, дата и время.
- Типы данных SQL строковые
Типы данных SQL
Описание
CHAR(size) Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов VARCHAR(size) Может хранить не более 255 символов. TINYTEXT Может хранить не более 255 символов. TEXT Может хранить не более 65 535 символов. BLOB Может хранить не более 65 535 символов. MEDIUMTEXT Может хранить не более 16 777 215 символов. MEDIUMBLOB Может хранить не более 16 777 215 символов. LONGTEXT Может хранить не более 4 294 967 295 символов. LONGBLOB Может хранить не более 4 294 967 295 символов. ENUM(x,y,z,etc.) Позволяет вводить список допустимых значений. Можно ввести до 65535 значений в SQL Тип данных ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение.
Ввести возможные значения можно в таком формате: ENUM ( 'X', 'Y', 'Z')SET SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений. - Типы данных SQL с плавающей точкой (дробные числа) и целые числа
Типы данных SQL
Описание
TINYINT(size) Может хранить числа от -128 до 127 SMALLINT(size) Диапазон от -32 768 до 32 767 MEDIUMINT(size) Диапазон от -8 388 608 до 8 388 607 INT(size) Диапазон от -2 147 483 648 до 2 147 483 647 BIGINT(size) Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 FLOAT(size,d) Число с плавающей точкой небольшой точности. DOUBLE(size,d) Число с плавающей точкой двойной точности. DECIMAL(size,d) Дробное число, хранящееся в виде строки. - Типы данных SQL — Дата и время
Типы данных SQL
Описание
DATE() Дата в формате ГГГГ-ММ-ДД DATETIME() Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС TIMESTAMP() Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС TIME() Время в формате ЧЧ:ММ:СС YEAR() Год в двух значной или в четырехзначном формате.
Типы данных MySQL
Типы данных MySQL разделяются на следующие типы:
- Числовые типы данных
Типы данных
Байт
От
До
TINYINT 1 -128 127 SMALLINT 2 -32768 32767 MEDIUMINT 3 -8388608 8388607 INT 4 -2147483648 2147483647 BIGINT 8 -9223372036854775808 9223372036854775807 - Типы данных даты и времени
Типы данных
Значение «Ноль»
DATETIME ‘0000-00-00 00:00:00’ DATE ‘0000-00-00’ TIMESTAMP 00000000000000 (длина зависит от количества выводимых символов) TIME ’00:00:00′ YEAR 0000 - Символьные Типы данных
Типы данных
Макс. размер
Байт
TINYTEXT или TINYBLOB 2^8-1 255 TEXT или BLOB 2^16-1 (64K-1) 65535 MEDIUMTEXT или MEDIUMBLOB 2^24-1 (16M-1) 16777215 LONGBLOB 2^32-1 (4G-1) 4294967295
Типы данных Oracle
Типы данных Oracle разделяются на следующие группы:
- СНAR – фиксированные текстовые строки до 2000 байт. Значение типа CHAR дополняется до указанной длины пробелами.
- VARCHAR 2 — текстовые строки переменной длины до 4000 байт.
- NUMBER — числовые данные.
- DECIMAL — числовые данные
- DATE — используется для хранения дат.
- RAW — используется для хранения двоичных данных до 2000 байт.
- LONG — используется для хранения текстовых данных длиной до 2 ГБ
- LONG RAW — используется для хранения двоичных данных до 2 ГБ
- ROWID — используется для хранения идентификаторов ROWID базы данных Oracle в специальном формате (адреса строк таблицы).
- BLOB — сохраняется до 4 ГБ двоичных данных. Данные этого типа хранятся вне таблицы, а в таблице Oracle находятся лишь указатели на объекты
- CLOB, NCLOB — сохраняется до 4 ГБ текстовых данных. NCLOB – это тип данных NLS большой фиксированной длины (NLS означает National Language Set – набор для национальных языков – и используется для работы в Oracle на языках, отличных от английского. В английском для хранения одного символа нужен 1 байт, а в некоторых языках мира с наборами больших символов (японском, китайском, корейском), языках, где текст читается справа налево (арабский, иврит) для хранения одного символа требуется несколько байт). Данные этого типа хранятся вне таблицы, а в таблице находятся лишь указатели на объекты.
- BFILE — сохраняется до 4 ГБ неструктурированных данных, причем в файлах операционной системы (внешние файлы).
ANSI SQL стандарт распознает только текст и число, в то время как большинство коммерческих программ используют другие специальные типы, такие как DATЕ и TIME — фактически почти стандартные типы.
Некоторые пакеты также поддерживают такие типы, как, например, MONEY и BINARY.
Типы данных, распознаваемые с помощью ANSI, состоят из строк символов и различных типов чисел, которые могут классифицироваться как точные числа и приблизительные числа.
CHARACTER(length) определяет спецификацию строк символов, где length задает длину строк заданного типа. Значения этого типа должны быть заключены в одиночные кавычки. Большинство реализаций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).
В то время, как поле типа CHAR всегда может распределить память для максимального числа символов, которое может сохраняться в поле, поле VARCHAR при любом количестве символов может распределить только определенное количество памяти, чтобы сохранить фактическое содержание поля, хотя SQL может установить некоторое дополнительное пространство памяти, чтобы следить за текущей длиной поля. Поле VARCHAR может быть любой длины, включая реализационно-определяемый максимум. Этот максимум может меняться от 254 до 2048 символов для VARCHAR и до 16000 символов для LONG. LONG обычно используется для текста пояснительного характера или для данных, которые не могут легко сжиматься в простые значения полей; VARCHAR может использоваться для любой текстовой строки, чья длина может меняться.
Извлечение и модифицирование полей VARCHAR — более сложный, и, следовательно, более медленный процесс, чем извлечение и модифицирование полей CHAR. Кроме того, некоторое количество памяти VARCHAR, остается всегда неиспользованной для гарантии вмещения всей длины строки. При использовании таких типов следует предусматривать возможность полей к объединению с другими полями.
Точные числовые типы — это числа, с десятичной точкой или без десятичной точки, которые могут представляться в виде [+|-][.] и специфицироваться как:
DECIMAL(precision [, scale]) — аргумент размера имеет две части: точность и масштаб. Масштаб не может превышать точность. Точность указывает сколько значащих цифр имеет число. Масштаб указывает максимальное число цифр справа от десятичной точки. Масштаб = нулю делает поле эквивалентом целого числа.
NUMERIC(precision [, scale]) — такое же как DECIMAL за исключением того, что максимальное десятичное не может превышать аргумента точности
INTEGER — число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от десятичной точки, т.е. с масштабом равным 0. Аргумент размера не используется (он автоматически устанавливается в реализационно-зависимое значение).
SMALLINT — такое же как INTEGER, за исключением того, что, в зависимости от реализации, размер по умолчанию может ( или не может ) быть меньше чем INTEGER.
Приблизительные числовые типы — это числа в показательной (экспоненциальной по основанию 10) записи, представляемые как Е и специфицирущиеся следующим образом:
FLOAT[(precision)] — число с плавающей запятой. Аргумент размера состоит из одного числа, определяющего минимальную точность.
REAL — такое же как FLOAT, за исключением того, что никакого аргумента размера не используется. Точность устанавливается реализационно-зависимой по умолчанию.
DOUBLE PRECISION — такое же как REAL, за исключением того, что реализационно-определяемая точность для DOUBLE PRECISION должна превышать реализационно-определяемую точность REAL.
Типы данных Access
Типы данных Access разделяются на следующие группы:
- Текстовый – максимально 255 байтов.
- Мемо — до 64000 байтов.
- Числовой — 1,2,4 или 8 байтов.Для числового типа размер поля м.б. следующим:
- байт — целые числа от -0 до 255, занимает при хранении 1 байт
- целое — целые числа от -32768 до 32767, занимает 2 байта
- длинное целое — целые числа от -2147483648 до 2147483647, занимает 4 байта
- с плавающей точкой — числа с точностью до 6 знаков от –3,4*1038 до 3,4*1038, занимает 4 байта
- с плавающей точкой — числа с точностью от –1,797*10308 до 1,797*10308, занимает 8 байт
- Дата-время — 8 байтов
- Денежный — 8 байтов, данные о денежных суммах, хранящиеся с 4 знаками после запятой.
- Счетчик — уникальное длинное целое, генерируемое Access при создании каждой новой записи — 4 байта.
- Логический — логические данные 1бит.
- Поле объекта OLE — до 1 гигабайта, картинки, диаграммы и другие объекты OLE из приложений Windows. Объекты OLE могут быть связанными или внедренными.
- Гиперссылки — поле, в котором хранятся гиперссылки. Гиперссылка может быть либо типа UNC (стандартный формат для указания пути с включением сетевого сервера файлов), либо URL(адрес объекта, документа, страницы или объекта другого типа в Интернете или Интранете. Адрес URL определяет протокол для доступа и конечный адрес).
- Мастер подстановок — поле, позволяющее выбрать значение из другой таблицы Accesss или из списка значений, используя поле со списком. Чаще всего используется для ключевых полей. Имеет тот же размер, что и первичный ключ, являющийся также и полем подстановок, обычно 4 байта. (Первичный ключ – одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице Accesss. Не допускает неопределенных .Null. значений, всегда должен иметь уникальный индекс. Служит для связывания таблицы с вторичными ключами других таблиц).
Типы данных SQL Server
Microsoft SQL Server поддерживает большинство типов данных SQL 2003.
Также SQL Server поддерживает дополнительные типы данных, используемые для однозначной идентификации строк данных в таблице и на многих серверах, например UNIQUEIDENTIFIER, что соответствует аппаратной философии «роста в ширину», исповедуемой Microsoft (т. е. внедрение базы на множестве серверов на платформах Intel), вместо «роста в высоту» (т. е. внедрение на одном огромном мощном UNIX-сервере или Windows Data Center Server).
Типы данных, используемые в SQL Server:
- BIGINT (тип данных SQL2003: B1GINT)
Хранит целые числа со знаком и без знака в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Занимает 8 байт. См. тип INT, где указаны правила свойства IDENTITY, также применимые к типу BIGINT. - BINARY[(n)] (тип данных SQL2003: BLOB)
Хранит двоичное значение фиксированной длины от 1 до 8000 байт. Значение типа BINARY занимает п + 4 байта. - BIT (тип данных SQL2003: BOOLEAN)
Хранит значения 1, 0 или NULL, которое обозначает «unknown». В одном байте может храниться до 8 значений из столбцов типа BIT таблицы. В еще одном байте можно разместить дополнительные 8 значений типа BIT Столбцы типа BIT нельзя индексировать. - CHAR[(n)], CHARACTER[(n)] (тип данных SQL2003: CHARACTER[(n)])
Хранит символьные данные фиксированной длины от 1 до 8000 символов. Все неиспользованное место по умолчанию заполняется пробелами. (Автоматическое заполнение пробелами можно отключить.) Тип занимает n байт. - CURSOR (тип данных SQL2003: отсутствует)
Специальный тип данных, используемый для описания курсора в форме переменной или параметра хранимой процедуры OUTPUT. Тип нельзя использовать в инструкции CREATE TABLE. Тип CURSOR может принимать значение NULL.
Источник: https://sql-language.ru/sqldatetype.html
Типы данных SQL
Знання →
SQL — язык запросов
Додати до моєї бази знань | SQL Бази даних |
Ключові поняття:
Символьные типы данных, CHAR или CHAR(n), VARCHAR(n), Целые типы данных, INTEGER или INT, Вещественные типы данных, Денежные типы данных, Типы данных даты и времени, Двоичные типы данных, Последовательные типы данных, Тип данных SERIAL. → Понятійний словник сторінки
Символьные типы данных — содержат буквы, цифры и специальные символы.
CHAR или CHAR(n) — символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответсвует CHAR(1). Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины строки.
VARCHAR(n) — символьная строка переменной длины. Для хранения данных этого типа отводится число байт, соответствующее реальной длине строки.
Целые типы данных — поддерживают только целые числа (дробные части и десятичные точки не допускаются). Над этими типами разрешается выполнять арифметические операции и применять к ним агрегирующие функции (определение максимального, минимального, среднего и суммарного значения столбца реляционной таблицы).
- INTEGER или INT — целое, для хранения которого отводится, как правило, 4 байта. (Замечание: число байт, отводимое для хранения того или иного числового типа данных зависит от используемой СУБД и аппаратной платформы, здесь приводятся наиболее «типичные» значения)
- SMALLINT — короткое целое (2 байта), интервал значений от — 32767 до +32768
- Вещественные типы данных — описывают числа с дробной частью.
Интервал значений от — 2147483647 до + 2147483648 FLOAT и SMALLFLOAT — числа с плавающей точкой (для хранения отводится обычно 8 и 4 байта соответсвенно). DECIMAL(p) — тип данных аналогичный FLOAT с числом значащих цифр p. DECIMAL(p,n) — аналогично предыдущему, p — общее количество десятичных цифр, n — количество цифр после десятичной запятой.
Денежные типы данных — описывают, естественно, денежные величины. Если в ваша система такого типа данных не поддерживает, то используйте DECIMAL(p,n).
MONEY(p,n) — все аналогично типу DECIMAL(p,n). Вводится только потому, что некоторые СУБД предусматривают для него специальные методы форматирования.
Дата и время — используются для хранения даты, времени и их комбинаций. Большинство СУБД умеет определять интервал между двумя датами, а также уменьшать или увеличивать дату на определенное количество времени.
- DATE — тип данных для хранения даты.
- TIME — тип данных для хранения времени.
- INTERVAL — тип данных для хранения верменного интервала.
- DATETIME — тип данных для хранения моментов времени (год + месяц + день + часы + минуты + секунды + доли секунд).
Двоичные типы данных — позволяют хранить данные любого объема в двоичном коде (оцифрованные изображения, исполняемые файлы и т.д.). Определения этих типов наиболее сильно различаются от системы к системе, часто используются ключевые слова:
BINARY BYTE
BLOB
Последовательные типы данных — используются для представления возрастающих числовых последовательностей.
SERIAL — тип данных на основе INTEGER, позволяющий сформировать уникальное значение (например, для первичного ключа). При добавлении записи СУБД автоматически присваивает полю данного типа значение, получаемое из возрастающей последовательности целых чисел.
В заключение следует сказать, что для всех типов данных имеется общее значение NULL — «не определено». Это значение имеет каждый элемент столбца до тех пор, пока в него не будут введены данные. При создании таблицы можно явно указать СУБД могут ли элементы того или иного столбца иметь значения NULL (это не допустимо, например, для столбца, являющего первичным ключом).
SQLБази данихSQL — язык запросов
загрузка…
Источник: http://www.znannya.org/?view=SQL_DataTypes
Типы данных
Переменная в JavaScript может содержать любые данные. В один момент там может быть строка, а в другой – число:
// Не будет ошибкой
let message = «hello»;
message = 123456;
Языки программирования, в которых такое возможно, называются «динамически типизированными». Это значит, что типы данных есть, но переменные не привязаны ни к одному из них.
Есть восемь основных типов данных в JavaScript. В этой главе мы рассмотрим их в общем, а в следующих главах поговорим подробнее о каждом.
Число
- Числовой тип данных (number) представляет как целочисленные значения, так и числа с плавающей точкой.
- Существует множество операций для чисел, например, умножение *, деление /, сложение +, вычитание — и так далее.
- Кроме обычных чисел, существуют так называемые «специальные числовые значения», которые относятся к этому типу данных: Infinity, -Infinity и NaN.
-
Infinity представляет собой математическую бесконечность ∞. Это особое значение, которое больше любого числа.
Мы можем получить его в результате деления на ноль:
alert( 1 / 0 ); // Infinity Или задать его явно:
alert( Infinity ); // Infinity -
NaN означает вычислительную ошибку. Это результат неправильной или неопределённой математической операции, например:
alert( «не число» / 2 ); // NaN, такое деление является ошибкой Значение NaN «прилипчиво». Любая операция с NaN возвращает NaN:
alert( «не число» / 2 + 5 ); // NaN Если где-то в математическом выражении есть NaN, то результатом вычислений с его участием будет NaN.
Математические операции в JavaScript «безопасны». Мы можем делать что угодно: делить на ноль, обращаться со строками как с числами и т.д.
Скрипт никогда не остановится с фатальной ошибкой (не «умрёт»). В худшем случае мы получим NaN как результат выполнения.
Специальные числовые значения относятся к типу «число». Конечно, это не числа в привычном значении этого слова.
Подробнее о работе с числами мы поговорим в главе Числа.
BigInt
В JavaScript тип «number» не может содержать числа больше, чем 253 (или меньше, чем -253 для отрицательных). Это техническое ограничение вызвано их внутренним представлением.
253 – это достаточно большое число, состоящее из 16 цифр, поэтому чаще всего проблем не возникает.
Но иногда нам нужны действительно гигантские числа, например в криптографии или при использовании метки времени («timestamp») с микросекундами.
Тип BigInt был добавлен в JavaScript, чтобы дать возможность работать с целыми числами произвольной длины.
Чтобы создать значение типа BigInt, необходимо добавить n в конец числового литерала:
// символ «n» в конце означает, что это BigInt
const bigInt = 1234567890123456789012345678901234567890n;
Так как BigInt числа нужны достаточно редко, мы рассмотрим их в отдельной главе BigInt.
В данный момент BigInt поддерживается только в браузерах Firefox и Chrome, но не поддерживается в Safari/IE/Edge.
Строка
Строка (string) в JavaScript должна быть заключена в кавычки.
let str = «Привет»;
let str2 = 'Одинарные кавычки тоже подойдут';
let phrase = `Обратные кавычки позволяют встраивать переменные ${str}`;
В JavaScript существует три типа кавычек.
- Двойные кавычки: «Привет».
- Одинарные кавычки: 'Привет'.
- Обратные кавычки: `Привет`.
Двойные или одинарные кавычки являются «простыми», между ними нет разницы в JavaScript.
Обратные кавычки же имеют «расширенную функциональность». Они позволяют нам встраивать выражения в строку, заключая их в ${…}. Например:
let name = «Иван»;
// Вставим переменную
alert( `Привет, ${name}!` ); // Привет, Иван!
// Вставим выражение
alert( `результат: ${1 + 2}` ); // результат: 3
Выражение внутри ${…} вычисляется, и его результат становится частью строки. Мы можем положить туда всё, что угодно: переменную name или выражение 1 + 2, или что-то более сложное.
Обратите внимание, что это можно делать только в обратных кавычках. Другие кавычки не имеют такой функциональности встраивания!
alert( «результат: ${1 + 2}» ); // результат: ${1 + 2} (двойные кавычки ничего не делают)
Мы рассмотрим строки более подробно в главе Строки.
В некоторых языках, например C и Java, для хранения одного символа, например «a» или «%», существует отдельный тип. В языках C и Java это char.
В JavaScript подобного типа нет, есть только тип string. Строка может содержать один символ или множество.
Булевый (логический) тип
- Булевый тип (boolean) может принимать только два значения: true (истина) и false (ложь).
- Такой тип, как правило, используется для хранения значений да/нет: true значит «да, правильно», а false значит «нет, не правильно».
- Например:
let nameFieldChecked = true; // да, поле отмечено
let ageFieldChecked = false; // нет, поле не отмечено
Булевые значения также могут быть результатом сравнений:
let isGreater = 4 > 1;
alert( isGreater ); // true (результатом сравнения будет «да»)
Мы рассмотрим булевые значения более подробно в главе Логические операторы.
Значение «null»
- Специальное значение null не относится ни к одному из типов, описанных выше.
- Оно формирует отдельный тип, который содержит только значение null:
- В JavaScript null не является «ссылкой на несуществующий объект» или «нулевым указателем», как в некоторых других языках.
- Это просто специальное значение, которое представляет собой «ничего», «пусто» или «значение неизвестно».
- В приведённом выше коде указано, что переменная age неизвестна или не имеет значения по какой-то причине.
Значение «undefined»
Специальное значение undefined также стоит особняком. Оно формирует тип из самого себя так же, как и null.
Оно означает, что «значение не было присвоено».
Если переменная объявлена, но ей не присвоено никакого значения, то её значением будет undefined:
let x;
alert(x); // выведет «undefined»
Технически мы можем присвоить значение undefined любой переменной:
let x = 123;
x = undefined;
alert(x); // «undefined»
…Но так делать не рекомендуется. Обычно null используется для присвоения переменной «пустого» или «неизвестного» значения, а undefined – для проверок, была ли переменная назначена.
Объекты и символы
Тип object (объект) – особенный.
Все остальные типы называются «примитивными», потому что их значениями могут быть только простые значения (будь то строка или число, или что-то ещё). Объекты же используются для хранения коллекций данных или более сложных объектов. Мы разберёмся с ними позднее в главе Объекты после того, как узнаем больше о примитивах.
Тип symbol (символ) используется для создания уникальных идентификаторов объектов. Мы упоминаем здесь о нём для полноты картины, изучим этот тип после объектов.
Оператор typeof
Оператор typeof возвращает тип аргумента. Это полезно, когда мы хотим обрабатывать значения различных типов по-разному или просто хотим сделать проверку.
У него есть два синтаксиса:
- Синтаксис оператора: typeof x.
- Синтаксис функции: typeof(x).
Другими словами, он работает со скобками или без скобок. Результат одинаковый.
Вызов typeof x возвращает строку с именем типа:
typeof undefined // «undefined»
typeof 0 // «number»
typeof 10n // «bigint»
typeof true // «boolean»
typeof «foo» // «string»
typeof Symbol(«id») // «symbol»
typeof Math // «object» (1)
typeof null // «object» (2)
typeof alert // «function» (3)
Последние три строки нуждаются в пояснении:
- Math – это встроенный объект, который предоставляет математические операции и константы. Мы рассмотрим его подробнее в главе Числа. Здесь он служит лишь примером объекта.
- Результатом вызова typeof null является «object». Это неверно. Это официально признанная ошибка в typeof, сохранённая для совместимости. Конечно, null не является объектом. Это специальное значение с отдельным типом. Повторимся, это ошибка в языке.
- Вызов typeof alert возвращает «function», потому что alert является функцией. Мы изучим функции в следующих главах, где заодно увидим, что в JavaScript нет специального типа «функция». Функции относятся к объектному типу. Но typeof обрабатывает их особым образом, возвращая «function». Формально это неверно, но очень удобно на практике.
Итого
В JavaScript есть 8 основных типов.
- number для любых чисел: целочисленных или чисел с плавающей точкой, целочисленные значения ограничены диапазоном ±253.
- bigint для целых чисел произвольной длины.
- string для строк. Строка может содержать один или больше символов, нет отдельного символьного типа.
- boolean для true/false.
- null для неизвестных значений – отдельный тип, имеющий одно значение null.
- undefined для неприсвоенных значений – отдельный тип, имеющий одно значение undefined.
- object для более сложных структур данных.
- symbol для уникальных идентификаторов.
Оператор typeof позволяет нам увидеть, какой тип данных сохранён в переменной.
- Имеет две формы: typeof x или typeof(x).
- Возвращает строку с именем типа. Например, «string».
- Для null возвращается «object» – это ошибка в языке, на самом деле это не объект.
В следующих главах мы сконцентрируемся на примитивных значениях, а когда познакомимся с ними, перейдём к объектам.
Источник: https://learn.javascript.ru/types
Числовые типы данных — Visual Basic
- 07/20/2015
- Время чтения: 3 мин
-
Visual Basic предоставляет несколько числовых типов данных для обработки чисел в различных представлениях.Visual Basic supplies several numeric data types for handling numbers in various representations. Целочисленные типы представляют только целые числа (положительные, отрицательные и нулевые), а Нецелочисленные типы — числа с целой и дробной частями.Integral types represent only whole numbers (positive, negative, and zero), and nonintegral types represent numbers with both integer and fractional parts.
Для таблицы, показывающей параллельное сравнение типов данных Visual Basic, см. в разделе типы данных.For a table showing a side-by-side comparison of the Visual Basic data types, see Data Types.
Целочисленные типыIntegral Numeric Types
Целочисленные типы данных — это те, которые представляют только числа без дробных частей.Integral data types are those that represent only numbers without fractional parts.
Целочисленные типы данных со знаком имеют тип данных SByte (8-разрядный), короткий тип данных (16-разрядный), целочисленный тип данных (32 бит) и тип данных Long (64-бит).
The signed integral data types are SByte Data Type (8-bit), Short Data Type (16-bit), Integer Data Type (32-bit), and Long Data Type (64-bit). Если переменная всегда хранит целые числа, а не дробные числа, объявите ее как один из этих типов.
If a variable always stores integers rather than fractional numbers, declare it as one of these types.
Целочисленные типы без знака имеют тип данных Byte (8-разрядный), тип данных UShort (16-разрядный), тип данных UInteger (32 бит) и тип данных ULong (64-бит).
The unsigned integral types are Byte Data Type (8-bit), UShort Data Type (16-bit), UInteger Data Type (32-bit), and ULong Data Type (64-bit). Если переменная содержит двоичные данные или данные неизвестной природы, объявите ее как один из этих типов.
If a variable contains binary data, or data of unknown nature, declare it as one of these types.
ПроизводительностьPerformance
Арифметические операции выполняются быстрее с целочисленными типами, чем с другими типами данных.Arithmetic operations are faster with integral types than with other data types. Они работают быстрее с типами Integer и UInteger в Visual Basic.They are fastest with the Integer and UInteger types in Visual Basic.
Большие целые числаLarge Integers
Если необходимо хранить целое число, большее, чем Integer тип данных, можно использовать Long тип данных.If you need to hold an integer larger than the Integer data type can hold, you can use the Long data type instead.
Long переменные могут содержать числа от-9223372036854775808 до 9 223 372 036 854 775 807.Long variables can hold numbers from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807. Операции с Long немного медленнее, чем в Integer.
Operations with Long are slightly slower than with Integer.
Если вам нужны еще большие значения, можно использовать тип данных Decimal.If you need even larger values, you can use the Decimal Data Type. Можно хранить числа от-79,228,162,514,264,337,593,543,950,335 до 79,228,162,514,264,337,593,543,950,335 в переменной Decimal, если не используются десятичные разряды.
You can hold numbers from -79,228,162,514,264,337,593,543,950,335 through 79,228,162,514,264,337,593,543,950,335 in a Decimal variable if you do not use any decimal places. Однако операции с числами Decimal значительно медленнее, чем с любым другим числовым типом данных.
However, operations with Decimal numbers are considerably slower than with any other numeric data type.
Небольшие целые числаSmall Integers
Если не требуется полный диапазон Integer типа данных, можно использовать Short тип данных, который может содержать целые числа от-32 768 до 32 767.If you do not need the full range of the Integer data type, you can use the Short data type, which can hold integers from -32,768 through 32,767.
Для наименьшего диапазона целых чисел SByte тип данных содержит целые числа от-128 до 127.For the smallest integer range, the SByte data type holds integers from -128 through 127.
При наличии очень большого числа переменных, содержащих небольшие целые числа, среда CLR иногда может хранить Short и SByte переменные более эффективно и экономить потребление памяти.
If you have a very large number of variables that hold small integers, the common language runtime can sometimes store your Short and SByte variables more efficiently and save memory consumption. Однако операции с Short и SByte несколько медленнее, чем в Integer.However, operations with Short and SByte are somewhat slower than with Integer.
Целые числа без знакаUnsigned Integers
Если известно, что переменная никогда не должна содержать отрицательное число, можно использовать неподписанные типыByte, UShort, UIntegerи ULong.If you know that your variable never needs to hold a negative number, you can use the unsigned typesByte, UShort, UInteger, and ULong.
Каждый из этих типов данных может содержать положительное целое число в два раза больше, чем соответствующий знаковый тип (SByte, Short, Integerи Long).Each of these data types can hold a positive integer twice as large as its corresponding signed type (SByte, Short, Integer, and Long).
С точки зрения производительности каждый тип без знака является точно таким же эффективным, как и соответствующий тип со знаком.In terms of performance, each unsigned type is exactly as efficient as its corresponding signed type.
В частности, UInteger предоставляет общий доступ к Integer отличие наиболее эффективного из всех простейших числовых типов данных.In particular, UInteger shares with Integer the distinction of being the most efficient of all the elementary numeric data types.
Нецелочисленные числовые типыNonintegral Numeric Types
Нецелочисленные типы данных — это значения, представляющие числа с целой и дробной частями.Nonintegral data types are those that represent numbers with both integer and fractional parts.
Нецелочисленные числовые типы данных Decimal (128-разрядная Фиксированная точка), один тип данных (32-разрядная с плавающей запятой) и тип данных Double (64-разрядный с плавающей запятой).
The nonintegral numeric data types are Decimal (128-bit fixed point), Single Data Type (32-bit floating point), and Double Data Type (64-bit floating point). Все типы со знаком.They are all signed types.
Если переменная может содержать дробную часть, объявите ее как один из этих типов.If a variable can contain a fraction, declare it as one of these types.
Decimal не является типом данных с плавающей запятой.Decimal is not a floating-point data type. Decimal числа имеют двоичное целочисленное значение и целочисленный коэффициент масштабирования, указывающий, какая часть значения является десятичной дробью.Decimal numbers have a binary integer value and an integer scaling factor that specifies what portion of the value is a decimal fraction.
Для денежных значений можно использовать Decimal переменные.You can use Decimal variables for money values. Преимущество — точность значений.The advantage is the precision of the values.
Тип данных Double является более быстрым и требует меньше памяти, но он подвергается ошибкам округления.The Double data type is faster and requires less memory, but it is subject to rounding errors.
Тип данных Decimal сохраняет полную точность до 28 десятичных разрядов.The Decimal data type retains complete accuracy to 28 decimal places.
Числа с плавающей запятой (Single и Double) имеют большие диапазоны, чем Decimal числа, но могут подвергаться ошибкам округления.
Floating-point (Single and Double) numbers have larger ranges than Decimal numbers but can be subject to rounding errors. Типы с плавающей запятой поддерживают меньше значащих цифр, чем Decimal, но могут представлять значения большей величины.
Floating-point types support fewer significant digits than Decimal but can represent values of greater magnitude.
Нецелочисленные числовые значения можно выразить как Мммии, в котором MMM является мантиссаом (значащими цифрами), а ие — экспонентой (степенью 10).Nonintegral number values can be expressed as mmmEeee, in which mmm is the mantissa (the significant digits) and eee is the exponent (a power of 10).
Наибольшие положительные значения нецелочисленных типов — 7.9228162514264337593543950335 E + 28 для Decimal, 4028235E E + 38 для Singleи 1.79769313486231570 E + 308 для Double.The highest positive values of the nonintegral types are 7.9228162514264337593543950335E+28 for Decimal, 3.4028235E+38 for Single, and 1.
79769313486231570E+308 for Double.
ПроизводительностьPerformance
Double является наиболее эффективным из типов данных дробной части, так как процессоры на текущих платформах выполняют операции с плавающей запятой с двойной точностью.
Double is the most efficient of the fractional data types, because the processors on current platforms perform floating-point operations in double precision. Однако операции с Double не так быстро, как с целочисленными типами, такими как Integer.
However, operations with Double are not as fast as with the integral types such as Integer.
Небольшие величиныSmall Magnitudes
Для чисел с наименьшей возможной величиной (ближайшее к 0) Double переменные могут содержать числа в виде мелких, например, 4.94065645841246544 E-324 для отрицательных значений и 4.
94065645841246544 E-324 для положительных значений.For numbers with the smallest possible magnitude (closest to 0), Double variables can hold numbers as small as -4.94065645841246544E-324 for negative values and 4.
94065645841246544E-324 for positive values.
Небольшие дробные числаSmall Fractional Numbers
Если не требуется полный диапазон Double типа данных, можно использовать Single тип данных, который может содержать числа с плавающей запятой в диапазоне от-4028235E E + 38 до 4028235E E + 38.If you do not need the full range of the Double data type, you can use the Single data type, which can hold floating-point numbers from -3.
4028235E+38 through 3.4028235E+38. Наименьшими значениями для Single переменных являются-1.401298 E-45 для отрицательных значений и 1.401298 E-45 для положительных значений.The smallest magnitudes for Single variables are -1.401298E-45 for negative values and 1.401298E-45 for positive values.
При наличии очень большого числа переменных, содержащих небольшие числа с плавающей запятой, среда CLR может иногда сохранять Single переменные более эффективно и экономить потребление памяти.
If you have a very large number of variables that hold small floating-point numbers, the common language runtime can sometimes store your Single variables more efficiently and save memory consumption.
См. такжеSee also
Источник: https://docs.microsoft.com/ru-ru/dotnet/visual-basic/programming-guide/language-features/data-types/numeric-data-types