SQL - SQL

SQL (язык структурированных запросов)
Парадигма Декларативная
Семья Язык запроса
Разработано Дональд Д. Чемберлин
Раймонд Ф. Бойс
Разработчик ISO / IEC
Впервые появился 1974 ; 47 лет назад ( 1974 )
Стабильный выпуск
SQL: 2016 г. / декабрь 2016 г . ; 4 года назад ( 2016-12 )
Печатная дисциплина Статичный , сильный
Операционные системы Кроссплатформенность
Веб-сайт www .iso .org / standard / 63555 .html
Основные реализации
Много
Диалекты
Под влиянием
Лог данных
Под влиянием
CQL , LINQ , SPARQL , SOQL, PowerShell , JPQL , jOOQ , N1QL
SQL (формат файла)
Расширение имени файла
.sql
Тип интернет-СМИ
приложение / sql
Разработано ISO / IEC
Первый выпуск 1986 г. ( 1986 )
Тип формата База данных
Стандарт ISO / IEC 9075
Открытый формат ? да
Веб-сайт www .iso .org / standard / 63555 .html

SQL ( / ˌ ɛ s ˌ к Ju ɛ л / ( слушать )Об этом звуке SQL , / s я к ж əl / «продолжение», Structured Query Language ) является языком предметно-ориентированный используется для программирования и предназначена для управления данными , проводимых в система управления реляционными базами данных (СУБД) или для потоковой обработки в системе управления реляционными потоками данных (RDSMS). Это особенно полезно при обработке структурированных данных , т. Е. Данных, включающих отношения между сущностями и переменными.

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

Первоначально основанный на реляционной алгебре и реляционном исчислении кортежей , SQL состоит из множества типов операторов, которые можно неформально классифицировать как подъязыки , обычно: язык запросов данных (DQL), язык определения данных (DDL), язык управления данными (DCL). ) и язык обработки данных (DML). Сфера применения SQL включает запрос данных, манипулирование данными (вставка, обновление и удаление), определение данных ( создание и изменение схемы ) и управление доступом к данным. Хотя SQL по сути является декларативным языком ( 4GL ), он также включает процедурные элементы.

SQL был один из первых коммерческих языков для использования Кодд «s реляционная модели . Эта модель была описана в его влиятельной статье 1970 года «Реляционная модель данных для больших общих банков данных». Несмотря на то, что он не полностью придерживался реляционной модели, описанной Коддом , он стал наиболее широко используемым языком баз данных.

SQL стал стандартом в Американском национальном институте стандартов (ANSI) в 1986 году, и в Международных организациях по стандартизации (ИСО) в 1987 г. С тех пор стандарт был пересмотрен с целью включения более широкий набора функций. Несмотря на существование стандартов, большая часть кода SQL требует по крайней мере некоторых изменений перед переносом в другие системы баз данных.

История

SQL был первоначально разработан в IBM по Дональд Д. Чемберлин и Рэймонд Бойс , узнав о реляционной модели от Кодд в начале 1970 - х годов. Эта версия, первоначально называвшаяся SEQUEL (Structured English Query Language), была разработана для управления и извлечения данных, хранящихся в исходной квазиреляционной системе управления базами данных IBM, System R , которую группа из исследовательской лаборатории IBM в Сан-Хосе разработала в 1970-х годах.

Первой попыткой Чемберлина и Бойса создать язык реляционных баз данных был SQUARE (определение запросов в реляционной среде), но его было трудно использовать из-за нотации подстрочного / надстрочного индекса. После перехода в исследовательскую лабораторию Сан-Хосе в 1973 году они начали работу над продолжением SQUARE. Имя SEQUEL было изменено на SQL (опуская гласные) , потому что «ПРОДОЛЖЕНИЕ» был торговой маркой в британской Hawker Siddeley компании Dynamics Engineering Limited. Метка Structured Query Language позже стала аббревиатурой от SQL.

После тестирования SQL на тестовых сайтах заказчиков для определения полезности и практичности системы IBM начала разрабатывать коммерческие продукты на основе своего прототипа System R, включая System / 38 , SQL / DS и DB2 , которые были коммерчески доступны в 1979, 1981 годах. и 1983, соответственно.

