Цель работы: Ознакомиться с основными SQL-запросами (SELECT, INSERT, UPDATE, DELETE) и их использованием в PostgreSQL.
1. Подготовка к работе
Перед началом работы убедитесь, что у вас установлен PostgreSQL и доступен интерфейс pgAdmin или командная строка psql.
2. Создание тестовой базы данных
Для начала создайте новую базу данных и таблицу для выполнения запросов.
sql
CREATE DATABASE test_db;
\c test_db
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(100),
salary NUMERIC
);
3. Выполнение SQL-запросов
3.1. SELECT
Запрос для получения всех сотрудников:
sql
SELECT * FROM employees;
Запрос для получения сотрудников с определенной должностью:
sql
SELECT * FROM employees WHERE position = 'Developer';
3.2. INSERT
Добавление нового сотрудника:
sql
INSERT INTO employees (name, position, salary) VALUES ('Иван Иванов', 'Developer', 60000);
3.3. UPDATE
Обновление информации о сотруднике:
sql
UPDATE employees SET salary = 65000 WHERE name = 'Иван Иванов';
3.4. DELETE
Удаление сотрудника из таблицы:
sql
DELETE FROM employees WHERE name = 'Иван Иванов';
4. Использование различных операторов
4.1. Операторы сравнения
Вы можете использовать операторы, такие как =
, >
, <
, >=
, <=
, <>
в ваших запросах. Например:
sql
SELECT * FROM employees WHERE salary > 50000;
4.2. Логические операторы
Используйте логические операторы AND
, OR
, NOT
для комбинирования условий:
sql
SELECT * FROM employees WHERE position = 'Developer' AND salary > 60000;
5. Заключение
В ходе лабораторной работы вы ознакомились с основными SQL-запросами и их применением в PostgreSQL. Попробуйте экспериментировать с различными запросами и операторами для лучшего понимания работы с базами данных.
Задания для самостоятельной работы
Задание 1: Создание таблицы
Создайте таблицу products
с полями: id
, name
, price
, quantity
. id
должен быть первичным ключом.
Задание 2: Вставка данных
Добавьте в таблицу products
как минимум 5 записей с различными значениями для name
, price
и quantity
.
Задание 3: Выборка данных
Напишите запрос, который выбирает все продукты с ценой выше 100.
Задание 4: Обновление данных
Измените цену одного из продуктов на новое значение. Используйте имя продукта для идентификации.
Задание 5: Удаление данных
Удалите продукт из таблицы products
, у которого количество равно 0.
Задание 6: Сортировка данных
Напишите запрос, который выбирает все продукты и сортирует их по цене в порядке возрастания.
Задание 7: Использование агрегатных функций
Напишите запрос, который вычисляет общую стоимость всех продуктов (умножив price
на quantity
).
Задание 8: Группировка данных
Создайте запрос, который группирует продукты по ценовым категориям (например, низкая, средняя, высокая) и считает количество продуктов в каждой категории.
Задание 9: Использование JOIN
Создайте вторую таблицу categories
с полями id
и category_name
. Свяжите таблицы products
и categories
через поле category_id
в таблице products
.
Задание 10: Подзапросы
Напишите запрос, который выбирает все продукты, цена которых выше средней цены всех продуктов в таблице