Ch.10 SML#の拡張機能:SQLのシームレスな統合

§ 10.5. その他のSQL文

SQL言語は,データベースからデータを取り出すselect文以外に, 様々な機能が提供されています. SML#の2.0.0版では,以下の機能をサポートしています.

  • タプルの追加と削除

  • テーブルの更新

  • トランザクションの実行

10.1に現在のSQLの構文の概要を示します. (注意: この図の表示にはFireFoxなどのMathMLを表示可能なブラウザが必要です.)

e::=(SML# expressions)|_sqlserver serverDef : τ(server definition)|_sql x => sql(SQL expressions)|_sqleval e(query evaluation)|_sqlexec e(command execution)|#x.l(selection)serverDef::=(key=value,,key=value)sql::=select | insert | update | begin | commit | rollbackselect::=select e [ as l ]  e [ as l ][ from e as x  e as x ][ where e ](other clauses)insert::=insert into #x.l (ll)values ( {e|default}{e|default})update::=update #x.l [ as x ]set (ll) = (ee)[ from e as x  e as x ][ where e ]delete::=delete from #x.l [ as x ][ where e ]

Figure 10.1. SML#第2.0.0版のSQL構文概要

これ以外のSQL言語の機能の追加も技術的には問題はありません. 次版以降でより完全なSQL言語の統合をして行く予定です.