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