Ключевое слово
WHERE в SQL используется для фильтрации записей в запросах. Оно позволяет ограничивать результаты запроса только теми строками, которые удовлетворяют определенным условиям. Ключевое слово WHERE может применяться в операторах SELECT, UPDATE, DELETE, а также в других контекстах.🚩Принципы
🟠Фильтрация строк
WHERE задает условие, которое проверяется для каждой строки в таблице. Только те строки, которые удовлетворяют условию, включаются в результирующий набор данных.🟠Операторы и выражения
Условия в
WHERE могут содержать различные операторы, такие как сравнения (=, <>, >, <, >=, <=), логические операторы (AND, OR, NOT), а также функции и другие выражения.🟠Работа с NULL
Для проверки на
NULL используется оператор IS NULL или IS NOT NULL.🚩Примеры использования `WHERE`
SELECT с условием SELECT * FROM employees
WHERE salary > 50000;
UPDATE с условием UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Sales';
DELETE с условием DELETE FROM employees
WHERE hire_date < '2020-01-01';
Использование
AND и OR SELECT * FROM employees
WHERE department = 'IT' AND salary > 60000;
Этот запрос выбирает всех сотрудников из отдела IT с зарплатой более 60,000.
SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR';
Проверка на
NULL SELECT * FROM employees
WHERE manager_id IS NULL;
🚩Пример использования в Python с библиотекой sqlite3
import sqlite3
# Создание соединения с базой данных SQLite
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Создание таблицы
cursor.execute('''
CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY,
name TEXT,
department TEXT,
salary REAL,
hire_date TEXT
)
''')
# Вставка данных
cursor.execute('''
INSERT INTO employees (name, department, salary, hire_date)
VALUES ('John Doe', 'IT', 75000, '2021-05-01')
''')
cursor.execute('''
INSERT INTO employees (name, department, salary, hire_date)
VALUES ('Jane Smith', 'HR', 50000, '2019-03-15')
''')
conn.commit()
# Запрос данных с использованием WHERE
cursor.execute('''
SELECT * FROM employees WHERE salary > 60000
''')
# Получение и вывод результатов
rows = cursor.fetchall()
for row in rows:
print(row)
# Закрытие соединения
conn.close()
Ставь 👍 и забирай 📚 Базу знаний