
❻
固定長文字列型で定義されたcol_1に対する条件を書く場合の例を示します。
SELECT * FROM SomeTable WHERE col_1 = 10;
SELECT * FROM SomeTable WHERE col_1 = '10';
SELECT * FROM SomeTable WHERE col_1 = CAST(10, AS CHAR(2));
データ型の異なる列値をSQLにおいて選択条件または結合条件として利用する場
合、数値型
⇔
文字列型、文字列型
⇔
日付型のように、型変換を行なって型を統一す
る必要があります。これは、通常はSQL 文の中で関数を使って明示的に行ないます
が、明示的な型変換を行なわなくても、SQL 文がエラーになるわけではありません。
列とデータ型の異なる値を条件に指定した場合、DBMSは内部的に暗黙の型変
換を行ないます。しかし、その場合はインデックスは使用されなくなります。これ
を回避するためには、明示的に条件に使用する値のデータ型を列のデータ型に合わ
せてやる必要があります。
これで B-treeインデックスの設計方針について一通りのことを学びました。あと
何点か、ちょっとした注意事項を述べておきたいと思います。
実は、DBMSは主キー制約や一意制約を作成する際、内部的にはB-treeイン
デックスを作成しています。B