Jump to content

SQL

SQL (язык структурированных запросов)
Парадигма Декларативный
Семья Язык запросов
Разработано Дональд Д. Чемберлин
Раймонд Ф. Бойс
Разработчик ISO/IEC JTC 1 (Объединенный технический комитет 1) / SC 32 (Подкомитет 32) / WG 3 (Рабочая группа 3)
Впервые появился 1974 год ; 50 лет назад ( 1974 )
Стабильная версия
SQL:2023 / июнь 2023 г .; 1 год назад ( 2023-06 )
Дисциплина набора текста Статический , сильный
ТЫ Кросс-платформенный
Веб-сайт www .iso .org /стандартный /76583 .html
Основные реализации
Много
Диалекты
Под влиянием
Ученый-компьютерщик
Под влиянием
CQL , LINQ , SPARQL , SOQL, PowerShell , [1] JPQL , jOOQ , N1QL , GQL
SQL (формат файла)
Расширение имени файла
.sql
Тип интернет-СМИ
приложение/sql [2] [3]
Разработано ИСО / МЭК
Первоначальный выпуск 1986  ( 1986 )
Тип формата База данных
Стандартный ИСО/МЭК 9075
Открытый формат ? Да
Веб-сайт www .iso .org /стандартный /76583 .html

Язык структурированных запросов ( SQL ) ( произносится как S-QL ; исторически «продолжение») [4] [5] — это предметно-ориентированный язык , используемый для управления данными, особенно в системе управления реляционными базами данных (СУБД). Это особенно полезно при работе со структурированными данными , т. е. данными, включающими отношения между сущностями и переменными.

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

Первоначально основанный на реляционной алгебре и кортежном реляционном исчислении , SQL состоит из множества типов операторов. [6] которые можно неофициально классифицировать как подъязыки , обычно: язык запросов данных (DQL), язык определения данных (DDL), язык управления данными (DCL) и язык манипулирования данными (DML). [7]

Область применения SQL включает запрос данных, манипулирование данными (вставка, обновление и удаление), определение данных ( создание и изменение схемы ) и управление доступом к данным. Хотя SQL по сути является декларативным языком ( 4GL ), он также включает в себя процедурные элементы.

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

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

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

Первой попыткой Чемберлина и Бойса создать язык реляционных баз данных был SQUARE (определение запросов в реляционной среде), но его было трудно использовать из-за нотации индексов и надстрочных индексов. Переехав в Исследовательскую лабораторию Сан-Хосе в 1973 году, они начали работу над продолжением SQUARE. [12] Оригинальное название SEQUEL, которое широко рассматривается как игра слов на QUEL , языке запросов Ingres . [14] позже был изменен на SQL (отбросив гласные), поскольку «SEQUEL» было товарным знаком британской компании Hawker Siddeley Dynamics Engineering Limited. [15] Метка SQL позже стала аббревиатурой языка структурированных запросов.

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

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

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

Синтаксис

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

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

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

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

[ редактировать ]

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

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

Функциональная совместимость и стандартизация

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

[ редактировать ]

SQL был принят ANSI в качестве стандарта в 1986 году как SQL-86. [28] и ISO в 1987 году. [11] Его поддерживает ОТК 1 ИСО/МЭК, Информационные технологии, Подкомитет ПК 32, Управление данными и обмен ими .

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

Первоначальный стандарт декларировал, что официальное произношение слова «SQL» представляет собой инициализм : / ˌ ɛ s ˌ k juː ˈ ɛ l / ( «ess cue el»). [9] Несмотря на это, многие англоязычные специалисты по базам данных (включая самого Дональда Чемберлина) [30] ) используйте аббревиатурное произношение / ˈ s k w əl / («продолжение»), [31] отражает название предварительной версии языка, «SEQUEL». [13] [15] [30]
Стандарт SQL претерпел ряд изменений:

