ほとんどのプログラミング言語と同様、SQL にはデータを処理するための関数があります。 SQL ステートメントとは異なり、関数はすべての種類の DBMS に対して標準化されていないことに注意してください。つまり、データに対して同じ操作を実行するために、異なる DBMS には独自の関数名があります。これは、ある DBMS で記述されたクエリ コードが別の DBMS では機能しない可能性があることを意味し、将来的にはこの点を考慮する必要があります。これは主に、テキスト値の処理、データ型の変換、日付の操作を行う関数に当てはまります。
ほとんどの DBMS は、次の関数タイプの標準セットをサポートしています。
MS Access の SQL 実装には、テキスト処理用の次の関数があります。
関数 | 説明 |
---|---|
Left() | テキスト内の文字を左から選択します |
Right() | 右側のテキスト内の文字を選択します |
Mid() | テキストの途中から文字を選択します |
UCase() | 文字を大文字に変換します |
LCase() | 文字を小文字に変換します |
LTrim() | テキストの左側にある空白文字をすべて削除します |
RTrim() | テキストの右側にある空白文字をすべて削除します |
Trim() | テキストの両側からすべての空白文字を削除します |
UCase() 関数を使用して製品名を大文字に変換してみましょう。
Run SQLSELECT Product, UCase(Product) AS Product_UCase
FROM Sumproduct
LEFT() 関数を使用して、テキストの最初の 3 文字を区切ってみましょう。
Run SQLSELECT Product, LEFT(Product, 3) AS Product_LEFT
FROM Sumproduct
数値処理関数は、数値データに対して数学的演算を実行するように設計されています。これらの関数は代数的および幾何学的計算用に設計されているため、日付と時刻を処理する関数よりも使用頻度ははるかに低くなります。ただし、数値関数は SQL のすべてのバージョンで最も標準化されています。数値関数のリストを見てみましょう。
関数 | 説明 |
---|---|
SQR() | 指定された数値の平方根を返します |
ABS() | 数値の絶対値を返します |
EXP() | 指定された数値の指数を返します |
SIN() | 指定された角度のサインを返します |
COS() | 指定された角度のコサインを返します |
TAN() | 指定された角度のタンジェントを返します |
ここでは主な機能の一部のみをリストしましたが、サポートされている機能の完全なリストと詳細な説明については、いつでも DBMS ドキュメントを参照してください。
たとえば、SQR() 関数を使用して、Amount 列の数値の平方根を取得するクエリを作成してみましょう。
Run SQLSELECT Amount, SQR(Amount) AS Amount_SQR
FROM Sumproduct
日付と時刻の操作関数は、最も重要で頻繁に使用される SQL 関数の 1 つです。データベースでは、日付と時刻の値は特別な形式で保存されるため、追加の処理を行わずに直接使用することはできません。各 DBMS には日付を処理するための独自の関数セットがありますが、残念ながら、日付を他のプラットフォームや SQL 実装に転送することはできません。
MS Access で日付と時刻を処理するためのいくつかの関数のリスト:
関数 | 説明 |
---|---|
DatePart() | 日付の一部を返します: 年、四半期、月、週、日、時、分、秒 |
Year(), Month() | それぞれ年と月を返します |
Hour(), Minute(), Second() | 指定された日付の時、分、秒を返します。 |
WeekdayName() | 曜日の名前を返します |
DatePart() 関数がどのように動作するかの例を見てみましょう。
SELECT Date1, DatePart("m", Date1) AS Month1
FROM Sumproduct
DatePart() 関数には、日付の必要な部分を表示できる追加パラメーターがあります。この例では、月番号を表示するパラメータ「m」の値を使用しました(同様に、年 - 「yyyy」、四半期 - 「q」、日 - 「d」を表示できます)。週 - "w"、時間 - "h"、分 - "n"、秒 - "s" など)。
統計関数は、サンプリングせずに準備済みのデータを取得するのに役立ちます。これらの関数を含む SQL クエリは、さまざまなレポートの分析と生成によく使用されます。このような選択の例としては、テーブル内の行数の決定、特定のフィールドの値の合計の取得、テーブルの指定された列の最大値/最小値または平均値の検索などが挙げられます。また、統計関数は、記述に特別な変更を加えることなく、すべての DBMS でサポートされていることにも注意してください。
DBMS Access の統計関数のリスト:
関数 | 説明 |
---|---|
COUNT() | テーブルまたは列の行数を返します。 |
SUM() | 列内の値の合計を返します |
MIN() | 列内の最小値を返します |
MAX() | 列内の最大値を返します |
AVG() | 列の平均値を返します |
テーブル内のすべての行の数を返します。
Run SQLSELECT COUNT(*) AS Count1
FROM Sumproduct
Product フィールド内の空でないすべての行の数を返します。
SELECT COUNT(Product) AS Count2
FROM Sumproduct
2 つのクエリ間のパフォーマンスの違いを示すために、Product 列の値を 1 つ意図的に削除しました。
Run SQLSELECT SUM(Quantity) AS Sum1
FROM Sumproduct
WHERE Month = 'April'
ご要望に応じて、4月の商品販売総額を表示させていただきました。
Run SQLSELECT SUM(Quantity*Amount) AS Sum2
FROM Sumproduct
ご覧のとおり、統計関数では、標準の算術演算子を使用して複数の列に対して計算を実行することもできます。
Run SQLSELECT MIN(Amount) AS Min1
FROM Sumproduct
Run SQLSELECT MAX(Amount) AS Max1
FROM Sumproduct
Run SQLSELECT AVG(Amount) AS Avg1
FROM Sumproduct