SQL - オペレータ

こんにちは、未来のデータの魔法使いさんたち!今日は、SQLオペレータの不思議な世界に飛び込みます。コードを書いたことがない人も心配しないでください - 最初から始めて、少しずつ進めていきます。このチュートリアルの最後に、データを自在に操ることができるようになるでしょう!

SQL - Operators

SQLオペレータとは?

まず基本から始めましょう。SQLオペレータは、データベースツールボックスの中の特別なツールです。比較や数学的な計算、情報の結合などの操作を行うのに役立ちます。オペレータをSQL文の動詞と考えましょう - アクションを起こすものです!

例えば、「30歳以上の全顧客を教えてください」と言う場合、「30歳以上」という部分がオペレータです。データベースにどのようにフィルタリングするかを指示しています。

SQLにおけるオペレータの種類

では、SQLにおける異なるオペレータを見ていきましょう。それらをカテゴリ分けし、それぞれの例を提供します。シートベルトを締めて、オペレータの遊園地に乗り出しましょう!

1. 算術オペレータ

これらのオペレータはデータの数学的な計算に役立ちます。以下に算術オペレータのテーブルを示します:

オペレータ 説明
+ 加算 5 + 3 = 8
- 減算 7 - 2 = 5
* 掛け算 4 * 6 = 24
/ 除算 15 / 3 = 5
% 剰余 17 % 5 = 2

これらを見てみましょう:

SELECT product_name, price, price * 1.1 AS price_with_tax
FROM products;

この例では、10%の税込み価格を計算しています。*オペレータで元の価格に1.1を掛けます。

2. 比較オペレータ

これらのオペレータは値の比較に役立ちます。データのフィルタリングに非常に便利です。以下に比較オペレータのテーブルを示します:

オペレータ 説明
= 等しい age = 30
<> 等しくない status <> 'Completed'
> より大きい price > 100
< より小さい quantity < 5
>= より大きいまたは等しい rating >= 4
<= より小さいまたは等しい discount <= 0.2

これらをクエリに使ってみましょう:

SELECT customer_name, age
FROM customers
WHERE age > 30 AND status = 'Active';

このクエリは、30歳以上で「Active」ステータスの顧客をすべて見つけます。>オペレータは30歳以上をチェックし、=オペレータは「Active」というステータスを確認します。

3. 論理オペレータ

論理オペレータは複数の条件を結合するのに役立ちます。複雑なクエリをまとめる接着剤のようなものです。以下に論理オペレータのテーブルを示します:

オペレータ 説明
AND 両方の条件が真の場合に真
OR どちらかの条件が真の場合に真
NOT 条件の結果を反転

これらを使ってみましょう:

SELECT product_name, price, category
FROM products
WHERE (category = 'Electronics' OR category = 'Computers')
AND price < 1000
AND NOT discontinued;

このクエリは、ElectronicsまたはComputersカテゴリで、価格が$1000未満で、廃止されていない製品を見つけます。データベースに「銀行破りしていない coolなガジェットで、銀行を破らないで済むもの」を指示するようなものです。

4. LIKEオペレータ

LIKEオペレータは、テキストデータ内のパターンを検索するのに最適な友達です。ワイルドカードを使用して文字列の一部を一致させます:

  • % : 任意の数の文字を一致
  • _ : 単一の文字を一致

以下に例を示します:

SELECT customer_name, email
FROM customers
WHERE email LIKE '%@gmail.com';

このクエリは、Gmailアドレスを持つすべての顧客を見つけます。%ワイルドカードは@gmail.com之前的任意の文字を一致させます。

5. INオペレータ

INオペレータは、複数のOR条件を短く結合する方法で、値のリスト内で一致を探すのに非常に便利です。

SELECT product_name, category
FROM products
WHERE category IN ('Books', 'Movies', 'Music');

このクエリは、Books、Movies、またはMusicカテゴリのすべての製品を取得します。category = 'Books' OR category = 'Movies' OR category = 'Music'を書くよりもきれいです。

6. BETWEENオペレータ

BETWEENオペレータは範囲内の値を見つけるのに役立ちます。これは含まれる範囲です。

SELECT order_id, order_date, total_amount
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

このクエリは、2023年に注文されたすべての注文を見つけます。新年の朝から新年の宵までを示すようなものです!

SQLオペレータの優先順位

これら素晴らしいオペレータを紹介したところで、クエリ内で複数のオペレータを使用する際に、SQLがどの順番で評価するかを知ることは重要です。これをオペレータの優先順位と言います。

以下にSQLオペレータの優先順位の簡略化されたテーブルを示します。最も高い優先順位から最も低い優先順位まで:

  1. 括弧 ()
  2. 掛け算/除算 (*, /)
  3. 加算/減算 (+, -)
  4. 比較オペレータ (=, <>, <, >, <=, >=)
  5. NOT
  6. AND
  7. OR

これを実際に見てみましょう:

SELECT product_name, price, category
FROM products
WHERE category = 'Electronics' AND (price < 500 OR rating > 4);

このクエリでは、SQLは次のように評価します:

  1. 括弧内の条件(price < 500 OR rating > 4)を最初に評価
  2. その後、ANDオペレータをカテゴリ条件と結合

これにより、500ドル未満または評価が4以上の電子機器製品を取得します。

そして、ここまでで、SQLオペレータのクラスが終了しました。これらのツールを持つことで、データ操作の名人になるための道筋が開けました。実践が大事ですので、これらのオペレータを自分のクエリで試してみてください。ハッピーコーディング!

Credits: Image by storyset