MySQL - NOT演算子
こんにちは、未来のデータベースの魔法使いたち!今日は、MySQLのNOT演算子の魔法の世界に飛び込みます。これは初めてでも心配しないでください - あなたの親切なガイドとしてこの冒険を案内し、最終的にはNOT演算子をプロのように操れるようになります!
MySQL NOT演算子
NOT演算子はMySQLの世界の反逆者です。否定、ものを逆転させ、条件に対して「ノー」と言うことすべてについてです。あなたが教師(私のように!)で、宿題を提出していないすべての生徒を見つけたいときにNOTが便利になります!
簡単な例から始めましょう:
SELECT * FROM students WHERE NOT grade = 'A';
このクエリは、Aを取っていないすべての生徒を取得します。これは「Aを取った生徒以外を表示して」言っているようなものです。すごくないですか?
もう一つの例:
SELECT * FROM products WHERE NOT price > 100;
これは、100ドル以上でないすべての製品を取得します。これは「100ドルまたはそれ以下の価格の製品を表示して」言っているような裏技です。
NOTとIN演算子の組み合わせ
次に、NOTをIN演算子と組み合わせてレベルアップしましょう。IN演算子はVIPリストのようなもので、NOT INは「リストに載っていないすべての人」と言っています。
SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');
このクエリは、りんご、バナナ、オレンジ以外のすべての果物を表示します。これは果物のバスケットからこの3つの果物以外的一切を拾うようなものです。
NOTとIS NULL演算子の組み合わせ
データベース内のNULL値は幽霊のように、存在するが実際には存在しないものです。NOT IS NULL演算子は、幽霊でないすべての値を見つけるのに役立ちます。
SELECT * FROM customers WHERE phone_number IS NOT NULL;
これは、電話番号を提供したすべての顧客を見つけます。これは「マルコ!」と叫んで、誰が「ポロ!」と返信できるかを待っているようなものです。
NOTとLIKE演算子の組み合わせ
LIKE演算子はパターンマッチングに使用され、NOT LIKEはその悪戯の双子です。特定のパターンに一致しないものを見つけるのに最適です。
SELECT * FROM books WHERE title NOT LIKE 'The%';
このクエリは、「The」で始まらないすべてのタイトルの本を見つけます。これは書棚を整理して、「The」で始まる本を片側に置き、他すべてを反対側に置くようなものです。
NOTとBETWEEN演算子の組み合わせ
BETWEENは範囲内の値を見つけるのに役立ち、NOT BETWEENはその逆を行います。これは「子ども専用」エリアを設定し、そのエリアに入れない人を見つけるようなものです。
SELECT * FROM employees WHERE age NOT BETWEEN 25 AND 35;
これは、25歳未満または35歳以上のすべての従業員を見つけます。データをセグメント化するのに素晴らしい方法です!
NOTとUPDATE文の組み合わせ
NOT演算子はSELECT文だけでなく、UPDATE文でも使用できます。例を見てみましょう:
UPDATE inventory SET in_stock = 0 WHERE NOT product_id IN (101, 102, 103);
このクエリは在庫を更新し、製品IDが101、102、103以外のすべての製品を在庫切れに設定します。これは店を片付けるが、特別なアイテムをいくつか残すようなものです。
NOTとDELETE文の組み合わせ
NOTはDELETE文でも使用できます。これはパワフルですが、注意が必要です!
DELETE FROM old_records WHERE NOT date_created > '2020-01-01';
これは2020年以前に作成されたすべての記録を削除します。これは新しいものだけを残し、古いものを大掃除するようなものです。
NOT演算子をクライアントプログラムで使用する
次に、NOT演算子をクライアントプログラムでどのように使用するかを見てみましょう。以下はMySQLコネクタを使用した簡単なPythonの例です:
import mysql.connector
# データベースに接続
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()
# NOTを使用したクエリを実行
query = "SELECT * FROM students WHERE NOT grade = 'F'"
cursor.execute(query)
# 結果を取得して表示
for (id, name, grade) in cursor:
print(f"Student {id}: {name} - Grade: {grade}")
# 接続を閉じる
cursor.close()
cnx.close()
このスクリプトはデータベースに接続し、Fを取っていないすべての生徒を見つけるクエリを実行し、その情報を表示します。これはパスした生徒だけの成績報告の日のようなものです!
そして、みなさん!あなたはMySQLのNOT演算子の旋風ツアーを終えました。データベースの世界では、欲しくないものを知ることも、欲しいものを知ることと同じくらい重要です。NOT演算子は、そういった状況であなたの信頼できる相棒です。
練習を続け、好奇心を持ち続けると、すぐにNOTを使ってデータベースを操ることができるようになります!快適なクエリを楽しんでください!
Credits: Image by storyset