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’)
SETSQL Тип данных 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()Год в двух значной или в четырехзначном формате.

Создание таблицы в базе данных производится командой CREATE TABLE.

Синтаксис:

CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition. )] [table_options] [select_statement]

tbl_name— Задает имя таблицы, которая будет создана в текущей базе данных. Если никакая база данных на момен вызова команды CREATE TABLE не была принята текущей, то возникнет ошибка выполнения команды.

IF NOT EXISTS— Если указан этот параметр и производится попытка создать таблицу с дублирующим именем (т.е. таблица с таким именем в текущей БД уже есть), то таблица создана не будет и сообщение об ошибке не появиться. В противном случае таблица также создана не будет, но команда вызовет ошибку.

create_definition— Определяет внутреннюю структуру создаваемой таблицы (названия и типы полей, ключи, индексы и т.д.)

Возможные синтаксисы create_definition:

col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]

PRIMARY KEY (index_col_name. )

KEY [index_name] (index_col_name. )

INDEX [index_name] (index_col_name. )

UNIQUE [INDEX] [index_name] (index_col_name. )

[CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name. ) [reference_definition]

col_name — Задает имя столбца в создаваемой таблице.

Type— Задает тип данных для столбца col_name.

Возможные значения параметра type:

§ INT[(length)] [UNSIGNED] [ZEROFILL]

§ BIGINT[(length)] [UNSIGNED] [ZEROFILL]

§ DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]

[NOT NULL | NULL] —Указывавет, может ли данных столбец содержать значение NULL или нет. Если не указано, то по умолчанию принимается NULL (т.е. может содержать NULL).

[DEFAULT default_value]— Задает значение по умолчанию для данного столбца. При вставке новой записи в таблицу командой INSERT если значение для поля col_name явно указано не было, то устанавливается значение default_value.

[AUTO_INCREMENT]— При вставке новой записи в таблицу поле с этим атрибутом автоматически получит числовое значение, на 1 больше самого большого значения для этого поля в текущий момент времени. Данная возможность обычно используется для генерирования уникальных идентификаторов строк. Столбец, для которого применяется атрибут AUTO_INCREMENT, должен иметь целочисленный тип. В таблице может быть только один столбец с атрибутом AUTO_INCREMENT. Так же этот столбец должен быть проиндексирован. Отсчет последовательности чисел для AUTO_INCREMENT начинается с 1. Это могут быть только положительные числа.

Следующий пример создает таблицу users с 3 полями, где первое поле — уникальный идентификатор записи, второе поле — имя пользователя, а третье поле — его возраст:

create table Water_Area(

id int auto_increment,

constraint pk_Water_Area primary key nonclustered(id))

create table Station(

id_Water_Area int not null,

name varchar(20) not null,

Latitude float(4) null,

Longitude float(4) null,

coordinates varchar(40) null,

coordinates_modern varchar(30) null,

comment varchar(70) null

constraint pk_Station primary key nonclustered(id))

Удаление таблицы.

Для удаления таблицы служит команда DROP TABLE.

DROP TABLE [IF EXISTS] tbl_name [, tbl_name. ] [RESTRICT | CASCADE]

tbl_name — Имя удаляемой таблицы.

IF EXISTS – Если указан этот параметр, то при попытке удаления несущестующей таблицы ошибки не возникнет. В противном случае возникнет ошибка выполнения команды.

RESTRICT и CASCADE Не несут никакой функциональности. Оставлены для упрощения переноса программы.

Drop table Station

Модификация таблиц.

Для модификации служит команда Alter Table.

ALTER TABLE TableName1ADD | ALTER [COLUMN] FieldName1FieldType [(nFieldWidth [, nPrecision])][NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]][DEFAULT eExpression1][PRIMARY KEY | UNIQUE][REFERENCES TableName2 [TAG TagName1]][NOCPTRANS] |[DROP [COLUMN] FieldName]

Команда ALTER TABLE изменяет определение таблицы одним из следующих способов:

