SQL は Structured Query Language の略である。 リレーショナルデータベースを定義したり操作したりする言語である。
SQL はデータベースに特化した言語である。プログラミング言語としては異端で、非手続型言語である。 手続型言語は言語の文法に従ってひとつひとつ処理をしていくが、 非手続型言語は、条件を指定すればその条件をあった処理を一度にする行なうことに特徴がある。そのため、 手続型言語に慣れたプログラマは、SQL では発想の切り替えが必要になる。
SQL の側面として、データを操作することと、データを定義することがある。
いったん SQL を離れて、集合の要素の操作を考えよう。集合内の要素の操作は次のように分類できる。
システム設計一般では、この 4 種類を称して CRUD (クラッド) という。
SQL では、一つのテーブルに関する行の操作に関して、CRUD は次のようになる。
このうちもっとも使われる操作は Select である。単なる参照ではなく、検索となっていることに注意してほしい。
データの各種状態を定義する場合の CRUD はどうか。データベースのさまざまな属性を抽象的にオブジェクトと呼び、仮に XXX と表す。
ここで、オブジェクトを(参照|検索)する命令がないことに注意。
オブジェクトとして抽象化した単位としてはたとえば、TABLE(表)、INDEX(インデックス)などがある。
IPA のページ https://www.jitec.ipa.go.jp/1_13download/shiken_yougo_ver3_1.pdf では、SQL について次のように定義されている。
4.データベース言語 試験で使用するデータベース言語は,次の仕様に従う。 SQL :JIS X 3005 規格群
この JIS X 3005 規格群はとにかく幅広い。枝番が 1, 2, 3, 4, 9, 10, 13, 14 とある。
実際には JIS X 3005-2:2010 基本機能だけを知ればよいだろうが、それ「だけ」でも大変だ。目次を挙げる。 なお、第5章は JIS では「語い」と表記されている。
まりんきょ学問所 > コンピュータの部屋 > システムの部屋 > データベース > SQL