В конце 1970 - х годов, Relational Software, Inc. (теперь Oracle Corporation ) увидел потенциал концепций , описанных Коддом, Чемберлин и Бойс и разработали свои собственные SQL на основе СУБД с устремлениями его продажи в ВМС США , Центрального разведывательного управления Agency и другие правительственные агентства США . В июне 1979 года компания Relational Software представила первую коммерчески доступную реализацию SQL, Oracle V2 (Version2) для компьютеров VAX .

К 1986 году группы стандартов ANSI и ISO официально приняли стандартное определение языка «Database Language SQL». Новые версии стандарта были опубликованы в 1989, 1992, 1996, 1999, 2003, 2006, 2008, 2011, а в последнее время в 2016 году.

Синтаксис

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

Язык SQL подразделяется на несколько языковых элементов, в том числе:

  • Предложения , которые являются составными компонентами утверждений и запросов. (В некоторых случаях это необязательно.)
  • Выражения , которые могут создавать либо скалярные значения, либо таблицы, состоящие из столбцов и строк данных.
  • Предикаты , которые определяют условия, которые могут быть оценены с помощью трехзначной логики SQL (3VL) (истина / ложь / неизвестно) или логических значений истинности и используются для ограничения эффектов операторов и запросов или для изменения потока программы.
  • Запросы , которые извлекают данные на основе определенных критериев. Это важный элемент SQL .
  • Операторы , которые могут иметь постоянное влияние на схемы и данные или могут управлять транзакциями , потоком программы, соединениями, сеансами или диагностикой.
    • Операторы SQL также включают терминатор оператора точка с запятой (";"). Хотя он не требуется на каждой платформе, он определен как стандартная часть грамматики SQL.
  • Незначительные пробелы обычно игнорируются в операторах и запросах SQL, что упрощает форматирование кода SQL для удобства чтения.

Процедурные расширения

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

Источник Сокращенное название Полное имя
Стандарт ANSI / ISO SQL / PSM Модули SQL / Persistent Stored
Interbase / Firebird PSQL Процедурный SQL
IBM DB2 SQL PL Процедурный язык SQL (реализует SQL / PSM)
IBM Informix SPL Сохраненный процедурный язык
IBM Netezza NZPLSQL (на основе Postgres PL / pgSQL)
Изобретательный PSQL Invantive Procedural SQL (реализует SQL / PSM и PL / SQL )
MariaDB SQL / PSM , PL / SQL SQL / Persistent Stored Module (реализует SQL / PSM), процедурный язык / SQL (на основе Ada )
Microsoft / Sybase T-SQL Transact-SQL
Mimer SQL SQL / PSM SQL / Persistent Stored Module (реализует SQL / PSM)
MySQL SQL / PSM SQL / Persistent Stored Module (реализует SQL / PSM)
MonetDB SQL / PSM SQL / Persistent Stored Module (реализует SQL / PSM)
NuoDB SSP Хранимые процедуры Старки
Oracle PL / SQL Процедурный язык / SQL (на основе Ada )
PostgreSQL PL / pgSQL Процедурный язык / язык структурированных запросов PostgreSQL (на основе сокращенного PL / SQL )
SAP R / 3 ABAP Расширенное программирование бизнес-приложений
SAP HANA SQLScript SQLScript
Sybase Watcom-SQL SQL Anywhere Watcom-SQL Диалект
Терадата SPL Сохраненный процедурный язык

Помимо стандартных расширений SQL / PSM и проприетарных расширений SQL, на многих платформах SQL доступно процедурное и объектно-ориентированное программирование через интеграцию СУБД с другими языками. Стандарт SQL определяет расширения SQL / JRT (процедуры и типы SQL для языка программирования Java) для поддержки кода Java в базах данных SQL. Microsoft SQL Server 2005 использует SQLCLR (общеязыковая среда выполнения SQL Server) для размещения управляемых сборок .NET в базе данных , в то время как предыдущие версии SQL Server были ограничены неуправляемыми расширенными хранимыми процедурами, в основном написанными на C. PostgreSQL позволяет пользователям писать функции в широком диапазоне. множество языков, включая Perl , Python , Tcl , JavaScript (PL / V8) и C.