-добавляет ограничение целостности

-переопределяет столбец (тип данных, размер, умалчиваемое значение)

-модифицирует характеристики памяти или иные параметры

-включает, выключает или удаляет ограничение целостности или триггер.

alter table Station

alter table Station

add constraint fk_Station_Relation_Water_Area foreign key (id_Water_Area) references Water_Area (id)

on delete cascade

Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

Числовые типы данных

Тип данныхОбъем памятиДиапазонОписание
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 байтаот -2 63 до 2 63 -1 или от 0 до 2 64Аналогично предыдущему, но с большим диапазоном.

BIGINT — хранит любое число в диапазоне от -2 63 до 2 63 -1.

BIGINT UNSIGNED — хранит любое число в диапазоне от 0 до 2 64 .

BIGINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить максимально возможные.

BIGINT (7) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 0000002.

BOOL или BOOLEAN1 байтлибо 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 * 10 38Вещественное число (с плавающей точкой). Может иметь параметр UNSIGNED, запрещающий отрицательные числа, но диапазон значений от этого не изменится. M — количество отводимых под число символов. D — количество символов дробной части.

FLOAT (5,2) — будет хранить числа из 5 символов, 2 из которых будут идти после запятой (например: 46,58).

DOUBLE (M,D)8 байтмин. значение +(-) 2.2250738585072015 * 10 -308
макс. значение +(-) 1.797693134862315 * 10 308Аналогично предыдущему, но с большим диапазоном.

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, TEXTL+2 символов2 16 -1 символовПозволяют хранить большие объемы текста. Причем тип TEXT используется для хранения именно текста, а BLOB — для хранения изображений, звука, электронных документов и т.д.MEDIUMBLOB, MEDIUMTEXTL+3 символов2 24 -1 символовАналогично предыдущему, но с большим размером.LONGBLOB, LONGTEXTL+4 символов2 32 -1 символовАналогично предыдущему, но с большим размером.ENUM (‘value1’, ‘value2’, . ‘valueN’)1 или 2 байта65535 элементовСтроки этого типа могут принимать только одно из значений указанного множества.

ENUM (‘да’, ‘нет’) — в столбце с таким типом может храниться только одно из имеющихся значений. Удобно использовать, если предусмотрено, что в столбце должен храниться ответ на вопрос.

SET (‘value1’, ‘value2’, . ‘valueN’)до 8 байт64 элементаСтроки этого типа могут принимать любой или все элементы из значений указанного множества.

SET (‘первый’, ‘второй’) — в столбце с таким типом может храниться одно из перечисленных значений, оба сразу или значение может отсутствовать вовсе.

Календарные типы данных

Тип данныхОбъем памятиДиапазонОписание
DATE3 байтаот ‘1000-01-01’ до ‘9999-12-31’Предназначен для хранения даты. В качестве первого значения указывается год в формате "YYYY", через дефис — месяц в формате "ММ", а затем день в формате "DD". В качестве разделителя может выступать не только дефис, а любой символ отличный от цифры.
TIME3 байтаот ‘-838:59:59’ до ‘838:59:59’Предназначен для хранения времени суток. Значение вводится и хранится в привычном формате — hh:mm:ss, где hh — часы, mm — минуты, ss — секунды. В качестве разделителя может выступать любой символ отличный от цифры.
DATATIME8 байтот ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате — YYYY-MM-DD hh:mm:ss. В качестве разделителей могут выступать любые символы отличные от цифры.
TIMESTAMP4 байтаот ‘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.

Тип данных NULL

Вообще-то это лишь условно можно назвать типом данных. По сути это скорее указатель возможности отсутствия значения. Например, когда вы регистрируетесь на каком-либо сайте, вам предлагается заполнить форму, в которой присутствуют, как обязательные, так и необязательные поля. Понятно, что регистрация пользователя невозможна без указания логина и пароля, а вот дату рождения и пол пользователь может указать по желанию. Для того, чтобы хранить такую информацию в БД и используют два значения:

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 символов) обязательное, пол (мужской или женский) не обязательное, дата рождения (тип дата) необязательное.

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

