SQLite - 演算子

こんにちは、未来のデータベース魔法使いたち!今日は、SQLiteの魔法の世界に踏み込んでみましょう。あなたの近所の親切なコンピュータ教師として、この旅を案内します。コードを書いたことがない方でも大丈夫です。那么、仮想の魔杖(キーボード)を手に取り、SQLiteの魔法をかけましょう!

SQLite - Operators

SQLiteでの演算子とは?

深淵に飛び込む前に、基礎から始めましょう。SQLite(そして一般的なプログラミング)では、演算子は特定の操作や比較を行う指示をコンピュータに伝える特別な記号やキーワードです。演算子はデータベースの言語における動詞のように考えられ、物事を動かします。

例えば、SQLiteで"+"記号を見かけた場合、それは単なる小さな十字記号ではありません。データベースに「これらを足し合わせろ」と指示しています。同様に"、"記号を見かけた場合、それは単なる二本の線ではありません。「これらの二つのものが等しいか?」と尋ねています。

それでは、SQLiteのさまざまな種類の演算子を探ってみましょう。楽しいんですよ!

SQLiteの算術演算子

SQLiteの算術演算子は、学校で学んだ基本的な数学的操作と同じですが、今ではあなたのデータに魔法をかけます。動作を見てみましょう:

演算子 説明
+ 加算 SELECT 5 + 3; -- 8を返します
- 減算 SELECT 10 - 4; -- 6を返します
* 掛け算 SELECT 6 * 2; -- 12を返します
/ 除算 SELECT 15 / 3; -- 5を返します
% 剰余(モジュラス) SELECT 17 % 5; -- 2を返します

実際の例でこれらを分解してみましょう:

-- 'products'という名前のテーブルがあり、'price'と'quantity'というカラムがあるとします
SELECT name, price * quantity AS total_value
FROM products;

この例では、掛け算演算子(*)を使用して各製品の総価値を計算しています。SQLiteは各行で価格を数量で割り算し、総価値を返します。

-- 平均価格を計算
SELECT AVG(price) AS average_price
FROM products;

-- 2桁に丸めます
SELECT ROUND(AVG(price), 2) AS rounded_average_price
FROM products;

ここでは、除算演算子が裏で動作している(AVG関数は合計を数で割る)そして結果を丸めます。SQLiteに数学の宿題をやらせるようなものです!

SQLiteの比較演算子

比較演算子は、SQLiteの世界での判断的な友達です。常に物を比較しています。以下にその picky な演算子の表を示します:

演算子 説明
= 等しい SELECT * FROM products WHERE price = 10;
!= or <> 等しくない SELECT * FROM products WHERE category != 'Electronics';
< 小于 SELECT * FROM products WHERE price < 50;
> 大于 SELECT * FROM employees WHERE salary > 50000;
<= 小于または等しい SELECT * FROM inventory WHERE quantity <= 5;
>= 大于または等しい SELECT * FROM orders WHERE order_date >= '2023-01-01';

これらを実行動作を見てみましょう:

-- 在庫切れの製品をすべて見つける
SELECT name, quantity
FROM products
WHERE quantity = 0;

-- IT部門に所属していないすべての従業員を見つける
SELECT name, department
FROM employees
WHERE department <> 'IT';

-- 先週に注文されたすべての注文を見つける
SELECT order_id, order_date
FROM orders
WHERE order_date >= DATE('now', '-7 days');

これらの例では、比較演算子を使用してデータをフィルタリングしています。SQLiteに「この特定のものだけを見せてくれ」と指示するようなものです!

SQLiteの論理演算子

論理演算子は、SQLiteの意思決定者です。条件を結合し、より複雑なクエリを作成するのに役立ちます。以下に論理演算子の仲間を紹介します:

演算子 説明
AND すべての条件が真の場合に真 SELECT * FROM products WHERE price > 100 AND category = 'Electronics';
OR いずれかの条件が真の場合に真 SELECT * FROM customers WHERE country = 'USA' OR country = 'Canada';
NOT 条件を否定 SELECT * FROM employees WHERE NOT department = 'Sales';

これらを実行動作を見てみましょう:

-- 高価な電子機器を見つける
SELECT name, price, category
FROM products
WHERE price > 500 AND category = 'Electronics';

-- 北米のすべての顧客を見つける
SELECT name, country
FROM customers
WHERE country = 'USA' OR country = 'Canada' OR country = 'Mexico';

-- 営業部門またはマーケティング部門に所属していないすべての従業員を見つける
SELECT name, department
FROM employees
WHERE NOT (department = 'Sales' OR department = 'Marketing');

これらの例では、条件を結合して正確なデータを取得しています。これは、探偵が手がかりを集めて謎を解決するようなものです!

SQLiteのビット演算子

今、数値の二進表現を操作するビット演算子の領域に踏み込みます。これらの演算子は日常のSQLiteクエリではあまり使用されませんが、特定の操作には強力なツールです。

演算子 説明
& ビットwise AND SELECT 5 & 3; -- 1を返します
| ビットwise OR SELECT 5 | 3; -- 7を返します
~ ビットwise NOT SELECT ~5; -- -6を返します
<< 左シフト SELECT 5 << 1; -- 10を返します
>> 右シフト SELECT 5 >> 1; -- 2を返します

ビット演算子の操作を見てみましょう:

-- ビットwise ANDを使用して数が奇数か偶数かをチェック
SELECT
number,
CASE
WHEN number & 1 = 1 THEN 'Odd'
ELSE 'Even'
END AS parity
FROM (
SELECT 1 AS number
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
);

この例では、ビットwise AND演算子を使用して数が奇数か偶数かをチェックしています。数 AND 1が1に等しい場合、それは奇数です。それ以外の場合は偶数です。SQLiteに指を当てて数えるように指示するようなものです!

そして、ここまでが、SQLiteの演算子の世界です。算術からビット操作まで、さまざまな領域を旅しました。練習すれば完璧になりますので、これらの演算子を自分のクエリで実験してみてください。そうすれば、データベースの魔法使いとしての力を引き出すことができるでしょう!

Credits: Image by storyset