Совместимость и стандартизация

Обзор

Реализации SQL несовместимы между поставщиками и не обязательно полностью соответствуют стандартам. В частности, синтаксис даты и времени, конкатенация строк, NULLs и чувствительность к регистру при сравнении варьируются от поставщика к поставщику. Конкретными исключениями являются PostgreSQL и Mimer SQL, которые стремятся к соблюдению стандартов, хотя PostgreSQL не придерживается стандарта во всех случаях. Например, сворачивание имен без кавычек в нижний регистр в PostgreSQL несовместимо со стандартом SQL, согласно которому имена без кавычек следует переводить в верхний регистр. Таким образом, Fooдолжно быть эквивалентно FOOне в fooсоответствии со стандартом.

Популярные реализации SQL обычно не поддерживают базовые функции стандартного SQL, такие как типы данных DATEили TIME. Наиболее очевидными из таких примеров и, кстати, наиболее популярными коммерческими и проприетарными СУБД SQL являются Oracle (которая DATEведет себя как тип DATETIMEи не имеет TIMEтипа) и MS SQL Server (до версии 2008 года). В результате код SQL редко может быть перенесен между системами баз данных без изменений.

Причины несовместимости

Несколько причин отсутствия переносимости между системами баз данных включают:

  • Сложность и размер стандарта SQL означает, что большинство разработчиков не поддерживают весь стандарт.
  • Стандарт не определяет поведение базы данных в нескольких важных областях (например, индексы , файловое хранилище ...), оставляя реализациям решать, как себя вести.
  • Стандарт SQL точно определяет синтаксис, который должна реализовать соответствующая система баз данных. Однако стандартная спецификация семантики языковых конструкций менее четко определена, что приводит к двусмысленности.
  • Многие поставщики баз данных имеют большие существующие клиентские базы; там, где более новая версия стандарта SQL конфликтует с предыдущим поведением базы данных поставщика, поставщик может не желать нарушать обратную совместимость .
  • У поставщиков мало коммерческих стимулов, чтобы упростить смену поставщиков баз данных (см. Привязку к поставщику ).
  • Пользователи, оценивающие программное обеспечение баз данных, обычно ставят другие факторы, такие как производительность, выше в свои приоритеты, чем соответствие стандартам.

История стандартизации

SQL был принят в качестве стандарта ANSI в 1986 году как SQL-86 и ISO в 1987 году. Он поддерживается ISO / IEC JTC 1, Информационные технологии, Подкомитетом SC 32, Управление данными и обмен .

До 1996 года программа стандартов управления данными Национального института стандартов и технологий (NIST) сертифицировала соответствие СУБД SQL стандарту SQL. Продавцы теперь самостоятельно подтверждают соответствие своей продукции.

Оригинальный стандарт объявил , что официальное произношение «SQL» была аббревиатура : / ˌ ɛ с ˌ к Ju ɛ л / ( «ESS кий эль»). Несмотря на это , многие говорящие на английском языке профессионалов базы данных ( в том числе сам Дональд Чемберлин) используют аббревиатуру -like произношению / s я к ж əl / ( «продолжение»), зеркальное имя развития пререлиз средства языка, «SEQUEL».
Стандарт SQL претерпел ряд изменений:

