| SQL(構造化問い合わせ言語) | |
|---|---|
| パラダイム | 宣言型 |
| ファミリー | クエリ言語 |
| 設計者 | ドナルド・D・チェンバリン、レイモンド・F・ボイス |
| 開発者 | ISO/IEC JTC 1(合同技術委員会1)/ SC 32(小委員会32) / WG 3(作業部会3) |
| 初登場 | 1973年 (1973年) |
| 安定版リリース | SQL:2023 / 2023年6月 (2023年6月) |
| タイピングの規律 | 静的、強力 |
| OS | クロスプラットフォーム |
| ウェブサイト | www.iso.org/standard/76583.html |
| 主要な実装 | |
| 多くの | |
| 方言 | |
| 影響 | |
| データログ | |
| 影響 | |
| CQL、LINQ、SPARQL、 SOQL 、PowerShell、[ 1 ] JPQL、jOOQ、N1QL、GQL | |
| |
| SQL(ファイル形式) | |
|---|---|
| ファイル名拡張子 | .sql |
| インターネットメディアタイプ | |
| 開発元 | ISO / IEC |
| 初回リリース | 1986 (1986年) |
| フォーマットの種類 | データベース |
| 規格 | ISO/IEC 9075 |
| オープンフォーマット? | はい |
| ウェブサイト | www.iso.org/standard/76583.html |
| この記事は構造化クエリ言語に関するシリーズの一部です |
構造化照会言語(SQL)(発音:/ ˌɛ sˌ k j u ˈ ɛ l / SQL、または/ ˈ s iː k w ə l / )ⓘ「続編」) [ 4 ] [ 5 ]は、特にリレーショナルデータベース管理システムにおいて、データ管理に使用されるドメイン固有言語です構造化データ処理に有用です。
1970年代に導入されたSQLは、 ISAMやVSAMといった従来の読み書きAPIに比べて、主に2つの利点がありました。まず、 1つのコマンドで複数のレコードにアクセスするという概念を導入しました。次に、レコードへのアクセス方法(インデックスの有無など)を指定する必要がなくなりました。
もともとリレーショナル代数とタプルリレーショナル計算に基づいていたSQLは、多くの種類の文で構成されており、[ 6 ]非公式にはサブ言語に分類され、一般的にはデータクエリ言語(DQL)、データ定義言語(DDL)、データ制御言語(DCL)、データ操作言語(DML)と呼ばれています。[ 7 ]
SQLの適用範囲には、データクエリ、データ操作(挿入、更新、削除)、データ定義(スキーマの作成と変更)、データアクセス制御が含まれます。SQLは本質的に宣言型言語(4GL)ですが、手続き型要素も含まれています。
SQLは、エドガー・F・コッドのリレーショナルモデルを採用した最初の商用言語の一つでした。このモデルは、コッドが1970年に発表した影響力のある論文「大規模共有データバンクのためのリレーショナルデータモデル」で説明されています。[ 8 ]コッドが説明したリレーショナルモデル に完全に準拠しているわけではないにもかかわらず、SQLは最も広く使用されるデータベース言語となりました。[ 9 ] [ 10 ]
SQLは1986年に米国規格協会(ANSI)の標準規格となり、 1987年には国際標準化機構(ISO)の標準規格となりました。 [ 11 ]それ以来、この標準規格は複数回改訂され、より多くの機能が追加され、共通の拡張機能が組み込まれました。標準規格が存在するにもかかわらず、既存の実装は事実上すべてSQLに完全に準拠しておらず、ほとんどのSQLコードは、異なるデータベースシステムに移植する前に少なくとも何らかの変更が必要です。
歴史
SQLは、 1970年代初頭にエドガー・F・コッド[ 12 ]からリレーショナルモデルについて学んだ後、ドナルド・D・チェンバレンとレイモンド・F・ボイスによってIBMで最初に開発されました[ 13 ]。当初SEQUEL(Structured English Query Language)と呼ばれていたこのバージョンは、 IBMサンノゼ研究所のグループが1970年代に開発したIBM独自の準リレーショナルデータベース管理システムであるSystem Rに格納されたデータを操作および取得するために設計されました[ 13 ]
チェンバレンとボイスがリレーショナルデータベース言語に初めて取り組んだのはSQUARE(Specifying Queries in A Relational Environment)でしたが、下付き/上付き表記法が使いにくかったため、使いにくかったです。1973年にサンノゼ研究所に移った後、彼らはSQUAREの続編の開発に着手しました。[ 12 ]元の名称であるSEQUELは、Ingresのクエリ言語であるQUELをもじったものと広く考えられていますが、[ 14 ]後に「SEQUEL」が英国のホーカー・シドレー・ダイナミクス・エンジニアリング・リミテッド社の商標であったため、母音を削除してSQLに変更されました。 [ 15 ] SQLという名称は後にStructured Query Language(構造化クエリ言語)の頭字語となりました。[ 16 ]
IBMは顧客のテストサイトでSQLをテストし、システムの有用性と実用性を判断した後、System Rプロトタイプに基づいてSystem/38、SQL/DS、IBM Db2などの商用製品の開発を開始し、それぞれ1979年、1981年、1983年に市販されました。[ 17 ] IBMの承認により、業界はQUELなどの代替手段からSQLに移行しました。[ 18 ]
1970年代後半、リレーショナル・ソフトウェア社(現オラクル社)は、コッド、チェンバリン、ボイスが提唱した概念の可能性に着目し、独自のSQLベースのRDBMSを開発しました。これは、米国海軍、中央情報局(CIA)、その他の米国政府機関への販売を狙ったものでした。1979年6月、リレーショナル・ソフトウェア社は、 VAXコンピュータ向けにSQLの商用実装として初めてOracle V2(バージョン2)を発表しました。
1986年までに、ANSIとISOの標準化団体は「データベース言語SQL」の言語定義を正式に採用しました。この標準規格の新版は、1989年、 1992年、1996年、1999年、 2003年、2006年、 2008年、2011年、 [ 12 ] 2016年、そして最近では2023年に発行されました。[ 19 ]
相互運用性と標準化
| SQL言語改訂 |
|---|
概要
SQLの実装はベンダー間で互換性がなく、必ずしも標準に完全に準拠しているわけではありません。特に、日付と時刻の構文、文字列の連結、NULL比較における大文字と小文字の区別はベンダーによって異なります。PostgreSQL [ 20 ]とMimer SQL [ 21 ]は標準への準拠を目指していますが、PostgreSQLはすべてのケースで標準に準拠しているわけではありません。たとえば、PostgreSQLで引用符で囲まれていない名前を小文字に変換することは、引用符で囲まれていない名前を大文字に変換する必要があるとされているSQL標準[ 22 ]と互換性がありません。 [ 23 ]したがって、標準によれば、は と同等であり、 と同等ではありません FooFOOfoo
一般的なSQL実装では、DATEやTIMEデータ型といった標準SQLの基本機能のサポートが省略されているのが一般的です。最も顕著な例であり、また商用および独自仕様のSQL DBMSとして最も普及しているものとしては、Oracle( は、[ 24 ] [ 25 ]DATEのように動作し、 型を持たない)[ 26 ]とMS SQL Server(2008年バージョン以前)が挙げられます。その結果、SQLコードを変更せずにデータベースシステム間で移植することはほとんど不可能です。 DATETIMETIME
非互換性の理由
データベースシステム間の移植性の欠如には、いくつかの理由が挙げられます
- SQL 標準の複雑さと規模により、ほとんどの実装者は標準全体をサポートしていません。
- SQL 標準では、いくつかの重要な領域 (インデックス、ファイル ストレージなど) におけるデータベースの動作が指定されておらず、実装によって動作方法が決定されることになります。
- SQL標準では、明示的に名前が付けられていない結果列に名前を付ける方法など、いくつかの決定を個々の実装に委ねています。[ 27 ]:207
- SQL標準は、準拠するデータベースシステムが実装しなければならない構文を厳密に規定しています。しかし、言語構成要素の意味に関する仕様は明確に定義されておらず、曖昧さが生じています。
- 多くのデータベース ベンダーは既存の大規模な顧客ベースを持っています。SQL 標準の新しいバージョンがベンダーのデータベースの以前の動作と競合する場合、ベンダーは下位互換性を壊すことを望まない可能性があります。
- ベンダーにとって、データベースサプライヤーの変更を容易にする商業的インセンティブはほとんどありません (ベンダー ロックインを参照)。
- データベース ソフトウェアを評価するユーザーは、標準への準拠よりもパフォーマンスなどの他の要素を優先する傾向があります。
標準化の歴史
SQLは、1986年にANSIによってSQL-86 [ 28 ]として、1987年にISOによって標準として採用されました[ 11 ] 。ISO /IEC JTC 1、情報技術、小委員会SC 32、データ管理および交換によって 保守されています
1996年まで、米国国立標準技術研究所(NIST)のデータ管理標準プログラムは、SQL DBMSのSQL標準への準拠を認定していました。現在では、ベンダー各社が自社製品の準拠を自己認証しています。[ 29 ]
オリジナルの標準では、「SQL」の公式発音は頭字語/ˌɛ sˌ k juːˈɛ l /(「ess cue el 」)であると宣言されていました。[ 9 ]それにもかかわらず、多くの英語圏のデータベース専門家(ドナルド・チェンバレン自身を含む[ 30 ])は、 / ˈ s iː k w əl /(「sequel」)という頭字語のような発音を使用しており、 [ 31 ]これは言語のプレリリース開発名「SEQUEL」を反映しています。[ 13 ] [ 15 ] [ 30 ] SQL標準は、いくつかの改訂を経ています。
| 年 | 公式 | 通称 | コメント |
|---|---|---|---|
| 1986 1987 | ANSI X3.135:1986 ISO/IEC 9075 :1987 FIPS PUB 127 | SQL-86 SQL-87 | ANSIによって最初に公式化され、FIPS PUB 127 として採用されました |
| 1989 | ANSI X3.135-1989 ISO/IEC 9075:1989 FIPS PUB 127-1 | SQL-89 | 整合性制約を追加したマイナーリビジョン。FIPS PUB 127-1として採用されました |
| 1992 | ANSI X3.135-1992 ISO/IEC 9075:1992 FIPS PUB 127-2 | SQL-92 SQL2 | メジャーリビジョン(ISO 9075)、エントリーレベルSQL-92、FIPS PUB 127-2として採用 |
| 1999 | ISO/IEC 9075:1999 | SQL:1999 SQL3 | 正規表現マッチング、再帰クエリ(推移閉包など)、トリガー、手続き型およびフロー制御文のサポート、非スカラー型(配列)、一部のオブジェクト指向機能(構造化型など)、JavaへのSQLの埋め込み(SQL/OLB)とその逆(SQL/JRT) のサポートが追加されました |
| 2003 | ISO/IEC 9075:2003 | SQL:2003 | XML関連機能(SQL/XML)、ウィンドウ関数、標準化されたシーケンス、自動生成された値を持つ列(ID列を含む) を導入しました |
| 2006 | ISO/IEC 9075-14:2006 | SQL:2006 | 第14部を追加し、SQLをXMLと併用する方法を定義しています。SQLデータベースへのXMLデータのインポートと保存、データベース内でのXMLデータの操作、そしてXMLと従来のSQLデータの両方をXML形式で公開する方法を定義しています。さらに、アプリケーションは、ワールドワイドウェブコンソーシアム(W3C )が公開したXMLクエリ言語であるXQueryを使用して、SQLコードにクエリを統合し、通常のSQLデータとXML文書に同時にアクセスできるようになります。[ 32 ] |
| 2008 | ISO/IEC 9075:2008 | SQL:2008 | カーソル定義外でのORDER BYを合法化。INSTEAD OFトリガー、TRUNCATE文、[ 33 ] FETCH句 を追加 |
| 2011 | ISO/IEC 9075:2011 | SQL:2011 | 時間データ(PERIOD FOR)[ 34 ]を追加(詳細については、時間データベース#履歴を参照してください)。ウィンドウ関数とFETCH句の機能強化。[ 35 ] |
| 2016 | ISO/IEC 9075:2016 | SQL:2016 | 行パターンマッチング、多態的表関数、文字列フィールドに格納された JSONデータに対する操作を追加します |
| 2019 | ISO/IEC 9075-15:2019 | SQL:2019 | パート15、多次元配列(MDarray型と演算子)を追加 |
| 2023 | ISO/IEC 9075:2023 | SQL:2023 | データ型JSON(SQL/Foundation)を追加;パート16、プロパティグラフクエリ(SQL/PGQ)を追加 |
現在の規格
この規格は、一般的にISO/IEC 9075-n:yyyy パートn:タイトル、または短縮形としてISO/IEC 9075という形式で表記されます。関心のある方は、ISO、 [ 36 ] IEC、またはANSIから規格文書を購入できます。一部の古い草案は無料で入手できます。 [ 37 ] [ 38 ]
ISO/IEC 9075は、ISO/IEC 13249: SQL マルチメディアおよびアプリケーション パッケージといくつかの技術レポートによって補完されます。
構文
SQL 言語は、次のようないくつかの言語要素に細分化されます。
- 句は文やクエリの構成要素です。(場合によってはオプションです。)[ 39 ]
- 式はスカラー値、または列と行のデータで構成されるテーブルを生成できます。
- 述語は、SQL の3 値ロジック (3VL) (真/偽/不明) またはブール値の真理値に評価できる条件を指定し、ステートメントやクエリの効果を制限したり、プログラム フローを変更したりするために使用されます。
- クエリは、特定の条件に基づいてデータを取得します。これはSQLの重要な要素です。
- ステートメントは、スキーマとデータに永続的な影響を与えたり、トランザクション、プログラム フロー、接続、セッション、または診断を制御したりすることがあります。
- SQL文には、セミコロン(";")文末記号も含まれます。すべてのプラットフォームで必須ではありませんが、SQL文法の標準的な構成要素として定義されています。
- 通常、SQL ステートメントおよびクエリでは重要でない空白は無視されるため、SQL コードを読みやすくフォーマットすることが容易になります。
手続き型拡張
SQLは、リレーショナルデータベースに含まれるデータを照会するという特定の目的のために設計されています。SQLは、 CやBASICのような命令型プログラミング言語ではなく、セットベースの宣言型プログラミング言語です。ただし、標準SQLの拡張により、フロー制御構造などの手続き 型プログラミング言語機能が追加されます
標準SQL/PSM拡張機能と独自SQL拡張機能に加えて、他の言語とのDBMS統合を通じて、多くのSQLプラットフォームで手続き型およびオブジェクト指向プログラミングが利用できます。SQL標準では、SQLデータベースでJavaコードをサポートするためにSQL/JRT拡張機能(Javaプログラミング言語のSQLルーチンと型)が定義されています。Microsoft SQL Server 2005は、SQLCLR (SQL Server共通言語ランタイム)を使用してデータベースでマネージド.NETアセンブリをホストしますが、以前のバージョンのSQL Serverは主にCで記述されたアンマネージド拡張ストアドプロシージャに制限されていました。PostgreSQLでは、 Perl、Python、Tcl、JavaScript(PL/V8)、Cなど、さまざまな言語で関数を記述できます。[ 40 ]
代替案
言語としてのSQLの代替案と、リレーショナルモデル自体の代替案を区別する必要があります。以下は、SQL言語のリレーショナル代替案として提案されているものです。リレーショナルモデルの代替案については、 ナビゲーションデータベースとNoSQLを参照してください
- .QL : オブジェクト指向データログ
- 4Dクエリ言語(4D QL)
- Datalog:批評家は、DatalogにはSQLに比べて2つの利点があると指摘しています。それは、よりクリーンなセマンティクスを持っているため、プログラムの理解と保守が容易であり、特に再帰クエリに対してより表現力が豊かであることです。[ 41 ]
- HTSQL : URLベースのクエリ方法
- IBM Business System 12 (IBM BS12): 1982年に導入された最初の完全なリレーショナルデータベース管理システムの1つ。
- ISBL
- jOOQ :内部ドメイン固有言語としてJavaで実装されたSQL
- Java Persistence Query Language (JPQL): Java Persistence API およびHibernate永続ライブラリで使用されるクエリ言語
- JavaScript : MongoDB はクエリ言語を JavaScript API で実装します。
- LINQ : 言語構造のように記述された SQL 文を実行して、 .Netコード内から直接コレクションをクエリします。
- オブジェクトクエリ言語
- QBE(Query By Example)は、1977年にIBMのMoshè Zloofによって作成されました
- QUELは1974年にカリフォルニア大学バークレー校のIngresプロジェクトによって導入され、SQLよりもタプルリレーショナル計算に近い。
- XQuery
分散SQL処理
分散リレーショナルデータベースアーキテクチャ(DRDA)は、1988年から1994年にかけてIBM内のワークグループによって設計されました。DRDAは、ネットワーク接続されたリレーショナルデータベースが連携してSQL要求を処理することを可能にします。[ 42 ] [ 43 ]
対話型ユーザーまたはプログラムは、ローカルRDBに対してSQL文を発行し、リモートRDBからデータとステータスインジケータのテーブルを応答として受け取ることができます。SQL文はコンパイルされ、リモートRDBにパッケージとして保存され、パッケージ名で呼び出されることもあります。これは、複雑で高頻度のクエリを発行するアプリケーションプログラムを効率的に動作させる上で重要です。特に、アクセス対象のテーブルがリモートシステムにある場合に重要です。
DRDAのメッセージ、プロトコル、および構造コンポーネントは、分散データ管理アーキテクチャによって定義されています。DRDAに基づく分散SQL処理は、現代の分散SQLデータベース とは異なります。
批判
設計
SQLは、その理論的基礎であるリレーショナルモデルとタプル計算からいくつかの点で逸脱しています。そのモデルでは、テーブルはタプルの集合ですが、SQLでは、テーブルとクエリ結果は行のリストです。同じ行が複数回出現する可能性があり、行の順序はクエリ(たとえば、LIMIT句)で使用できます。批評家は、SQLは厳密に元の基礎に戻る言語に置き換えるべきだと主張しています。例えば、ヒュー・ダーウェンとCJ・デイト著『第三の宣言』(2006年、ISBN 978-4-8 ... 0-321-39942-0)。
直交性と完全性
初期の仕様では、主キーなどの主要な機能はサポートされていませんでした。結果セットに名前を付けることはできず、サブクエリも定義されていませんでした。これらは1992年に追加されました。[ 12 ]
合計型の欠如は、SQLのユーザー定義型を十分に活用するための障害となっていると言われています。例えば、JSONのサポートは、2016年に新しい標準によって追加される必要がありました。[ 44 ]
ヌル
ヌルの概念は議論の対象となっています。ヌルマーカーは値の欠如を示し、整数列の0やテキスト列の空文字列とは異なります。ヌルの概念は、 SQLにおける3値論理を強制します。これは、一般的な3値論理の具体的な実装です。[ 12 ]
重複
よくある批判の1つは、重複行を許容するため、 Pythonなどの言語との統合が難しくなるというものです。Pythonのデータ型では、解析とモジュール性の欠如という点で、データの正確な表現が困難になる可能性があります。 [ 12 ]これは通常、テーブル内の行を一意に識別する1つ以上の列を持つ主キーまたは一意制約を宣言することで回避されます
インピーダンスミスマッチ
オブジェクト・リレーショナル・インピーダンスミスマッチと同様に、宣言型SQL言語と、SQLが通常埋め込まれている手続き型言語との間にもミスマッチが発生します
SQLデータ型
SQL標準では、3種類のデータ型が定義されています(SQL/Foundationの4.1.1章)。
- 定義済みデータ型
- 構築型
- ユーザー定義型
構築型ARRAYは、、、(参照)、またはのいずれかです。ユーザー定義型は、MULTISET独自のコンストラクター、オブザーバー、ミューテーター、メソッド、継承、オーバーロード、上書き、インターフェースなどを持つオブジェクト指向言語のクラスに相当します。定義済みデータ型は、実装によって本質的にサポートされています REFROW
定義済みデータ型
- 文字型
- 文字(
CHAR) - 文字が変化する(
VARCHAR) - 文字ラージオブジェクト(
CLOB)
- 文字(
- 国別文字の種類
- 国別文字(
NCHAR) - 国別文字の多様性(
NCHAR VARYING) - 国別文字大オブジェクト(
NCLOB)
- 国別文字(
- バイナリ型
- バイナリ (
BINARY) - バイナリ可変 (
VARBINARY) - バイナリラージオブジェクト(
BLOB)
- バイナリ (
- 数値型
- 正確な数値型(
NUMERIC、DECIMAL、SMALLINT、INTEGER)BIGINT - 近似数値型(
FLOAT、、)REALDOUBLE PRECISION - 10進浮動小数点型(
DECFLOAT)
- 正確な数値型(
- 日付時刻型 (
DATE、TIME、TIMESTAMP) - 間隔型(
INTERVAL) - ブール
- XML( SQL/XML参照)[ 45 ]
- JSON
参照
- オブジェクトデータベース
- リレーショナルデータベース管理システムの一覧
- NoSQLソフトウェアとツールの一覧
- SQLソフトウェアとツールのリスト
- SQLプログラミング書籍一覧
- リレーショナルデータベース管理システムの比較
- オブジェクトリレーショナルデータベース管理システムの比較
- 例によるクエリ
- SQL予約語
- SQL構文
- Oracle PL/SQL
- Microsoft Transact-SQL (T-SQL)
- オンライントランザクション処理 (OLTP)
- オンライン分析処理 (OLAP)
- データウェアハウス
- リレーショナルデータストリーム管理システム
- NoSQL
- MUMPS
- 階層型データベースモデル
- スタースキーマ
- スノーフレークスキーマ
注記
参考文献
- ^ポール・ライアン(2005年10月24日)「Microsoftコマンドシェルのガイドツアー」Ars Technica。2011年4月10日閲覧
- ^ 「Media Type registration for application/sql」 . Internet Assigned Numbers Authority . 2013年4月10日. 2013年5月7日時点のオリジナルよりアーカイブ。 2013年4月10日閲覧。
- ^ Shafranovich, Y. (2013年4月). 「application/sql メディアタイプ、RFC 6922」 .インターネット技術タスクフォース. p. 3. doi : 10.17487/RFC6922 . 2014年10月13日時点のオリジナルよりアーカイブ。 2013年4月10日閲覧。
- ^ Beaulieu, Alan (2009年4月). Mary E. Treseler (編). Learning SQL (第2版). Sebastopol, CA, USA: O'Reilly. ISBN 978-0-596-52083-0。
- ^ドナルド・D・チェンバーリン、フィリップ・L・フラナ(2001年10月3日)。「ドナルド・D・チェンバーリンへのオーラルヒストリーインタビュー」。University Digital Conservancy。hdl: 11299 / 107215。2020年2月24日時点のオリジナルからのアーカイブ。2020年1月14日閲覧。
ある人の弁護士から、「SEQUEL」という名前はその人のものだという手紙を受け取ったため、元の名称「SEQUEL」をSQLに変更しました。Structured Query Language(構造化照会言語)の頭文字をとってSQLに短縮し、製品はSQL/DSとして知られていました
- ^ SQL-92、4.22 SQL 文、4.22.1 SQL 文のクラス「SQL 文を分類する方法は少なくとも 5 つあります。」、4.22.2、機能別に分類された SQL 文「SQL 文の主なクラスは次のとおりです。」、 SQL:2003 4.11 SQL 文、およびそれ以降の改訂。
- ^ Chatham, Mark (2012).例による構造化クエリ言語 - 第1巻: データクエリ言語. Lulu.com. p. 8. ISBN 978-1-291-19951-2。
- ^ Codd, Edgar F. (1970年6月). 「大規模共有データバンクのためのリレーショナルデータモデル」. Communications of the ACM . 13 (6): 377–87 . CiteSeerX 10.1.1.88.646 . doi : 10.1145/362384.362685 . S2CID 207549016
- ^ a b Chapple, Mike. 「SQLの基礎」 .データベース. About.com. 2009年2月22日時点のオリジナルよりアーカイブ。 2009年1月28日閲覧。
- ^ 「構造化クエリ言語(SQL)」 International Business Machines、2006年10月27日。 2007年6月10日閲覧。
- ^ a b「ISO 9075:1987: 情報技術 – データベース言語 – SQL – パート1: フレームワーク (SQL/フレームワーク)」 2023年6月1日. 2025年6月24日閲覧。
- ^ a b c d e fチャンバーリン、ドナルド (2012). 「SQLの初期の歴史」. IEEE Annals of the History of Computing . 34 (4): 78– 82. Bibcode : 2012IAHC...34d..78C . doi : 10.1109/MAHC.2012.61 . S2CID 1322572 .
- ^ a b cドナルド・D・チェンバーリン、レイモンド・F・ボイス (1974). 「SEQUEL: 構造化英語問い合わせ言語」(PDF) . 1974 ACM SIGFIDET ワークショップ「データ記述、アクセス、制御」の議事録. Association for Computing Machinery: 249–64 . 2007年9月26日時点のオリジナル(PDF)からアーカイブ。 2007年6月9日閲覧。
- ^ Starkey, Jim. 「Dynamic SQL, Plumbing, and the Internal API」 . www.ibphoenix.com . 2023年1月19日時点のオリジナルよりアーカイブ。 2023年1月19日閲覧。
- ^ a b Oppel, Andy (2004年2月27日). 『データベースの秘密』サンフランシスコ, カリフォルニア州: McGraw-Hill Osborne Media. pp. 90–1 . ISBN 978-0-07-146960-9. 2012年1月14日時点のオリジナルよりアーカイブ。2011年5月12日閲覧。
- ^ Yasar, Kinza; Loshin, Peter; Sirkin, Jessica. 「What is Structured Query Language (SQL)? | Definition from TechTarget」 . Search Data Management . Informa TechTarget . 2025年3月10日時点のオリジナルよりアーカイブ。 2025年3月25日閲覧。
- ^ 「IBMの歴史、1978年」IBMアーカイブ。IBM 。 2003年1月23日。 2005年1月17日時点のオリジナルよりアーカイブ。 2007年6月9日閲覧。
- ^ Morgenthaler, Gary (2005年12月8日). 「Gary Morgenthalerのオーラル・ヒストリー」(PDF) (インタビュー). ルアン・ジョンソンによるインタビュー. コンピュータ歴史博物館. p. 18. 2025年5月30日閲覧。
- ^ 「ISO - ISO/IEC JTC 1/SC 32 - データ管理および交換」 www.iso.org . 2017年3月16日時点のオリジナルよりアーカイブ。 2021年1月2日閲覧。
- ^ 「PostgreSQLについて」。PostgreSQL 9.1公式サイト。PostgreSQL Global Development Group。2012年。2012年3月9日時点のオリジナルからのアーカイブ。 2012年3月9日閲覧。PostgreSQL
は標準規格への準拠を誇りとしています。SQL実装はANSI-SQL:2008標準に厳密に準拠しています。
- ^ 「Mimer SQL、標準に基づいて構築」。Mimer SQL公式ウェブサイト。Mimer Information Technology。2009年。2016年5月3日時点のオリジナルよりアーカイブ。2018年12月11日閲覧。
- ^ 「4.1. 語彙構造」 . PostgreSQLドキュメント. 2018年. 2018年10月5日時点のオリジナルよりアーカイブ。 2018年12月11日閲覧。
- ^ 「(第2次非公式レビュー草案) ISO/IEC 9075:1992、データベース言語SQL、セクション5.2、構文規則11」。1992年7月30日。 2006年6月21日時点のオリジナルよりアーカイブ。 2009年10月8日閲覧。
- ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (2010年10月) [1996]. 「Oracle SQLの基本要素:データ型」 . Oracle Database SQL言語リファレンス 11g リリース2 (11.2) . Oracle Databaseドキュメント・ライブラリ. Redwood City, CA: Oracle USA, Inc. 2010年11月20日時点のオリジナルからのアーカイブ。 2010年12月29日閲覧。Oracleは、
各
値について、世紀、年、月、日、時、分、秒の情報を保存します。
DATE - ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (2010年10月) [1996]. 「Oracle SQLの基本要素:データ型」 . Oracle Database SQL言語リファレンス 11g リリース2 (11.2) . Oracle Databaseドキュメント・ライブラリ. Redwood City, CA: Oracle USA, Inc. 2010年11月20日時点のオリジナルからのアーカイブ。 2010年12月29日閲覧。
日時データ型は
…
DATE - ^ Lorentz, Diana; Roeser, Mary Beth; Abraham, Sundeep; Amor, Angela; Arora, Geeta; Arora, Vikas; Ashdown, Lance; Baer, Hermann; Bellamkonda, Shrikanth (2010年10月) [1996]. 「Oracle SQLの基本要素:データ型」 . Oracle Database SQL言語リファレンス 11g リリース2 (11.2) . Oracle Databaseドキュメント・ライブラリ. Redwood City, CA: Oracle USA, Inc. 2010年11月20日時点のオリジナルからのアーカイブ。 2010年12月29日閲覧。
以下のSQL/DSおよびDB2データ型の列は、対応するOracleデータ型がないため、定義しないでください。...
TIME - ^ Date, Chris J. (2013). 『コンピュータプロフェッショナルのためのリレーショナル理論:リレーショナルデータベースの真髄』(初版), セバストポル, カリフォルニア州: O'Reilly Media. ISBN 978-1-449-36943-9。
- ^ 「Finding Aid」 X3H2 Records、1978~1995年。米国規格協会。2010年6月19日時点のオリジナルよりアーカイブ。2008年4月26日閲覧
- ^ Doll, Shelley (2002年6月19日). 「SQLはもはや標準か?」 TechRepublic 's Builder.com . TechRepublic. 2012年7月5日時点のオリジナルよりアーカイブ。2016年4月12日閲覧。
- ^ a b Gillespie, Patrick. 「SQLの発音:SQLかSequelか?」 2012年5月27日時点のオリジナルよりアーカイブ。 2012年2月12日閲覧。
- ^メルトン、ジム、アラン・R・サイモン (1993). 「1.2. SQLとは何か?」『新しいSQLを理解する:完全ガイド』モーガン・カウフマン. 536ページ . ISBN 978-1-55860-245-8
SQL(やや一般的な「シークエル」ではなく、「エスキューエル」と正しく発音します)…
- ^ミヒャエル・ワーグナー (2010). SQL/XML:2006 - 標準銀行システムの評価。ディプロミカ・フェルラグ。 p. 100.ISBN 978-3-8366-9609-8。
- ^ 「SQL:2008がISO国際標準として承認されました」 Sybase、2008年7月。2011年6月28日時点のオリジナルよりアーカイブ
- ^クリシュナ・クルカルニ、ジャン=アイケ・ミシェルズ(2012年9月)。「SQL:2011 の時間的機能」(PDF)。SIGMOD レコード。41 (3)。
- ^ Fred Zemke (2012). 「SQL:2011の新機能」(PDF) . Oracle Corporation.
- ^ “ISO/IEC 9075” . 2022年8月12日時点のオリジナルよりアーカイブ。2022年8月9日閲覧。
- ^ SQL:1992 draft (text)、2006年6月21日時点のオリジナルよりアーカイブ、 2009年10月8日閲覧。
- ^ SQL:2011 draft、Whitemarsh Information Systems Corporation、2023年5月25日時点のオリジナル(Zip)からアーカイブ
- ^ ANSI/ISO/IEC国際規格(IS)。データベース言語SQL—パート2:基礎(SQL/Foundation)。1999年。
- ^ 「PostgreSQLサーバプログラミング」 . PostgreSQL 9.1公式ドキュメント. postgresql.org. 2011年. 2012年3月2日時点のオリジナルよりアーカイブ。 2012年3月9日閲覧。
- ^ Fernando Saenz-Perez. 「演繹データベースシステムにおける外部結合」(PDF) . Lbd.udc.es . 2016年8月9日時点のオリジナルよりアーカイブ(PDF) . 2017年1月16日閲覧。
- ^ Reinsch, R. (1988). 「SAA向け分散データベース」IBM Systems Journal . 27 (3): 362– 389. doi : 10.1147/sj.273.0362 .
- ^分散リレーショナルデータベースアーキテクチャリファレンス. IBM Corp. SC26-4651-0. 1990.
- ^ Brandon, Jamie (2021年7月). 「Against SQL」 . 2021年8月2日閲覧。
- ^ 「Oracle Database 10gにおけるSQL 2003標準サポート」(PDF) . Oracle . Oracle Corporation . 2003年11月. 2024年3月27日時点のオリジナルよりアーカイブ(PDF) . 2024年3月27日閲覧。XML サポートは、ANSI SQL 2003、パート 14 で追加されました。
出典
- コッド、エドガー・F(1970年6月)「大規模共有データバンクのためのリレーショナルデータモデル」 Communications of the ACM . 13 (6): 377–87 . doi : 10.1145/362384.362685 . S2CID 207549016
- SQL の欠陥に関する議論(C2 wiki)
- CJ Date with Hugh Darwen : SQL標準ガイド: 標準データベース言語SQLのユーザーガイド、第4版、Addison Wesley、米国1997年、ISBN 978-0-201-96426-4
外部リンク
- 1995 SQL Reunion: People, Projects, and Politics、Paul McJones編:リレーショナルデータベースとSQLの個人的な歴史に焦点を当てた同窓会の記録
- アメリカ規格協会(ANSI)。X3H2記録、1978~1995年チャールズ・バベッジ研究所コレクションは、H2委員会によるNDLおよびSQL標準の開発を記録しています。
- ドナルド・D・チェンバリン氏によるチャールズ・バベッジ研究所のオーラル・ヒストリー・インタビュー。このオーラル・ヒストリーでは、チェンバリン氏が自身の幼少期、ハーベイ・マッド・カレッジとスタンフォード大学での教育、そしてリレーショナル・データベース技術に関する研究について語ります。チェンバリン氏はSystem R研究チームのメンバーであり、レイモンド・F・ボイス氏と共にSQLデータベース言語を開発しました。また、チェンバリン氏はXMLクエリ言語に関する最近の研究についても簡単に触れています。