基本概念


SQL の文

SQL の文はプログラミング言語とは異なり、常にひとつの文で操作が完結します
つまり、MS-DOS や UNIX のコマンドのように、対話型の操作を行うことができます

文は、キーワード識別子リテラルのいずれかで構成されます
キーワードとは、SQL によって予約されている命令のことです
つまり、コマンドです

識別子とは、データベースの選択や表の選択などに使われる名前を指します
表などを選択するには、それぞれに一意の名前がなければいけません

リテラルは、定数のことです
定数とは、数値、文字、文字列、日付、論理値などのことです
150 という値や Kitty on your lap という文字列はリテラルに分類されます

SQL の文は、これらの組み合わせで構成されます


階層モデル

SQL99 では、アトミックにアクセスするまでの手順が明確に階層化されています
この階層は、上層部から順に下層部の集合を管理する形になっています

クラスタカタログの集合を管理します。この層では、カタログへのユーザー認証などを行わなければなりません。
カタログスキーマの集合を表します。
スキーマユーザーごとのオブジェクトの集合を管理します。すなわちスキーマとは個々のユーザーであると考えられます。
オブジェクトデータベースが管理するデータや SQL の機能の集合です。スキーマ・オブジェクトとも呼ばれ、表、ビュー、モジュール、ルーチンが含まれます。

データベースが管理する表はオブジェクトに含まれます
新しいオブジェクトを作成するには、スキーマの選択などを行う必要があります


識別子

スキーマやオブジェクトの選択に識別子を用いなければなりません
SQL99 では、識別子は128文字以内の一意の名前であると定めています

一意の名前とは、集合内で一意の名前ということになります
例えば、新しい表を作るときはオブジェクトの名前に分類されるため
スキーマ内の他のオブジェクトに衝突しない名前ということになります
他のスキーマに同じ名前のオブジェクトが存在することは、問題になりません

識別子には数字、英字、記号を含めることができます
ただし、最初の文字は文字、またはアンダーラインなどの特殊記号で始まります
数字を最初の文字に指定することはできません
また、予約語や、空白文字などを指定することもできません

これらを識別規則と呼びますが、識別規則さえ守れば
後は表の内容を表すわかりやすい名前を心がけるだけでよいでしょう
例えば Politician_2002 というように、表名と年代などに分けると便利です

因みに、大文字と小文字の区別はハッキリさせましょう
通常、大文字と小文字は区別されませんが、実装によっては区別されてしまいます


リテラル

リテラルは SQL 文からデータを指定する場合などに利用します
SQL99 では、数値、文字列、真偽値、日付などに分類されます

数値リテラルは、整数型と概数型に分けられます
整数型はその名のとおり、正負の整数です
10、+50、-1800 などはすべて整数型の数値となります

概数値は小数点、または指数を含む数値型を表します
0.34、52e-3、-6E2、などはすべて概数型となります
指数表記に用いる E は大文字でも小文字でもかまいません

数値リテラルでは金銭を表すことも可能で $5000 なども許容されます
また、数値リテラル中にカンマ , をつけることも、多くの実装で許容されています
ただし、SQL99 の定義ではリテラル中にカンマをつけることは許されません
数値リテラルは 0 〜 9 までの数字と +、-、$、. で構成されなければなりません

文字列リテラル はテキストを表すデータです
このリテラルは文字列を引用符 ' で囲まなければなりません
このとき、1文字のリテラルは文字リテラルと呼びます
'Kitty on your lap' や '500' などは文字列リテラルに分類されます

文字列リテラル '100' と数値リテラル 100 はデータ型として異なる存在です
算術演算を行うには数値型でなければならず、文字列は計算することができません
単一引用符 ' を文字列中に含めたい場合は、これを連続して指定します
例えば I'm cat という文字列を指定したい場合 'I''m cat' と指定すればよいのです

真偽リテラル は、二者択一を表しますデータ型です
真は TRUE、偽は FALSE で表現され、不明な場合は UNKNOWN となります
これらのアルファベットはキーワードとして登録されています



前のページへ戻る次のページへ