Год Имя Псевдоним Комментарии
1986 г. SQL-86 SQL-87 Впервые формализована ANSI
1989 г. SQL-89 FIPS 127-1 Незначительная редакция, добавляющая ограничения целостности, принята как FIPS 127-1.
1992 г. SQL-92 SQL2, FIPS 127-2 Основная версия (ISO 9075), начальный уровень SQL-92 принят как FIPS 127-2
1999 г. SQL: 1999 SQL3 Добавлено сопоставление регулярных выражений, рекурсивные запросы (например, транзитивное закрытие ), триггеры , поддержка процедурных операторов и операторов управления потоком, нескалярные типы (массивы) и некоторые объектно-ориентированные функции (например, структурированные типы ), поддержка встраивания SQL в Java ( SQL / OLB ) и наоборот ( SQL / JRT )
2003 г. SQL: 2003 Введены функции, связанные с XML ( SQL / XML ), оконные функции , стандартизованные последовательности и столбцы с автоматически сгенерированными значениями (включая столбцы идентификаторов)
2006 г. SQL: 2006 ISO / IEC 9075-14: 2006 определяет способы использования SQL с XML. Он определяет способы импорта и хранения данных XML в базе данных SQL, манипулирования ими в базе данных и публикации как XML, так и обычных данных SQL в форме XML. Кроме того, он позволяет приложениям интегрировать запросы в свой код SQL с помощью XQuery , языка запросов XML, опубликованного Консорциумом World Wide Web ( W3C ), для одновременного доступа к обычным данным SQL и XML-документам.
2008 г. SQL: 2008 Легализует определения ORDER BY за пределами курсора. Добавляет триггеры INSTEAD OF, оператор TRUNCATE, предложение FETCH.
2011 г. SQL: 2011 Добавляет временные данные (PERIOD FOR) (дополнительная информация: Temporal database # History ). Улучшения оконных функций и предложения FETCH.
2016 г. SQL: 2016 Добавляет сопоставление шаблонов строк, полиморфные табличные функции, JSON
2019 г. SQL: 2019 Добавляет Часть 15, многомерные массивы (тип и операторы MDarray)

Текущий стандарт

Стандарт обычно обозначается шаблоном: ISO / IEC 9075-n: yyyy Part n: title , или, как сокращение, ISO / IEC 9075 .

ISO / IEC 9075 дополняется ISO / IEC 13249: SQL Multimedia and Application Packages (SQL / MM), который определяет интерфейсы и пакеты на основе SQL для широко распространенных приложений, таких как видео, аудио и пространственные данные . Заинтересованные стороны могут приобрести документы стандартов SQL в ISO, IEC или ANSI. Черновик SQL: 2008 находится в свободном доступе в виде zip- архива.

Анатомия стандарта SQL

Стандарт SQL разделен на 10 частей, но с пробелами в нумерации из-за изъятия устаревших частей.

  • ISO / IEC 9075-1: 2016, часть 1: Framework (SQL / Framework). Он предоставляет логические концепции.
  • ISO / IEC 9075-2: 2016 Часть 2: Foundation (SQL / Foundation). Он содержит самые центральные элементы языка и состоит из двух обязательных и дополнительных функций.
  • ISO / IEC 9075-3: 2016 Часть 3: Интерфейс уровня вызовов ( SQL / CLI ). Он определяет компоненты интерфейса (структуры, процедуры, привязки переменных), которые могут использоваться для выполнения операторов SQL из приложений, написанных на Ada, C соответственно C ++, COBOL, Fortran, MUMPS, Pascal или PL / I. (Для Java см. Часть 10.) SQL / CLI определяется таким образом, что операторы SQL и вызовы процедур SQL / CLI обрабатываются отдельно от исходного кода вызывающего приложения. Open Database Connectivity - это хорошо известная надмножество SQL / CLI. Эта часть стандарта состоит исключительно из обязательных функций.
  • ISO / IEC 9075-4: 2016 Часть 4: Постоянные хранимые модули ( SQL / PSM ). Он стандартизирует процедурные расширения для SQL, включая поток управления, обработку условий, сигналы условий оператора и отмены, курсоры и локальные переменные, а также присвоение выражений переменным и параметрам. Кроме того, SQL / PSM формализует объявление и обслуживание постоянных языковых подпрограмм (например, «хранимых процедур»). Эта часть стандарта состоит исключительно из дополнительных функций.
  • ISO / IEC 9075-9: 2016 Часть 9: Управление внешними данными ( SQL / MED ). Он предоставляет расширения для SQL, которые определяют оболочки сторонних данных и типы каналов данных, позволяющие SQL управлять внешними данными. Внешние данные - это данные, которые доступны, но не управляются СУБД на основе SQL. Эта часть стандарта состоит исключительно из дополнительных функций.
  • ISO / IEC 9075-10: 2016 Часть 10: Привязки объектного языка ( SQL / OLB ). Он определяет синтаксис и семантику SQLJ , который является SQL, встроенным в Java (см. Также часть 3). Стандарт также описывает механизмы, обеспечивающие двоичную переносимость приложений SQLJ, и определяет различные пакеты Java и содержащиеся в них классы. Эта часть стандарта состоит исключительно из дополнительных функций. В отличие от SQL / OLB JDBC определяет API и не является частью стандарта SQL.
  • ISO / IEC 9075-11: 2016 Часть 11: Схемы информации и определений ( SQL / Schemata ). Он определяет информационную схему и схему определения, предоставляя общий набор инструментов для самоописания баз данных и объектов SQL. Эти инструменты включают идентификатор объекта SQL, ограничения структуры и целостности, спецификации безопасности и авторизации, функции и пакеты ISO / IEC 9075, поддержку функций, предоставляемых реализациями СУБД на основе SQL, информацию о реализации СУБД на основе SQL и элементы определения размеров, а также значения, поддерживаемые реализациями СУБД. Эта часть стандарта содержит как обязательные, так и дополнительные функции.
  • ISO / IEC 9075-13: 2016 Часть 13: Подпрограммы и типы SQL с использованием языка программирования Java TM ( SQL / JRT ). Он определяет возможность вызова статических методов Java как подпрограмм из приложений SQL («Java-in-the-database»). Это также требует возможности использовать классы Java в качестве структурированных пользовательских типов SQL. Эта часть стандарта состоит исключительно из дополнительных функций.
  • ISO / IEC 9075-14: 2016, часть 14: Спецификации, связанные с XML ( SQL / XML ). Он определяет расширения на основе SQL для использования XML в сочетании с SQL. Представлен тип данных XML , а также несколько процедур, функций и сопоставлений типов данных XML-SQL для поддержки обработки и хранения XML в базе данных SQL. Эта часть стандарта состоит исключительно из дополнительных функций.
  • ISO / IEC 9075-15: 2019 Часть 15: Многомерные массивы (SQL / MDA). Он определяет тип многомерного массива (MDarray) для SQL, а также операции с MDarrays, срезами MDarray, ячейками MDarray и связанными функциями. Эта часть стандарта состоит исключительно из дополнительных функций.

Расширения стандарта ISO / IEC

ISO / IEC 9075 дополняется мультимедийными и прикладными пакетами ISO / IEC 13249 SQL . Этот тесно связанный, но отдельный стандарт разработан одним и тем же комитетом. Он определяет интерфейсы и пакеты на основе SQL. Целью является унифицированный доступ к типичным приложениям баз данных, таким как текст, изображения, интеллектуальный анализ данных или пространственные данные .

  • ISO / IEC 13249-1: 2016 Часть 1: Структура
  • ISO / IEC 13249-2: 2003 Часть 2: Полнотекстовый
  • ISO / IEC 13249-3: 2016 Часть 3: Пространственные
  • ISO / IEC 13249-5: 2003 Часть 5: Неподвижное изображение
  • ISO / IEC 13249-6: 2006 Часть 6: Интеллектуальный анализ данных
  • ISO / IEC 13249-7: 2013 Часть 7: История
  • ISO / IEC 13249-8: xxxx Часть 8: MRA доступа к реестру метаданных (в процессе)

Технические отчеты

ISO / IEC 9075 также сопровождается серией технических отчетов, опубликованных как ISO / IEC TR 19075. Эти технические отчеты объясняют обоснование и использование некоторых функций SQL, приводя примеры, где это уместно. Технические отчеты не являются нормативными; если есть какие-либо расхождения с 9075, текст в 9075 остается в силе. В настоящее время доступны 19075 технических отчетов:

  • ISO / IEC TR 19075-1: 2011 Часть 1: Поддержка регулярных выражений XQuery в SQL
  • ISO / IEC TR 19075-2: 2015 Часть 2: Поддержка SQL для информации, связанной со временем
  • ISO / IEC TR 19075-3: 2015 Часть 3: SQL, встроенный в программы с использованием языка программирования Java
  • ISO / IEC TR 19075-4: 2015 Часть 4: SQL с подпрограммами и типами с использованием языка программирования Java
  • ISO / IEC TR 19075-5: 2016 Часть 5: Распознавание строк в SQL
  • ISO / IEC TR 19075-6: 2017 Часть 6: Поддержка SQL для нотации объектов JavaScript (JSON)
  • ISO / IEC TR 19075-7: 2017 Часть 7: Полиморфные табличные функции в SQL
  • ISO / IEC TR 19075-8: 2019 Часть 8: Многомерные массивы (SQL / MDA)
  • ISO / IEC TR 19075-9: 2020 Часть 9: Возможности онлайн-аналитической обработки (OLAP)

Альтернативы

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

Распределенная обработка SQL

Архитектура распределенной реляционной базы данных (DRDA) была разработана рабочей группой IBM с 1988 по 1994 год. DRDA позволяет реляционным базам данных, подключенным к сети, взаимодействовать друг с другом для выполнения запросов SQL.

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

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

Критика

Дизайн

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

Ортогональность и полнота

Ранние спецификации не поддерживали основные функции, такие как первичные ключи. Наборы результатов не могут быть названы, а подзапросы не определены. Они были добавлены в 1992 году.

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

Нулевой

Концепция Null является предметом некоторых дискуссий . Маркер Null указывает на отсутствие значения и отличается от значения 0 для целочисленного столбца или пустой строки для текстового столбца. Концепция Nulls обеспечивает 3- значную логику в SQL , которая является конкретной реализацией общей 3-значной логики .

Дубликаты

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

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

Несоответствие импеданса

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

Типы данных SQL

Стандарт SQL определяет три типа типов данных :

  • предопределенные типы данных
  • построенные типы
  • определяемые пользователем типы.

Сконструированные типы - это ARRAY, MULTISET, REF (erence) или ROW. Определяемые пользователем типы сопоставимы с классами объектно-ориентированного языка со своими собственными конструкторами, наблюдателями, мутаторами, методами, наследованием, перегрузкой, перезаписью, интерфейсами и т. Д. Предопределенные типы данных внутренне поддерживаются реализацией.

Предопределенные типы данных

  • Типы персонажей
  • Персонаж (СИМВОЛ)
  • Изменение характера (VARCHAR)
  • Большой объект символа (CLOB)
  • Типы национальных характеров
  • Национальный характер (NCHAR)
  • Изменяющийся национальный характер (NCHAR VARYING)
  • Большой объект национального характера (NCLOB)
  • Бинарные типы
  • Двоичный (BINARY)
  • Двоичное варьирование (VARBINARY)
  • Большой двоичный объект (BLOB)
  • Числовые типы
  • Точные числовые типы (NUMERIC, DECIMAL, SMALLINT, INTEGER, BIGINT)
  • Приблизительные числовые типы (FLOAT, REAL, DOUBLE PRECISION)
  • Десятичный тип с плавающей запятой (DECFLOAT)
  • Типы даты и времени (DATE, TIME, TIMESTAMP)
  • Тип интервала (ИНТЕРВАЛ)
  • Логический
  • XML
  • JSON

Смотрите также

Примечания

использованная литература

Источники

Документы стандартов SQL

Общедоступные стандарты и технические отчеты ITTF

ISO / IEC Информационные технологии Целевая группа публикует общедоступные стандарты , включая SQL. Здесь публикуются Технические исправления (исправления) и Технические отчеты (документы для обсуждения).

SQL - Часть 1: Фреймворк (SQL / Framework)

Проекты документов

Официальные стандарты SQL доступны в ISO и ANSI за дополнительную плату. Для информативного использования, в отличие от строгого соблюдения стандартов, часто бывает достаточно поздних черновиков.

внешние ссылки