Node.js - MySQL WHERE
Привет,野心勃勃的程序设计师们! Сегодня мы окунемся в захватывающий мир Node.js и MySQL, сосредоточившись на мощной Clausule WHERE. Как ваш доброжелательный сосед по компьютерным наукам, я здесь, чтобы помочь вам пройти этот путь, шаг за шагом. Не волнуйтесь, если вы новички в программировании - мы начнем с азов и поднимемся выше. Так что возьмите любимый напиток, устроитесь поудобнее и давайте начнем!
Введение в Clausule WHERE
Прежде чем мы углубимся в details, давайте поймем, что такое Clausule WHERE. Представьте, что у вас есть большая библиотека книг (наша база данных), и вы ищете определенный тип книги (наши данные). Clausule WHERE как ваш личный библиотекарь, помогающий вам найти Exactly то, что вам нужно.
В MySQL Clausule WHERE используется для фильтрации записей и извлечения только необходимых данных из таблицы. Это как tell вашей базе данных: "Эй, я хочу видеть только эту конкретную информацию!"
Давайте начнем с простого примера:
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('Connected to the database!');
// SQL запрос с Clausule WHERE
const sql = "SELECT * FROM customers WHERE country='USA'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Customers from USA:", result);
});
});
В этом примере мы выбираем всех клиентов из США. Clausule WHERE country='USA'
фильтрует наши результаты, чтобы показать только американских клиентов. Это как ask вашего библиотекаря за книги только американских авторов.
Логические операторы
Теперь давайте сделаем вещи немного интереснее, introduc логические операторы. Это как especialные инструкции, которые вы даете вашему библиотекарю другу, чтобы найти еще более конкретные книги.
Оператор AND
Оператор AND позволяет нам combine несколько условий. Это как say, "Я хочу книги американских авторов 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("Customers from USA and New York:", result);
});
Этот запрос вернет клиентов, которые одновременно из США и конкретно из Нью-Йорка.
Оператор OR
Оператор OR дает нам больше гибкости. Это как say, "Я хочу книги либо的美国ских авторов OR опубликованные после 2000 года."
const sql = "SELECT * FROM products WHERE price < 20 OR category='Electronics'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Affordable or Electronic products:", result);
});
Этот запрос извлекает товары, которые либо дешевые (менее 20 долларов), либо belong к категории Электроника.
Оператор NOT
Оператор NOT используется для исключения. Это как say, "Я хочу все книги, кроме тех, что написаны конкретным автором."
const sql = "SELECT * FROM employees WHERE NOT department='HR'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Employees not in HR:", result);
});
Этот запрос retrieve все сотрудники, которые не работают в отделе кадров.
Оператор BETWEEN
Оператор BETWEEN идеально подходит для range запросов. Представьте, что вы ask за книги, опубликованные между 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("Orders from 2023:", result);
});
Этот запрос извлекает все заказы, сделанные в 2023 году.
Оператор LIKE
Оператор LIKE - это наш супергерой для подстановки шаблонов. Он идеально подходит, когда вы не уверены в exact значении, но знаете часть его. Это как ask за книги с заголовками, содержащими определенное слово.
const sql = "SELECT * FROM products WHERE product_name LIKE '%phone%'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Products related to phones:", result);
});
Этот запрос находить все продукты с 'phone' в их имени. Символ '%' является wildcards, представляющим любое количество символов.
Оператор IN
Оператор IN великолепен, когда у вас есть список значений для проверки. Это как ask за книги конкретного списка авторов.
const sql = "SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'Mexico')";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("North American customers:", result);
});
Этот запрос извлекает клиентов из США, Канады или Мексики.
Combining Multiple Operators
Теперь давайте соберем все вместе! Мы можем combine эти операторы, чтобы создавать сложные запросы. Это как дать вашему библиотекарю очень конкретные инструкции.
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("Specific high-end products:", result);
});
Этот сложный запрос находить продукты, которые:
- Belong к категории Электроника или Компьютеры
- Цены между 100 и 1000 долларами
- Имеют 'Pro' в их имени
- Изготовлены Apple, Samsung или Dell
Summary of WHERE Clause Methods
Вот удобная таблица, резюмирующая методы, которые мы изучили:
Метод | Описание | Пример |
---|---|---|
Основной WHERE | Простое условие | WHERE country='USA' |
AND | Combines условия | WHERE country='USA' AND city='New York' |
OR | Либо условие | WHERE price < 20 OR category='Electronics' |
NOT | Исключает условие | WHERE NOT department='HR' |
BETWEEN | Diapazon значений | WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31' |
LIKE | Подстановочный шаблон | WHERE product_name LIKE '%phone%' |
IN | Список значений | WHERE country IN ('USA', 'Canada', 'Mexico') |
помните, что практика makes perfect! Попробуйте combine эти методы по-разному, чтобы создать свои собственные сложные запросы. Это как стать master библиотекарем, который может найти любую книгу в обширной библиотеке данных!
Надеюсь, это руководство было полезным и интересным. Продолжайте программировать, продолжайте учиться и не забывайте наслаждаться процессом. Before вы знаете это, вы будете query базы данных, как профи!
Credits: Image by storyset