Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Типы данных SQL

Содержание:

1.Введение

В настоящее время объемы информации все время возрастают. Наиболее удобным способом хранения информации, на основе опыта нескольких десятилетий, был признан способ хранения информации в виде баз данных.

База данных – это, прежде всего хранилище объектов данных, т.е. набора возможных понятий или событий, описываемых базой данных (БД), Вместе с этим основными функциями БД являются систематизация информации (знаний) и возможность взаимосвязи объектов между собой.

Любую структуру данных можно преобразовать в простую двумерную таблицу. Основная идея реляционного подхода состоит в том, чтобы представить произвольную структуру данных в виде простой двумерной таблицы или, как говорят, нормализовать структуру. И как следствие возникла необходимость использования универсального языка для доступа и управления данными в различных базах данных. Таким языком стал SQL.

Язык для взаимодействия с БД SQL появился в середине 70-х и был разработан в рамках проекта экспериментальной реляционной СУБД System R. Исходное название языка SEQUEL (Structered English Query Language) только частично отражает суть этого языка. Конечно, язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционной БД, но на самом деле уже являлся полным языком БД, содержащим помимо операторов формулирования запросов и манипулирования БД средства определения и манипулирования схемой БД. В языке отсутствовали средства синхронизации доступа к объектам БД со стороны параллельно выполняемых транзакций: с самого начала предполагалось, что необходимую синхронизацию неявно выполняет система управления базами данных СУБД [1, с.7].

После появления на рынке двух пионерских СУБД – SQL/DS (1981 год) и DB2 (1983 год) – он приобрел статус стандарта де-факто для профессиональных реляционных СУБД. В 1987 году SQL стал официальным международным стандартом языка баз данных, а в 1992 году вышла вторая версия этого стандарта.

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

При создании языка запросов нового поколения разработчики старались сделать его простым и легким в освоении инструментом для обращения к БД. В итоге SQL стал слабо структурированным языком, особенно по сравнению с такими языками, как С или Pascal, и в то же время достаточно мощным и относительно легким для изучения [1, с.9].

Одним из наиболее важных шагов на пути к признанию SQL на рынке стало появление стандартов на этот язык. Обычно при упоминании стандарта SQL имеют в виду официальный стандарт, утвержденный Американским институтом национальных стандартов (American National Standards Institute — ANSI) и Международной организацией по стандартам (International Standards Organization— ISO). Однако существуют и другие важные стандарты SQL, включая SQL, реализованный в системе DB2 компании IBM, и стандарт X/OPEN для SQL в среде UNIX. Этот стандарт, незначительно пересмотренный в 1989 году, обычно называют стандартом «SQL-89», или «SQLI».

Пробелы в стандарте SQL-89 и различия между существующими диалектами SQL достаточно значительны, и при переводе приложения под другую СУБД его всегда приходится модифицировать. Эти отличия в большинстве своем устранены в стандарте SQL2.

2.SQL

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

На рисунке 1 изображена схема работы SQL.

https://works.doklad.ru/images/47FngB6CgXk/m1f30b755.pngРисунок 1 - Схема работы SQL

Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится важная информация. Если пользователю необходимо прочитать данные из базы данных, он запрашивает их у SQL с помощью СУБД. SQL обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных: отсюда и название — структурированный язык запросов [2, с.103].

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

  1. Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами базы данных.
  2. Чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими.
  3. Обработка данных. SQL дает пользователю или приложению возможность изменять базу данных, т.е. добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в ней данные.
  4. Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.
  5. Совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу.
  6. Целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.

3.Типы данных SQL

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

Язык SQL делится на пять типов:

  1. Целочисленный тип данных SQL
  2. Вещественный тип данных SQL
  3. Типы данных даты и времени SQL
  4. Строковый тип данных SQL
  5. Строковый тип данных в кодировки Юникод.

3.1 Целочисленный тип данных SQL

Целое, целочисленный тип данных (англ. Integer), в информатике — один из простейших и самых распространённых типов данных в языках программирования. Служит для представления целых чисел.

Тип данных

От

До

bigint

-9,223,372,036,854,775,808

9,223,372,036,854,775,807

int

-2,147,483,648

2,147,483,647

smallint

-32,768

32,767

tinyint

0

255

bit

0

1

decimal

-10^38 +1

10^38 -1

numeric

-10^38 +1

10^38 -1

money

-922,337,203,685,477.5808

+922,337,203,685,477.5807

smallmoney

-214,748.3648

+214,748.3647

BigInt — новый числовой примитивный тип данных в JavaScript, позволяющий работать с числами произвольной точности.

Int-oбозначает целочисленный тип данных, в котором хранятся значения, размер и диапазон которых приведен в следующей таблице.

Smallint- 2-байтные целочисленные данные. Диапазон от -215 (-32768) до 215-1 (32767).

Tinyint- 1-байтовое целочисленное значение без знака. Диапазон от 0 до 255. В СУБД Firebird нет эквивалентного типа.