Год Имя Псевдоним Комментарии
1986 SQL-86 SQL-87 Впервые формализовано ANSI
1989 SQL-89 ФИПС 127-1 Незначительная версия, которая добавила ограничения целостности, принятые как FIPS 127-1.
1992 SQL-92 SQL2, ФИПС 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, опубликованного Консорциумом Всемирной паутины ( W3C ), для одновременного доступа к обычным данным SQL и документам XML. [32]
2008 SQL:2008 Легализует ORDER BY вне определений курсора. Добавляет триггеры INSTEAD OF, оператор TRUNCATE, [33] предложение FETCH
2011 SQL:2011 Добавляет временные данные (ПЕРИОД ДЛЯ) [34] (дополнительную информацию можно найти в Темпоральной базе данных#История ). Улучшения для оконных функций и предложения FETCH. [35]
2016 SQL:2016 Добавляет сопоставление шаблонов строк, функции полиморфных таблиц, операции с данными JSON, хранящимися в полях строк символов.
2019 SQL:2019–2020 Добавляет часть 15, многомерные массивы (тип и операторы MDarray).
2023 SQL:2023 Добавляет тип данных JSON (SQL/Foundation); Добавляет часть 16, Запросы графа свойств (SQL/PGQ).

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

[ редактировать ]

Стандарт обычно обозначается шаблоном: ISO/IEC 9075-n:yyyy Part n: title или, сокращенно, ISO/IEC 9075 . Заинтересованные стороны могут приобрести документы по стандартам в ISO. [36] МЭК или ANSI. Некоторые старые проекты находятся в свободном доступе. [37] [38] [39]

ISO/IEC 9075 дополняется ISO/IEC 13249: Пакеты мультимедиа и приложений SQL и некоторыми техническими отчетами .

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

SQL во многом отклоняется от своей теоретической основы — реляционной модели и кортежного исчисления. В этой модели таблица представляет собой набор кортежей, тогда как в SQL таблицы и результаты запроса представляют собой списки строк; одна и та же строка может встречаться несколько раз, а порядок строк можно использовать в запросах (например, в предложении LIMIT).Критики утверждают, что SQL следует заменить языком, который строго возвращается к исходной основе: например, см. «Третий манифест» Хью Дарвена и Си Джей Дейта (2006, ISBN   0-321-39942-0 ).

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

[ редактировать ]

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

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

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

Дубликаты

[ редактировать ]

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

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

[ редактировать ]

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

Типы данных SQL

[ редактировать ]

Стандарт SQL определяет три типа типов данных (глава 4.1.1 SQL/Foundation):

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

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

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

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

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Пол, Райан (24 октября 2005 г.). «Экскурсия по Microsoft Command Shell» . Арс Техника . Проверено 10 апреля 2011 г.
  2. ^ «Регистрация типа носителя для приложения/sql» . Управление по присвоению номеров в Интернете . 10 апреля 2013 года . Проверено 10 апреля 2013 г.
  3. ^ Шафранович Ю. (апрель 2013 г.). «Тип носителя приложения/sql, RFC 6922» . Рабочая группа по интернет-инжинирингу . п. 3. дои : 10.17487/RFC6922 . Проверено 10 апреля 2013 г.
  4. ^ Болье, Алан (апрель 2009 г.). Мэри Э. Треселер (ред.). Изучение SQL (2-е изд.). Севастополь, Калифорния, США: О'Рейли. ISBN  978-0-596-52083-0 .
  5. ^ Чемберлин, Дональд Д.; Франа, Филип Л. (3 октября 2001 г.). «Устное историческое интервью с Дональдом Д. Чемберлином» . Университетская цифровая консервация . hdl : 11299/107215 . Проверено 14 января 2020 г. Мы изменили первоначальное название «SEQUEL» на SQL, потому что получили письмо от чьего-то адвоката, в котором говорилось, что имя «SEQUEL» принадлежит им. Мы сократили его до SQL (язык структурированных запросов), и этот продукт стал известен как SQL/DS.
  6. ^ SQL-92 , 4.22 SQL-операторы, 4.22.1 Классы SQL-операторов «Существует как минимум пять способов классификации SQL-операторов:», 4.22.2, SQL-операторы, классифицированные по функциям «Ниже приведены основные классы SQL-операторов: SQL-операторы:"; SQL:2003 4.11 SQL-операторы и более поздние версии.
  7. ^ Чатем, Марк (2012). Язык структурированных запросов на примере — Том I: Язык запросов к данным . Лулу.com. п. 8. ISBN  9781291199512 .
  8. ^ Кодд, Эдгар Ф. (июнь 1970 г.). «Реляционная модель данных для больших общих банков данных». Коммуникации АКМ . 13 (6): 377–87. CiteSeerX   10.1.1.88.646 . дои : 10.1145/362384.362685 . S2CID   207549016 .
  9. ^ Перейти обратно: а б Чаппл, Майк. «Основы SQL» . Базы данных . О сайте.com . Проверено 28 января 2009 г.
  10. ^ «Язык структурированных запросов (SQL)» . Машины международного бизнеса. 27 октября 2006 года . Проверено 10 июня 2007 г.
  11. ^ Перейти обратно: а б «ISO 9075:1987: Информационные технологии. Языки баз данных. SQL. Часть 1. Структура (SQL/Framework)» . 1 июня 1987 г.
  12. ^ Перейти обратно: а б с д и ж Чемберлин, Дональд (2012). «Ранняя история SQL». IEEE Анналы истории вычислений . 34 (4): 78–82. дои : 10.1109/MAHC.2012.61 . S2CID   1322572 .
  13. ^ Перейти обратно: а б с Чемберлин, Дональд Д.; Бойс, Раймонд Ф. (1974). «ПРОДОЛЖЕНИЕ: структурированный английский язык запросов» (PDF) . Материалы семинара ACM SIGFIDET 1974 года по описанию, доступу и контролю данных . Ассоциация вычислительной техники: 249–64. Архивировано из оригинала (PDF) 26 сентября 2007 г. Проверено 9 июня 2007 г.
  14. ^ Старки, Джим. «Динамический SQL, сантехника и внутренний API» . www.ibphoenix.com . Проверено 19 января 2023 г.
  15. ^ Перейти обратно: а б Оппель, Энди (27 февраля 2004 г.). Базы данных демистифицированы . Сан-Франциско, Калифорния : McGraw-Hill Osborne Media. стр. 90–1. ISBN  978-0-07-146960-9 .
  16. ^ «История IBM, 1978 год» . Архивы IBM . ИБМ. 23 января 2003 года . Проверено 9 июня 2007 г.
  17. ^ «ISO – ISO/IEC JTC 1/SC 32 – Управление данными и обмен» . www.iso.org . Проверено 2 января 2021 г.
  18. ^ Международный стандарт ANSI/ISO/IEC (IS). Язык базы данных SQL. Часть 2. Основа (SQL/Foundation). 1999.
  19. ^ «Программирование сервера PostgreSQL» . Официальная документация PostgreSQL 9.1 . postgresql.org. 2011 . Проверено 9 марта 2012 г.
  20. ^ «О PostgreSQL» . Официальный сайт PostgreSQL 9.1 . Группа глобального развития PostgreSQL. 2012 . Проверено 9 марта 2012 г. PostgreSQL гордится соответствием стандартам. Его реализация SQL строго соответствует стандарту ANSI-SQL:2008.
  21. ^ «Mimer SQL, построенный на стандартах» . Официальный сайт Mimer SQL . Мимер Информационные технологии. 2009.
  22. ^ «4.1. Лексическая структура» . Документация PostgreSQL . 2018.
  23. ^ «(Второй неофициальный обзорный проект) ISO/IEC 9075:1992, Язык баз данных SQL, раздел 5.2, синтаксическое правило 11» . 30 июля 1992 года.
  24. ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных» . Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г. Для каждого DATE значение, Oracle хранит следующую информацию: столетие, год, месяц, дату, час, минуту и ​​секунду.
  25. ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных» . Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г. Типы данных datetime: DATE...
  26. ^ Лоренц, Диана; Розер, Мэри Бет; Авраам, Сандип; Амор, Анджела; Арора, Гита; Арора, Викас; Эшдаун, Лэнс; Баер, Герман; Белламконда, Шрикант (октябрь 2010 г.) [1996]. «Основные элементы Oracle SQL: типы данных» . Справочник по языку SQL базы данных Oracle 11g, выпуск 2 (11.2) . Библиотека документации базы данных Oracle. Редвуд-Сити, Калифорния: Oracle USA, Inc. Проверено 29 декабря 2010 г. Не определяйте столбцы со следующими типами данных SQL/DS и DB2, поскольку они не имеют соответствующего типа данных Oracle:... TIME
  27. ^ Дата, Крис Дж. (2013). Реляционная теория для компьютерных специалистов: что на самом деле представляют собой реляционные базы данных (1-е изд.). Севастополь, Калифорния: O'Reilly Media. ISBN  978-1-449-36943-9 .
  28. ^ «В поисках помощи» . X3H2 Records, 1978–95 . Американский национальный институт стандартов.
  29. ^ Долл, Шелли (19 июня 2002 г.). «Является ли SQL уже стандартом?» . Builder.com компании TechRepublic . TechRepublic. Архивировано из оригинала 5 июля 2012 г. Проверено 12 апреля 2016 г.
  30. ^ Перейти обратно: а б Гиллеспи, Патрик. «Произнесение SQL: SQL или продолжение?» . Проверено 12 февраля 2012 г.
  31. ^ Мелтон, Джим; Алан Р. Саймон (1993). «1.2. Что такое SQL?» . Понимание нового SQL: полное руководство . Морган Кауфманн. п. 536 . ISBN  978-1-55860-245-8 . SQL (правильно произносится «ess cue ell» вместо довольно распространенного «продолжения»)…
  32. ^ Вагнер, Майкл (2010). SQL/XML:2006 — Оценка соответствия стандартам выбранных систем баз данных . Издательство Дипломика. п. 100. ИСБН  978-3-8366-9609-8 .
  33. ^ «SQL:2008 теперь утвержденный международный стандарт ISO» . Сибаза. Июль 2008 г. Архивировано из оригинала 28 июня 2011 г.
  34. ^ Кришна Кулкарни, Ян-Эйке Михелс (сентябрь 2012 г.). «Временные функции в SQL:2011» (PDF) . SIGMOD Запись . 41 (3).
  35. ^ Фред Земке (2012). «Что нового в SQL:2011» (PDF) . Корпорация Оракл.
  36. ^ «ИСО/МЭК 9075» .
  37. ^ SQL:проект 1992 года (текст)
  38. ^ SQL: проект 2008 г. (Zip) , Whitemarsh Information Systems Corporation
  39. ^ SQL:проект 2011 г. (Zip) , Whitemarsh Information Systems Corporation
  40. ^ Фернандо Саенс-Перес. «Внешние соединения в дедуктивной системе баз данных» (PDF) . Lbd.udc.es. ​Проверено 16 января 2017 г.
  41. ^ Рейнш, Р. (1988). «Распределенная база данных для SAA». IBM Systems Journal . 27 (3): 362–389. дои : 10.1147/sj.273.0362 .
  42. ^ Справочник по архитектуре распределенных реляционных баз данных . Корпорация IBM SC26-4651-0. 1990.
  43. ^ Брэндон, Джейми (июль 2021 г.). «Против SQL» . Проверено 2 августа 2021 г.
  44. ^ «Стандартная поддержка SQL 2003 в базе данных Oracle 10g» (PDF) . Оракул . Корпорация Оракл . Ноябрь 2003 года . Проверено 27 марта 2024 г. Поддержка XML была добавлена ​​в ANSI SQL 2003, часть 14.

Источники

[ редактировать ]
[ редактировать ]



Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 695fca4bd2fbe396bd1b629efed93651__1722095460
URL1:https://arc.ask3.ru/arc/aa/69/51/695fca4bd2fbe396bd1b629efed93651.html
Заголовок, (Title) документа по адресу, URL1:
SQL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)