Node.js - MySQL WHERE
こんにちは、熱心なプログラマー候補者诸位!今日は、Node.jsとMySQLのエキサイティングな世界に飛び込み、強力な「WHERE」句に焦点を当てます。あなたの近所の親切なコンピュータサイエンスの先生として、この旅をステップバイステップで案内します。プログラミングが初めての方也不用担心——基本から始めて、段階的に進めていきます。まずはお気に入りの飲み物を用意して、リラックスし、始めましょう!
WHERE句の紹介
本格的な内容に入る前に、WHERE句とは何かを理解しましょう。巨大な図書館(データベース)があり、特定の種類の本(データ)を探しているとします。WHERE句は、あなたの個人的な司書のように、必要なものを正確に見つける手助けをしてくれます。
MySQLでは、WHERE句は記録をフィルタリングし、テーブルから必要なデータだけを取得するために使用されます。まるでデータベースに「この特定の情報だけを見せてくれ」と言っているようなものです。
簡単な例から始めましょう:
const mysql = require('mysql');
// 接続を作成
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// データベースに接続
connection.connect((err) => {
if (err) throw err;
console.log('データベースに接続しました!');
// WHERE句を含むSQLクエリ
const sql = "SELECT * FROM customers WHERE country='USA'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("USAからの顧客:", result);
});
});
この例では、アメリカのすべての顧客を選択しています。WHERE句 country='USA'
は、結果をアメリカの顧客にフィルタリングします。まるで司書にアメリカの作家の本だけを探してもらうようなものです。
論理演算子
さらに面白くするために、論理演算子を紹介します。これらは、司書にさらに特定の本を見つけるための特別な指示を与えるようなものです。
AND演算子
AND演算子を使うと、複数の条件を結合できます。まるで「アメリカの作家による本で、2000年以降に出版された本を探して」と言うようなものです。
const sql = "SELECT * FROM customers WHERE country='USA' AND city='New York'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("USAとニューヨーク市からの顧客:", result);
});
このクエリは、アメリカでありニューヨーク市に住む顧客を返します。
OR演算子
OR演算子はより多くの選択肢を提供します。まるで「アメリカの作家による本または2000年以降に出版された本を探して」と言うようなものです。
const sql = "SELECT * FROM products WHERE price < 20 OR category='Electronics'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("安価または電子製品:", result);
});
このクエリは、20ドル未満の価格または電子製品カテゴリの製品を取得します。
NOT演算子
NOT演算子は除法に使用されます。まるで「特定の作家による本以外のすべての本を探して」と言うようなものです。
const sql = "SELECT * FROM employees WHERE NOT department='HR'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("HR部門以外の従業員:", result);
});
このクエリは、HR部門に所属しないすべての従業員を取得します。
BETWEEN演算子
BETWEEN演算子は範囲クエリに最適です。まるで「1990年から2000年之间に出版された本を探して」と言うようなものです。
const sql = "SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("2023年の注文:", result);
});
このクエリは、2023年に注文されたすべての注文を取得します。
LIKE演算子
LIKE演算子はパターンマッチングのスーパーヒーローです。まるで「特定の単語を含むタイトルの本を探して」と言うようなものです。
const sql = "SELECT * FROM products WHERE product_name LIKE '%phone%'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("電話に関連する製品:", result);
});
このクエリは、名前に「phone」を含むすべての製品を見つけます。'%'は任意の文字列を表します。
IN演算子
IN演算子はリストの値をチェックするのに非常に便利です。まるで「特定の作家の一覧の本を探して」と言うようなものです。
const sql = "SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'Mexico')";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("北米の顧客:", result);
});
このクエリは、アメリカ、カナダ、メキシコの顧客を取得します。
複数の演算子の組み合わせ
では、すべてを合わせてみましょう!これらの演算子を組み合わせて複雑なクエリを作成できます。まるで司書に非常に特定された指示を与えるようなものです。
const sql = `
SELECT * FROM products
WHERE (category = 'Electronics' OR category = 'Computers')
AND price BETWEEN 100 AND 1000
AND product_name LIKE '%Pro%'
AND brand IN ('Apple', 'Samsung', 'Dell')
`;
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("特定的高端製品:", result);
});
この複雑なクエリは以下の条件を満たす製品を見つけます:
- 電子製品またはコンピュータカテゴリ
- 価格が100から1000ドルの間
- 名に「Pro」が含まれる
- Apple、Samsung、Dellのブランド
WHERE句メソッドのまとめ
ここで学んだメソッドを簡単にまとめます:
メソッド | 説明 | 例 |
---|---|---|
基本的なWHERE | 単純な条件 | WHERE country='USA' |
AND | 条件を結合 | WHERE country='USA' AND city='New York' |
OR | いずれかの条件 | WHERE price < 20 OR category='Electronics' |
NOT | 条件を除く | WHERE NOT department='HR' |
BETWEEN | 値の範囲 | WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31' |
LIKE | パターンマッチ | WHERE product_name LIKE '%phone%' |
IN | 値のリスト | WHERE country IN ('USA', 'Canada', 'Mexico') |
練習すれば完璧になります!これらのメソッドをさまざまな方法で組み合わせて、自分自身の複雑なクエリを作成してみてください。データの巨大な図書館で、あなたの個人的な司書のように、必要な情報を見つけることができるようになります!
このチュートリアルが役立ったことを願っています。codingを続け、学び続け、プロセスを楽しんでください。それでは、データベースをクエリするプロになろう!
Credits: Image by storyset