Добавить в избранное   Сделать стартовой   Главная   E-mail   Форум   Мой блог 
   
Cертификации

Errors

ETL

FAQ (по темам)

GIS

Web

wiki

Администрирование

Безопасность

Книги
Oracle, ...

Новости

ОС

Программирование

Проектирование БД

Производительность

Скачать

Советы

Тестирование

Установка

FAQ - по базам данных
FAQ - по базам данных
Установка СУБД
Oracle
Sybase
MySQL
PostgreSQL
MS SQL Server
Interbase, Firebird
Другие DB
Администрирование
Oracle
MySQL
Sybase
PostgreSQL
MS SQL Server
Interbase, Firebird
IBM DB2
Другие DB
Проектирование БД
Статьи
ETL
Теория БД
ErWin
Designer 2000
PowerDesigner
Хранилища данных
CASE средства
OLAP
Бизнес - анализ (BI)
Производительность
Oracle
MSSQL
Interbase, Firebird
IBM DB2
MySQL
PostgreSQL
SYBASE
Безопасность БД
Oracle
MS SQL Server
Инъекция SQL
Программирование
Transact-SQL
PL/SQL
C++
XML
SQL
PostgreSQL
MDX
Java
VBA Excel
Книги по базам
Oracle
Заказ книг
ОС
Установка и настройка
UBUNTU
ОС
Установка и настройка
UBUNTU
FAQ
FAQ - по базам данных
Главная arrow SQL arrow Типы данных SQL

Типы данных SQL

Печать E-mail
Оглавление
Типы данных SQL
Страница 2
Страница 3

ANSI SQL стандарт распознает только текст и число, в то время как большинство коммерческих программ используют другие специальные типы, такие как DATЕ и TIME — фактически почти стандартные типы. Некоторые пакеты также поддерживают такие типы, как, например, MONEY и BINARY. Типы данных, распознаваемые с помощью ANSI, состоят из строк символов и различных типов чисел, которые могут классифицироваться как точные числа и приблизительные числа.

CHARACTER(length) определяет спецификацию строк символов, где length задает  длину строк заданного типа. Значения этого типа должны быть заключены в одиночные кавычки. Большинство реализаций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).

Типы данных SQL

Типы данных SQL

Типы данных SQL разделяются на три группы:

