Основы запросов
Основы написания, выполнения и управления SQL-запросами с помощью мощного редактора запросов HarborDB.
Добро пожаловать в мир SQL-запросов в HarborDB! Это руководство научит вас основам написания, выполнения и управления SQL-запросами с помощью мощного редактора запросов HarborDB.
Введение в SQL в HarborDB
Редактор запросов HarborDB разработан для того, чтобы сделать написание и выполнение SQL-запросов интуитивно понятным и эффективным. Независимо от того, извлекаете ли вы данные, обновляете записи или создаёте объекты базы данных, HarborDB предоставляет оптимизированный рабочий процесс с такими функциями, как подсветка синтаксиса, автодополнение и результаты в реальном времени.
Ключевые функции редактора запросов
- Подсветка синтаксиса: Ключевые слова SQL, функции и литералы выделены цветом для удобства чтения
- Автодополнение: Имена таблиц, столбцов и ключевые слова SQL предлагаются по мере ввода
- Несколько вкладок: Работайте с несколькими запросами одновременно в отдельных вкладках
- Панель результатов: Просматривайте результаты запросов сразу под редактором
- Опции экспорта: Экспортируйте результаты в CSV или JSON одним щелчком
- История запросов: Доступ к недавно выполненным запросам
- Закладки: Сохраняйте часто используемые запросы для быстрого доступа
Написание первого запроса
Базовый оператор SELECT
Самый фундаментальный SQL-запрос извлекает данные из таблицы:
SELECT * FROM users;
Этот запрос:
- SELECT *: Возвращает все столбцы из таблицы
- FROM users: Указывает таблицу для запроса
- ;: Завершает оператор (опционально в HarborDB)
Выбор конкретных столбцов
Чтобы получить только конкретные столбцы:
SELECT first_name, last_name, email FROM users;
Ограничение результатов
При работе с большими таблицами рекомендуется ограничивать результаты:
SELECT * FROM orders LIMIT 10;
Интерфейс редактора запросов
Основные компоненты
- Область редактора: Пишите свои SQL-запросы здесь
- Панель инструментов: Управление выполнением, отменой, форматированием и экспортом
- Панель результатов: Отображает результаты запросов и информацию о выполнении
- Строка состояния: Показывает информацию о подключении, количество строк и время выполнения
Сочетания клавиш
| Сочетание клавиш | Действие |
| ---------------- | ------------------------- |
| ⌘ + R | Выполнить запрос |
| ⌘ + . | Отменить запрос |
| ⌘ + T | Новая вкладка запроса |
| ⌘ + W | Закрыть текущую вкладку |
| ⌘ + S | Сохранить запрос |
| ⌘ + F | Найти в запросе |
| ⌘ + / | Переключить комментарий |
| Tab | Увеличить отступ |
| Shift + Tab | Уменьшить отступ |
Выполнение запросов
Пошаговое выполнение
- Напишите свой запрос в редакторе
- Нажмите кнопку "Выполнить" (▶) или нажмите
⌘ + R - Просмотрите результаты в панели результатов
- Проверьте информацию о выполнении в строке состояния
Выполнение части запроса
Вы можете выполнить только часть запроса:
- Выделите текст, который хотите выполнить
- Щёлкните правой кнопкой мыши и выберите "Выполнить выделенное"
- Или используйте сочетание клавиш
⌘ + Shift + R
Результаты выполнения
После выполнения запроса вы увидите:
- Сетка результатов: Данные отображаются в сортируемой и фильтруемой таблице
- Количество строк: Общее количество возвращённых строк
- Время выполнения: Сколько времени заняло выполнение запроса
- Сообщения: Любые сообщения от PostgreSQL (особенно для DML-запросов)
Фильтрация данных с помощью WHERE
Базовое условие WHERE
SELECT * FROM products WHERE price > 100;
Несколько условий
SELECT * FROM orders
WHERE status = 'shipped'
AND order_date >= '2024-01-01';
Сопоставление шаблонов с LIKE
SELECT * FROM customers
WHERE email LIKE '%@gmail.com';
SELECT * FROM products
WHERE name LIKE 'Pro%';
NULL-значения
-- Найти строки, где email равен NULL
SELECT * FROM users WHERE email IS NULL;
-- Найти строки, где email не равен NULL
SELECT * FROM users WHERE email IS NOT NULL;
Сортировка результатов с ORDER BY
Возрастающий порядок (по умолчанию)
SELECT * FROM products ORDER BY price;
Убывающий порядок
SELECT * FROM products ORDER BY price DESC;
Несколько столбцов сортировки
SELECT * FROM employees
ORDER BY department, last_name, first_name;
Работа с результатами
Просмотр результатов
- Прокрутка: Навигация по результатам с помощью мыши или клавиатуры
- Сортировка: Щёлкните по заголовкам столбцов для сортировки по возрастанию/убыванию
- Фильтрация: Щёлкните правой кнопкой мыши по заголовкам столбцов для фильтрации значений
- Изменение размера: Перетащите границы столбцов для настройки ширины
- Переупорядочивание: Перетащите заголовки столбцов для изменения порядка столбцов
Операции с ячейками
- Копировать ячейку: Дважды щёлкните по ячейке или нажмите
⌘ + C - Редактировать ячейку: Дважды щёлкните и редактируйте (только для локальных изменений)
- Просмотреть полное содержимое: Наведите указатель на обрезанные ячейки, чтобы увидеть подсказку
Экспорт результатов
- Нажмите кнопку "Экспорт" на панели инструментов
- Выберите формат: CSV или JSON
- Выберите назначение: Сохранить в файл или скопировать в буфер обмена
- Настройте параметры: Разделители, кодировка, заголовки
Сохранение и организация запросов
Сохранение запросов
- Нажмите "Сохранить" (
⌘ + S) или значок сохранения - Выберите расположение: Локальный файл или библиотека HarborDB
- Добавьте метаданные: Имя, описание, теги
Библиотека запросов
Организуйте сохранённые запросы в папках:
- Избранное: Отмечайте часто используемые запросы
- Недавние: Автоматически отслеживайте недавно использованные запросы
- Теги: Категоризируйте запросы с помощью пользовательских тегов
Шаблоны запросов
Создавайте повторно используемые шаблоны для распространённых запросов:
-- Шаблон: Найти неактивных пользователей
SELECT user_id, email, last_login
FROM users
WHERE last_login < CURRENT_DATE - INTERVAL '90 days'
AND active = true;
Распространённые шаблоны запросов
Подсчёт записей
SELECT COUNT(*) FROM users;
SELECT COUNT(DISTINCT country) FROM customers;
Агрегация данных
SELECT
category,
COUNT(*) as product_count,
AVG(price) as avg_price,
MIN(price) as min_price,
MAX(price) as max_price
FROM products
GROUP BY category;
Запросы даты/времени
-- Заказы за сегодня
SELECT * FROM orders WHERE order_date = CURRENT_DATE;
-- Последние 7 дней
SELECT * FROM logs
WHERE log_date >= CURRENT_DATE - INTERVAL '7 days';
-- По месяцам
SELECT
EXTRACT(MONTH FROM order_date) as month,
COUNT(*) as order_count
FROM orders
GROUP BY EXTRACT(MONTH FROM order_date)
ORDER BY month;
Объединение таблиц
SELECT
o.order_id,
o.order_date,
c.first_name,
c.last_name,
c.email
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE o.status = 'completed';
Лучшие практики
1. Начинайте с SELECT *
При изучении новой таблицы используйте SELECT *, чтобы увидеть все столбцы, затем уточните до конкретных столбцов.
2. Используйте LIMIT
Всегда используйте LIMIT при запросе незнакомых таблиц, чтобы избежать перегрузки результатов.
3. Форматируйте свои запросы
Используйте единообразное форматирование для удобства чтения:
- Ключевые слова в верхнем регистре
- Отступы для сложных запросов
- Разрывы строк для длинных условий
4. Комментируйте свой код
Добавляйте комментарии для сложных запросов:
-- Рассчитать ежемесячную выручку по категориям продуктов
-- Исключая возвращённые заказы и тестовые аккаунты
SELECT
DATE_TRUNC('month', order_date) as month,
category,
SUM(amount) as total_revenue
FROM orders
WHERE status != 'refunded'
AND customer_id NOT IN (SELECT customer_id FROM test_accounts)
GROUP BY DATE_TRUNC('month', order_date), category
ORDER BY month DESC, total_revenue DESC;
5. Тестируйте с WHERE 1=0
Чтобы увидеть структуру столбцов без извлечения данных:
SELECT * FROM large_table WHERE 1=0;
Устранение распространённых проблем
"Отношение не существует"
- Проверьте правильность написания имени таблицы и чувствительность к регистру
- Убедитесь, что вы подключены к правильной базе данных
- Убедитесь, что у вас есть соответствующие права
"Столбец не существует"
- Проверьте имена столбцов в условии SELECT
- Проверьте на наличие опечаток
- Сначала используйте
SELECT *, чтобы увидеть все доступные столбцы
Медленные запросы
- Добавьте
LIMITдля тестирования производительности - Проверьте наличие отсутствующих индексов
- Используйте
EXPLAINдля анализа плана запроса - Учитывайте факторы производительности на стороне сервера
Ошибки подключения
- Убедитесь, что подключение активно
- Проверьте сетевое подключение
- Подтвердите, что сервер PostgreSQL запущен
Следующие шаги
Теперь, когда вы понимаете основы запросов:
- Практикуйтесь с вашими собственными таблицами базы данных
- Изучите руководство Расширенные техники запросов
- Узнайте об Экспорте данных
- Попробуйте техники Оптимизации производительности
Быстрый справочник
Основные SQL-операторы
SELECT— Выбор столбцов для возвратаFROM— Указание таблицы для запросаWHERE— Фильтрация строкORDER BY— Сортировка результатовLIMIT— Ограничение количества строкGROUP BY— Агрегация данныхHAVING— Фильтрация агрегированных данных
Распространённые функции
COUNT()— Подсчёт строкSUM()— Суммирование значенийAVG()— Среднее значениеMIN()/MAX()— Поиск экстремальных значенийCOALESCE()— Обработка NULL-значенийCONCAT()— Объединение строкEXTRACT()— Получение частей даты
Обратная связь
Помогите нам улучшить документацию