SQL - オペレータ
こんにちは、未来のデータの魔法使いさんたち!今日は、SQLオペレータの不思議な世界に飛び込みます。コードを書いたことがない人も心配しないでください - 最初から始めて、少しずつ進めていきます。このチュートリアルの最後に、データを自在に操ることができるようになるでしょう!
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オペレータの優先順位の簡略化されたテーブルを示します。最も高い優先順位から最も低い優先順位まで:
- 括弧 ()
- 掛け算/除算 (*, /)
- 加算/減算 (+, -)
- 比較オペレータ (=, <>, <, >, <=, >=)
- NOT
- AND
- OR
これを実際に見てみましょう:
SELECT product_name, price, category
FROM products
WHERE category = 'Electronics' AND (price < 500 OR rating > 4);
このクエリでは、SQLは次のように評価します:
- 括弧内の条件(price < 500 OR rating > 4)を最初に評価
- その後、ANDオペレータをカテゴリ条件と結合
これにより、500ドル未満または評価が4以上の電子機器製品を取得します。
そして、ここまでで、SQLオペレータのクラスが終了しました。これらのツールを持つことで、データ操作の名人になるための道筋が開けました。実践が大事ですので、これらのオペレータを自分のクエリで試してみてください。ハッピーコーディング!
Credits: Image by storyset