Типы данных SQL: строковые, с плавающей точкой (дробные числа) и целые числа, дата и время

  1. Типы данных 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 значений в ENUMENUM, то мы получим пустое значение.

    список. Если при вставке значения не будет присутствовать в списке

    Ввести возможные значения можно в таком формате: ENUM ( 'X', 'Y', 'Z')

    SET

    Тип данных SQL SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.

  2. Типы данных 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)

    Дробное число, хранящееся в виде строки.

  3. Типы данных 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 большой фиксированной длины (NLSNational 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.

  • DATETIME (тип данных SQL2003: TIMESTAMP)

    Хранит значение даты и времени в диапазоне с 01-01-1753 00:00:00 до 31-12-9999 23:59:59. Для хранения требуется 8 байт.

  • DECIMAL (p. s), DEC (p. s), NUMERIC (p, s) (тип данных SQL2003: DECIMAL (p, s), NUMERIC (p. s))

    Хранит десятичные дроби длиной до 38 цифр. Значения р и s определяют, соответственно, точность и масштаб. Масштаб по умолчанию равен 0. Занимаемое значением место определяется используемой точностью.

    При точности 1-9 используется 5 байт.

    При точности 10-19 используется 9 байт.

    При точности 20-28 используется 13 байт.

    При точности 29-39 используется 17 байт.

    См. тип INT, где указаны правила свойства IDENTITY, также применимые к типу DECIMAL.

  • DOUBLE PRECISION (тип данных SQL2003: отсутствует)

    Синоним FLOAT(53).

  • FLOAT[(n)] (тип данных SQL2003: FLOAT, FLOAT (n))

    Хранит значения с плавающей точкой в диапазоне от-1.79Е + 308 до 1.79Е + 308. Точность, определяемая параметром и, может изменяться в пределах от 1 до 53. Для хранения 7 цифр (n – от 1 до 24) требуется 4 байта. Значения, превышающие 7 цифр, занимают 8 байт.

  • IMAGE (тип данных SQL2003: BLOB)

    Хранит двоичное значение переменной длины до 2 147 483 647 байт. Этот тип данных часто используется для хранения графики, звука и файлов, таких, как документы MS Word и электронные таблицы MS Excel. Значениями типа IMAGE нельзя свободно манипулировать. Столбцы типа IMAGE и TEXT имеют множество ограничений на способы использования. См. описание типа TEXT, где приведен список команд и функций, которые применимы и к типу IMAGE.

  • INT [IDENTITY [(seed, increment)] (тип данных SQL2003: INTEGER)

    Хранит целые числа со знаком или без знака в диапазоне от -2 147 483 648 до 2 147 483 647. Занимает 4 байта. Все целочисленные типы данных, а также типы, хранящие десятичные дроби, поддерживают свойство IDENTITY, identity – это автоматически инкрементируемый идентификатор строки. Обращайтесь к разделу «Инструкция CREATE/ALTER TABLE» главы 3.

  • MONEY (тип данных SQL2003: отсутствует)

    Хранит денежные значения в диапазоне от -922337203685477.5808 до 922337203685477.5807. Значение занимает 8 байт.

  • NCHAR(n), NATIONAL CHAR(n), NATIONAL CHARACTER(n) (тип данных SQL2003: NATIONAL СНАRACTER(n))

    Хранит данные формата UNICODE фиксированной длины до 4000 символов. Для хранения требуется n*2 байт.

  • NTEXT, NATIONAL TEXT (тип данных SQL2003: NCLOB)

    Хранит фрагменты текста в формате UNICODE длиной до 1 073 741 823 символа. См. описание типа TEXT, где приведен список команд и функций, которые применимы и к типу NTEXT

  • NUMERIC(p, s) (тип данных SQL2003: DECIMAL (p, s))

    Синоним типа DECIMAL. См. описание типа INT, где приведены правила, относящиеся к свойству IDENTITY.

  • NVARCHAR(n), NATIONAL CHAR VARYING(n), NATIONAL CHARACTER VARYING(n) (тип данных SQL2003: NATIONAL CHARACTER VARYING(n))

    Хранит UNICODE-данные переменной длины до 4000 символов.

    Занимаемое место вычисляется как удвоенное значение длины всех символов, вставленных в поле (число символов * 2).

    В SQL Server системный параметр SET ANSI_PADDINGX для полей NCHAR и NVARCHAR всегда установлен (ON).

  • REAL, FLOAT(24) (тип данных SQL2003: REAL)

    Хранит значения с плавающей точкой в диапазоне -3.40Е+38 до 3.40Е+38. Зани¬мает 4 байта. Тип REAL функционально эквивалентен типу FLOAT(24).

  • ROWVERSION (тип данных SQL2003: отсутствует)

    Уникальное число, хранимое в базе данных, которое обновляется всякий раз, когда обновляется строка, В более ранних версиях называется TIMESTAMP.

  • SMALLDATETIME (тип данных SQL2003: отсутствует)

    Хранит дату и время в диапазоне от ‘01-01-1900 00:00′ до ‘06-06-2079 23:59′ с точностью до минуты. (Минуты округляются до меньшего значения, если значе-ние секунд 29.998 и менее, в противном случае они округляются до большего значения.) Значение занимает 4 байта.

  • SMALLINT (тип данных SQL2003: SMALLINT)

    Хранит целые числа со знаком или без знака в диапазоне от -32 768 до 32 767. Занимает 2 байта. См. описание типа INT, где приведены правила, относящиеся к свойству IDENTITY, которые также применимы и к этому типу.

  • SMALLMONEY (тип данных SQL2003: отсутствует)

    Хранит денежные значения в диапазоне от 214748.3648 до -214748.3647. Значе-ния занимают 4 байта.

  • SQLVARIANT (тип данных SQL2003: отсутствует)

    Хранит значения, относящиеся к другим поддерживаемым SQL Server типам данных, за исключением типов TEXT, NTEXT, ROWVERSION и других значений типа SQL VARIANT. Может хранить до 8016 байт данных, поддерживаются значения NULL и DEFAULT. Тип SQL VARIANT используется в столбцах, параметрах, переменных и возвращаемых функциями и хранимыми процедур, ми значениях.

  • TABLE (тип данных SQL2003: отсутствует)

    Специальный тип, хранящий получившийся в результате работы последнего про¬цесса набор данных. Используется исключительно для процедурной обработки и не может применяться в инструкциях CREATE TABLE. Этот тип данных умень¬шает необходимость создания временных таблиц во многих приложениях. Может уменьшить необходимость перекомпиляций процедур, ускоряя, таким образом, выполнение хранимых процедур и пользовательских функций.

  • TEXT (тип данных SQL2003: CLOB)

    Хранит очень большие фрагменты текста длиной до 2 147 483 647 символов. Значениями типа ТЕХТн IMAGE часто гораздо труднее манипулировать, чем, скажем, значениями типа VARCHAR. Например, нельзя создавать индекс по столбцу типа TEXT или IMAGE. Значениями типа TEXT можно манипулировать при помощи функций DATALENGTH, PATINDEX, SUBSTRING, TEXTPTR и ТЕХTVALID, а также команд READTEXT,SET TEXTSIZE, UPDATETEXT и WRITETEXT.

  • TIMESTAMP (тип данных SQL2003: TIMESTAMP)

    Хранит автоматически генерируемое двоичное число, обеспечивающее уникальность в текущей базе данных и, следовательно, отличающееся от типа данных TIMESTAMP стандарта ANSI. Тип TIMESTAMP занимает 8 байт. В настоящее время вместо TIMESTAMP для однозначной идентификации строк лучше применять значения типа ROWVERSION.


 
 
« Пред.   След. »
Взаимосвязанные статьи
     

Последние добавленные статьи
Поиск
Ссылки
Главная
Скачать
Курсы
Роль АБД (SYSDBA)
Карта сайта
Автостекла
Контакты
Войти на сайт
Популярные статьи
Online - тесты
1Z0-042
Rambler's Top100 МЕТА - Украина. Рейтинг сайтов хостинг от freehost.com.ua

Все права защищены.SYSDBA 2010 | Если у Вас есть хороший материал пришлите его нам.