Bit- Целочисленные данные со значениями только 1 или 0. Обычно заменяются константами 'T' и 'F'. (В СУБД Firebird так же можно использовать тип SMALLINT со значениями 0 и 1. - прим. перев.)

Decimal- Числовые данные с фиксированной точностью. Диапазон от -1038-1 до 1038-1.

Numeric- В СУБД MS SQL decimal и numeric эквивалентны.

Money- Денежные данные. Диапазон от -263 (-922337203685477.5808) до 263-1 (+922337203685477.5807), точность до 1/10000 денежной единицы.

Smallmoney- Денежные данные. Диапазон от -214748.3648 до +214748.3647, точность 1/10000 денежной единицы. Диапазон СУБД Firebird больше при указанной замене.

3.2 Вещественный тип данных SQL

Вещественный тип данных SQL, как и целочисленный тип данных, целиком и полностью зависит от реализации СУБД.

Тип

от

до

float

-1.79E + 308

1.79E + 308

real

-3.40E + 38

3.40E + 38

Float (n) ] Где n — это количество битов, используемых для хранения мантиссы числа в формате float при экспоненциальном представлении.

Real- вещественные данные. Диапазон от -3.40E+308 до 3.40E+308

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

В SQL Server и дата и время хранятся в одном столбце, так что если с помощью функции GETDATE() запросить текущую дату, то при этом система сообщит и время. Для дат применяются два типа данных, datetime и smalldatetime. Тип данных smalldatetime охватывает период времени от 1 января 1900 года до 6 июня 2079 года и включает время с точностью до минуты. Такого диапазона достаточно для подавляющего большинства проектов. Тип данных datetime годен для использования до 31 декабря 9999 года (это следует учитывать при решении проблемы 10К года). Начало диапазона этого типа данных датируется 1 января 1753 года. Почему 1753? Это связано с переходом с юлианского на грегорианский календарь. Несмотря на то, что грегорианский календарь был предложен некоторое время назад, процесс его принятия продолжался в течение приблизительно 30 лет. На протяжении этого периода некоторые страны уже приняли грегорианский, а другие еще нет. Поэтому для того, чтобы дата воспринималась однозначно, надо знать географическое положение объекта. Кроме того, год начинался не 1 января, а 1 марта. Поэтому такая дата, как 15 января 1792 года, может интерпретироваться и как середина первого месяца 1492 года, и как середина 11-го месяца 1793 года. Создатели SQL Server решили не рисковать, и поэтому приняли решение не воспринимать даты, относящиеся к периоду времени до начала 1753 года. Следует отметить также, что тип данных datetime показывает тысячные доли секунды, хотя точность гарантируется только до 1/300 части секунды.

Тип данных SQL

от

до

datetime

Jan 1, 1753

Dec 31, 9999

smalldatetime

Jan 1, 1900

Jun 6, 2079

date

Сохраняет дату как June 30, 1991

time

Сохраняет время как 12:30 P.M.

Datetime- Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате - YYYY-MM-DD hh:mm:ss. В качестве разделителей могут выступать любые символы отличные от цифры.

Smalldatetime- Дата и время с 1 января 1900 года до 6 июня 2079 года, точность 1 минута. Тип данных Firebird имеет бОльшие диапазон и точность.

3.4 Строковый тип данных

Строковых типов данных в SQL может быть гораздо больше, смотрите спецификацию своей СУБД, чтобы узнать какой тип данных может быть использован для строковых значений.

Тип данных

Объем памяти

Максимальный размер

Описание

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

3.5 Строковый тип данных в кодировки Юникод

Да, некоторые СУБД выделяют строковый тип данных в кодировке юникод, поскольку в строках с кодировкой юникод на запись одного символа тратится, как минимум, 8 байт, поэтому мы и выделяем строковый тип данных в SQL с кодировкой юникод.

Тип данных SQL

Описание

nchar

Максимальная длина 4000 символов (все значения в столбце имеют фиксированный размер, указанный при объявлении столбца). Обратите внимание: единица измерения SQL типа данных nchar - символ.

nvarchar

Максимальная длина 4000 символов (все значения в столбце имеют различный размер в зависимости от количества символов, но не более того размера, что был указан при объявлении столбца). Обратите внимание: единица измерения SQL типа данных nvarchar - символ.

nvarchar (max)

Максимальная длина 231 символ. Обратите внимание: единица измерения SQL типа данных nvarchar (max) — символ.

ntext

Максимальная длина 1,073,741,823 символов. Переменная длина. Обратите внимание: единица измерения SQL типа данных ntext — символ.

3.6 Бинарный тип данных в SQL

Бинарный тип данных в SQL используется для хранения информации в бинарном виде (в виде последовательности байт).

Тип данных SQL

Описание

binary

Максимальная длина 8,000 байт (все значения в столбце имеют фиксированный размер, указанный при объявлении столбца). Обратите внимание: единицы измерения типа данных binary — байты.

varbinary

