SQL – 式
式は、値に評価される1つ以上の値、演算子、およびSQL関数の組み合わせです。これらのSQL式は公式のようなもので、クエリ言語で書かれています。また、それらを使用して、データベースに特定のデータセットを照会することもできます。
構文
SELECT文の基本構文を次のように考えてみましょう。
SELECT column1, column2, columnN FROM table_name WHERE [CONDITION|EXPRESSION];
では
以下に述べるように、さまざまな種類のSQL式があります。
- ブール
- 数値
- 日付
ブール式
SQLブール式は、単一の値の一致に基づいてデータをフェッチします。以下は構文です –
SELECT column1, column2, columnN FROM table_name WHERE SINGLE VALUE MATCHING EXPRESSION;
次のレコードを持つCUSTOMERSテーブルについて考えてみましょう
SQL> SELECT * FROM CUSTOMERS; +----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | matsumoto| 32 | osaka | 2000.00 | | 2 | saito | 25 | tokyo | 1500.00 | | 3 | yoshida | 23 | hakata | 2000.00 | | 4 | tanaka | 25 | kyoto | 6500.00 | | 5 | kurihara | 27 | asakusa | 8500.00 | | 6 | yokei | 22 | osaka | 4500.00 | | 7 | makita | 24 | hiroshima | 10000.00 | +----+----------+-----+-----------+----------+
例えばこのように SELECT * FROM CUSTOMERS WHERE SALARY = 10000;と指定すれば検索ができます。SELECT * FROM [今回はカスタマーテーブル]WHERE[その中のキー] = 値
+—-+——-+—–+———+———-+
| ID | NAME | AGE | ADDRESS | SALARY |
+—-+——-+—–+———+———-+
| 7 | makita| 24 | hiroshima | 10000.00 |
+—-+——-+—–+———+———-+
例えばSELECT * FROM CUSTOMERS WHERE NAME = makita;
と指定すれば 7 | makita | 24 | hiroshima | 10000.00 の情報が出てきます。
SQL> SELECT * FROM CUSTOMERS WHERE SALARY = 10000;
数値式
これらの式は、どのクエリでも任意の数学演算を実行するために使用されます。以下は構文です –
SELECT numerical_expression as OPERATION_NAME [FROM table_name WHERE CONDITION] ;
ここで、numerical_expressionは、数式または任意の数式に使用されます。次に、SQL数値式の使用法を示す簡単な例を示します。
SQL> SELECT (15 + 6) AS salary +----------+ | salary | +----------+ | 21 | +----------+
テーブルまたは特定のテーブルの列に対する集計データの計算を実行するために、avg()、sum()、count()などの組み込み関数がいくつかあります。今回はCUSTOMERSの数を数えてます
SQL> SELECT COUNT(*) AS "RECORDS" FROM CUSTOMERS; +---------+ | RECORDS | +---------+ | 7 | +---------+ 1 row in set (0.00 sec)
日付表現
日付式は現在のシステムの日付と時刻の値を返します。これはSELECTのあとに以下文を入れれば表示されます。
SQL> SELECT CURRENT_TIMESTAMP; +---------------------+ | Current_Timestamp | +---------------------+ | 2009-11-12 06:40:23 | +---------------------+ 1 row in set (0.00 sec)
もう一つの日付式は以下の通りです –
SQL> SELECT GETDATE();; +-------------------------+ | GETDATE | +-------------------------+ | 2009-10-22 12:07:18.140 | +-------------------------+ 1 row in set (0.00 sec)