Видеоуроки php + mysql

Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Типы приблизительных числовых данных, используемые для числовых данных с плавающей запятой. Approximate-number data types for use with floating point numeric data. Данные с плавающей запятой являются приблизительными, поэтому не все значения из диапазона могут быть отображены точно. Floating point data is approximate; therefore, not all values in the data type range can be represented exactly. Синонимом по стандарту ISO для типа real является float(24) . The ISO synonym for real is float(24).

Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions

Синтаксис Syntax

float [ ( n ) ] Где n — это количество битов, используемых для хранения мантиссы числа в формате float при экспоненциальном представлении. Определяет точность данных и размер для хранения. float [ (n) ] Where n is the number of bits that are used to store the mantissa of the float number in scientific notation and, therefore, dictates the precision and storage size. Если указан параметр n, это должно быть значение в диапазоне от 1 до 53. If n is specified, it must be a value between 1 and 53. Значение n по умолчанию — 53. The default value of n is 53.

Значение n n valueТочность PrecisionОбъем памяти Storage size
1-24 1-247 цифр 7 digits4 байта 4 bytes
25-53 25-5315 знаков 15 digits8 байт 8 bytes

В приложении SQL Server SQL Server параметр n может принимать одно из двух возможных значений. SQL Server SQL Server treats n as one of two possible values. Если 1 If 1 Если 25 If 25

Тип данных SQL Server SQL Server float[ (n) ] соответствует стандарту ISO для всех значений n в диапазоне от 1 до 53. The SQL Server SQL Server float[(n)] data type complies with the ISO standard for all values of n from 1 through 53. Синонимом типа double precision является тип float(53) . The synonym for double precision is float(53).

Remarks Remarks

Тип данных Data typeДиапазон RangeПамять Storage
float float— 1,79E+308 — -2,23E-308, 0 и 2,23E-308 — 1,79E+308 — 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308Зависит от значения n Depends on the value of n
real real— 3,40E + 38 — -1,18E — 38, 0 и 1,18E — 38 — 3,40E + 38 — 3.40E + 38 to -1.18E — 38, 0 and 1.18E — 38 to 3.40E + 384 байта 4 Bytes

Преобразование данных типа float и real Converting float and real data

При преобразовании в любой целочисленный тип данных значения типа float усекаются. Values of float are truncated when they are converted to any integer type.

Если тип данных float или real нужно преобразовать в символьный тип, то, как правило, строковую функцию STR использовать удобнее, чем CAST( ). When you want to convert from float or real to character data, using the STR string function is usually more useful than CAST( ). Это объясняется большими возможностями функции STR в отношении форматирования. This is because STR enables more control over formatting. Дополнительные сведения см. в статьях STR (Transact-SQL) и Функции (Transact-SQL). For more information, see STR (Transact-SQL) and Functions (Transact-SQL).

До версии SQL Server 2016 (13.x) SQL Server 2016 (13.x) точность преобразования значений float в decimal или numeric была ограничена 17 знаками. Prior to SQL Server 2016 (13.x) SQL Server 2016 (13.x) , conversion of float values to decimal or numeric is restricted to values of precision 17 digits only. Любое значение типа float менее 5E-18 (в экспоненциальном представлении 5E-18 или десятичном представлении 0.0000000000000000050000000000000005) округлялось до 0. Any float value less than 5E-18 (when set using either the scientific notation of 5E-18 or the decimal notation of 0.0000000000000000050000000000000005) rounds down to 0. Начиная с версии SQL Server 2016 (13.x) SQL Server 2016 (13.x) это ограничение отсутствует. This is no longer a restriction as of SQL Server 2016 (13.x) SQL Server 2016 (13.x) .

Оцените статью
Ремонт оргтехники
Добавить комментарий