Максимальная длина 8,000 байт (все значения в столбце имеют различный размер в зависимости от количества символов, но не более того размера, что был указан при объявлении столбца). Обратите внимание: единицы измерения типа данных varbinary — байты.

varbinary (max)

Максимальная длина 231 байт. Обратите внимание: единицы измерения типа данных varbinary (max) — байты.

image

Максимальная длина 2,147,483,647 байт (все значения в столбце имеют различный размер в зависимости от количества символов, но не более того размера, что был указан при объявлении столбца). Обратите внимание: единицы измерения типа данных image — байты.

4.Заключение

SQL по праву считается полнофункциональным мощным сервером баз данных, выдающийся тем, что имеет высокую производительность, лёгкость понимания и удобный интерфейс. Под управлением SQL в состоянии работать базы данных в широком спектре от уровня среднего звена отдельной организации до распределенных баз масштаба корпорации. Доступ к SQL Server предусмотрен из большого числа средств разработки клиентских приложений, настольных баз данных и офисных продуктов. Изначально SQL адаптирован под взаимодействие с другими серверами BackOffice, что благоприятствует прямо охватить решение комплексных задач хранения и обработки информации, электронного документооборота, создания интернет-приложений и т.д. SQL используется как в стандартных клиент-серверных платформах, так и в многоуровневых средах. Microsoft Transaction Server является одним из главных инструментов при создании распределенных приложений.

В последних стандартах языка SQL содержатся:

  • генераторы типов массивов и мультимножеств, элементами которых могут быть значения предопределенных типов, типов коллекций, анонимных строчных типов строк и типов, определенных пользователями;
  • генератор анонимных строчных типов, в которых типом элемента строки может быть любой предопределенный тип, тип коллекции, анонимный строчный тип и тип, определенный пользователями;
  • определяемый пользователем структурный тип, в котором типом элемента структуры может быть любой предопределенный тип, тип коллекции, анонимный строчный тип и тип, определенный пользователями; для определяемых пользователем структурных и индивидуальных типов можно определять пользовательские операции.
  • сформированный набор готовых типов, включая ряд параметризуемых типов;

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

Быстро растущая популярность SQL считается одним из основных направлений в современной компьютерной промышленности. За несколько лент SQL остался единственным языком баз данных. На данный момент SQL поддерживают более ста СУБД, действующих как на персональных компьютерах, так и на крупных ЭВМ. Был разработан, а затем дополнен официальный международный стандарт на SQL. Язык SQL имеет большое значение в архитектуре систем управления базами данных, реализуемых всеми основными разработчиками программных продуктов, и является стратегическим курсом разработок компании Microsoft в сфере баз данных. Появившись в результате исполнения второстепенного исследовательского проекта компании IBM, на сегодняшний день SQL широко известен в качестве влиятельного рыночного фактора.

Все основные разработчики СУБД применяют SQL, и никакая новая СУБД, не поддерживающая SQL, не в праве рассчитывать на успех. Реляционную базу данных и приложения, работающие на ней, возможно перенести с одной СУБД на другую с минимумом изменений и переподготовкой пользователей. Программные средства, находящиеся в составе СУБД для персональных компьютеров, такие как генераторы отчетов, генераторы приложений, взаимодействуют с реляционными базами данных многих типов. Исходя из этого, SQL гарантирует независимость от конкретных СУБД, что является одной из основных причин его популярности.

5.Список использованных источников
 

  1. Виейра Р. в Программирование баз данных Microsoft SQL Server 2005. Базовый курс. - М.: "Диалектика", 2007, 832 с. - ISBN 0-7645-8433-2
  2. Гандерлой М. Освоение Microsoft SQL Server 2005 Mastering Microsoft SQL Server 2005.М. Гандерлой, Д. Джорден, Д. Чанц - М.: "Диалектика", 2007, 1104 с. - ISBN 0-7821-4380-6
  • Грофф Д.Р. SQL. Полное руководство. Д.Р. Грофф, П.Н. Вайнберг - BHV Ирина, 2001, 800 с.
  • Дейт К.Д. Введение в системы баз данных: Пер. с англ. К.; - СПб.: Издательский дом "Вильямс", 2000, 848 с.
  • Коннолли Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика.Т. Конноли, К. Бегг, А. Страчан. - Издательский дом "Вильямс", 2000, 1120 с.
  • Корнеев В.В. Интеллектуальная обработка информации.2-е изд.В. В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. - М.: Изд. Молгачева С.В., 2001, 494 с.
  • Самоучитель по языку SQL (SQL DML) [Электронный ресурс] - Режим доступа #"justify">.Сервер Oracle7. Краткий справочник по языку SQL. Протвино. АО РДТеХ.80 с. 1994.
  • Уолтерс Р.Э. SQL Server 2008: ускоренный курс для профессионалов Accelerated SQL Server 2008.Р.Э. Уолтерс, М. Коулс - М.: "Вильямс", 2008, 768 с. - ISBN 978-5-8459-1481-1
  • Фаронов В.В. Основы программирования в SQL. - М.: Издатель Молгачева С.В., 2002, 329 с.