hostprofi.ru
Подобрать хостинг
Термин·буква S

SQL

краткое определение

SQL (Structured Query Language) — декларативный язык запросов к реляционным базам данных. Используется для создания, изменения и выборки данных в таблицах. Стандартизирован ANSI и ISO, реализован в PostgreSQL, MySQL, Microsoft SQL Server, SQLite и других СУБД.

SQL (Structured Query Language) — язык структурированных запросов для управления реляционными базами данных. Декларативность означает: разработчик описывает что нужно получить, а СУБД сама определяет как выполнить запрос (план выполнения). SQL работает с данными в виде таблиц, строк и столбцов.

Основные команды

SQL делится на несколько подъязыков.

DDL (Data Definition Language) — создание структуры: CREATE TABLE, ALTER TABLE, DROP TABLE.

DML (Data Manipulation Language) — работа с данными: SELECT, INSERT, UPDATE, DELETE.

DCL (Data Control Language) — управление правами: GRANT, REVOKE.

TCL (Transaction Control Language) — транзакции: BEGIN, COMMIT, ROLLBACK.

Пример запроса с JOIN:

SELECT u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2024-01-01'
GROUP BY u.id
ORDER BY order_count DESC
LIMIT 10;

История

Реляционная модель данных разработана Эдгаром Коддом (IBM) в 1970 году. SEQUEL (предшественник SQL) создан Дональдом Чемберленом и Рэймондом Бойсом в IBM в 1974 году. Первый SQL-стандарт ANSI принят в 1986 году, ISO — в 1987-м. Последующие стандарты: SQL-92, SQL:1999, SQL:2003, SQL:2011, SQL:2016, SQL:2023.

Популярные СУБД

  • MySQL / MariaDB — наиболее распространены в LAMP-стеке.
  • PostgreSQL — расширенный SQL, поддержка JSONB, оконные функции, полнотекстовый поиск.
  • Percona Server — оптимизированный форк MySQL.
  • SQLite — встраиваемая СУБД без сервера, для мобильных и desktop-приложений.
  • Microsoft SQL Server — корпоративная СУБД на Windows.

Связь с хостингом

На хостинге MySQL или MariaDB — обязательный компонент LAMP/LEMP-стека. Виртуальный хостинг предоставляет базы данных через phpMyAdmin или ISPmanager. На VPS СУБД устанавливается отдельно и администрируется вручную. Производительность SQL-запросов напрямую влияет на скорость сайта: отсутствие индексов на больших таблицах увеличивает время запроса с миллисекунд до секунд.

Основные операторы SQL

DDL (Data Definition Language): CREATE, ALTER, DROP — структура. DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE — данные. DCL (Data Control Language): GRANT, REVOKE — права. TCL (Transaction Control): BEGIN, COMMIT, ROLLBACK — транзакции. ACID: Atomicity, Consistency, Isolation, Durability.

Оптимизация SQL-запросов

EXPLAIN / EXPLAIN ANALYZE — план выполнения запроса. Индексы: B-Tree (по умолчанию), Hash (точное совпадение), GIN/GiST (полнотекстовый поиск в PostgreSQL). N+1 проблема: вместо цикла SELECT в цикле — JOIN или IN-запрос.

SQL в контексте хостинга

MySQL/MariaDB — стандарт для WordPress, Bitrix. PostgreSQL — для сложных запросов, JSON-данных, геоинформации. SQLite — для мелких приложений на VPS. Оптимальный innodb_buffer_pool_size для MySQL: 60–80% доступной RAM.

Другие термины