MySQL команды SQL-запросы и MySQL специализированные утилиты, используемые для создания баз данных, определения таблиц, вставки/обновления данных, выполнения запросов. manage пользователи, настраивайте производительность, а также создавайте резервные копии или восстанавливайте данные.
К числу распространенных команд относятся CREATE, SELECT, INSERT, UPDATE, DELETE, JOIN, EXPLAIN, GRANT и mysqldump, каждая из которых имеет практическое применение как в разработке, так и в производственной среде.
Независимо от того, развертываете ли вы WordPress на VPS или разрабатываете новое приложение, освоение этих навыков имеет большое значение. MySQL Эти команды позволяют проектировать схемы, эффективно запрашивать данные, обеспечивать безопасный доступ и создавать надежные резервные копии.
Это руководство для начинающих охватывает основные моменты. MySQL Команды с практическими примерами, советы из реальных сценариев хостинга и лучшие практики повышения производительности.
Что MySQL Команды?
MySQL команды инструкции, выполняемые посредством MySQL клиент (mysql) или скрипты для manage данные в MySQL сервера.

Большинство команд являются стандартными командами SQL. (ANSI), в то время как некоторые являются MySQL конкретные (например, операторы SHOW). MySQL 8.0 — это современный стандарт, предлагающий транзакционное хранение данных.(InnoDB)роли, оконные функции, CTE и улучшения производительности.
Советы перед началом:
- Команды заканчиваются точкой с запятой (;)
- В производственной среде используйте выделенного пользователя с минимальными привилегиями.
- Всегда сначала проверяйте деструктивные команды (DROP, DELETE) с помощью команды SELECT.
- Перед изменением схемы сделайте резервную копию.
Начало работы: Подключение и проверка
Подключение к MySQL (Локально и удаленно)
# Local
mysql -u root -p
# Specific database
mysql -u appuser -p mydb
# Remote (ensure bind-address/firewall allow)
mysql -h 203.0.113.10 -u appuser -p -P 3306 mydbПроверьте информацию о сервере и сессии:
SELECT VERSION();
SHOW VARIABLES LIKE 'version%';
SHOW DATABASES;
USE mydb;
SHOW TABLES;
DESCRIBE users; -- or: SHOW COLUMNS FROM users;Основы работы с базами данных и таблицами.
Создание и удаление баз данных
CREATE DATABASE IF NOT EXISTS shopdb
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
DROP DATABASE IF EXISTS testdb;Создание таблиц с указанием типов данных и ограничений
InnoDB — это движок по умолчанию в MySQL 8.0, поддержка ACID-транзакций и внешних ключей.
USE shopdb;
CREATE TABLE categories (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL UNIQUE
) ENGINE=InnoDB;
CREATE TABLE products (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
category_id BIGINT UNSIGNED NOT NULL,
name VARCHAR(150) NOT NULL,
sku VARCHAR(40) NOT NULL UNIQUE,
price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
stock INT NOT NULL DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_products_category
FOREIGN KEY (category_id) REFERENCES categories(id)
ON DELETE RESTRICT ON UPDATE CASCADE,
INDEX idx_products_category (category_id),
INDEX idx_products_name (name)
);Безопасная перестановка столов
Перед изменением производственных схем всегда создавайте резервные копии. Для больших таблиц рассмотрите возможность использования pt-online schema change или gh-ost.
ALTER TABLE products
ADD COLUMN is_active TINYINT(1) NOT NULL DEFAULT 1,
MODIFY COLUMN name VARCHAR(200) NOT NULL,
ADD INDEX idx_products_is_active (is_active);Операции CRUD с практическими примерами.
Вставить строки (одну или несколько)
INSERT INTO categories (name) VALUES ('Books'), ('Electronics');
INSERT INTO products (category_id, name, sku, price, stock)
VALUES
(1, 'Database Design 101', 'BK-DB-101', 29.99, 100),
(2, 'USB-C Charger 65W', 'EL-UC-065', 39.90, 50);Выбрать с фильтрами, сортировкой, ограничением
-- View all products
SELECT id, name, price, stock FROM products;
-- Filter and sort
SELECT name, price
FROM products
WHERE price >= 30 AND is_active = 1
ORDER BY price DESC
LIMIT 5;
-- Pattern match
SELECT sku, name FROM products WHERE name LIKE '%Charger%';Обновляйте и удаляйте безопасно.
Используйте транзакции и безопасные обновления, чтобы избежать случайных массовых изменений.
SET sql_safe_updates = 1;
START TRANSACTION;
UPDATE products
SET price = price * 0.95
WHERE category_id = 2 AND stock > 10;
COMMIT;
-- Preview before delete:
SELECT id FROM products WHERE stock = 0 AND is_active = 0;
DELETE FROM products
WHERE stock = 0 AND is_active = 0
LIMIT 100; -- chunk deletes in productionОбъединения и агрегирования
ВНУТРЕННЕЕ и ЛЕВОЕ СОЕДИНЕНИЕ
-- Products with category names
SELECT p.id, p.name, c.name AS category, p.price
FROM products p
INNER JOIN categories c ON c.id = p.category_id;
-- Categories including those without products
SELECT c.name AS category, COUNT(p.id) AS product_count
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.name
ORDER BY product_count DESC;ГРУППИРОВАТЬ ПО, ИМЕЮЩИЙ и Совокупности
SELECT category_id,
COUNT(*) AS items,
ROUND(AVG(price), 2) AS avg_price,
SUM(stock) AS total_stock
FROM products
GROUP BY category_id
HAVING SUM(stock) >= 50;Индексы, клавиши и производительность
Создание/удаление индексов и использование команды EXPLAIN
Индексы ускоряют выполнение команд WHERE, JOIN и ORDER BY, но замедляют запись. Создавайте только необходимые индексы и проверяйте их с помощью команды EXPLAIN.
CREATE INDEX idx_products_price ON products(price);
DROP INDEX idx_products_price ON products;
EXPLAIN ANALYZE
SELECT p.name
FROM products p
WHERE p.is_active = 1 AND p.price BETWEEN 20 AND 40
ORDER BY p.price
LIMIT 10;Ключевые советы:
- Для часто выполняемых запросов предпочтительнее использовать индексы, покрывающие целевую аудиторию.
- Индексные столбцы, используемые в объединениях и выборочных фильтрах.
- Избегайте индексирования только логических значений с низкой кардинальностью; при необходимости комбинируйте их с другими столбцами.
Транзакции и изоляция
Атомарные изменения с помощью COMMIT/ROLLBACK
Транзакции гарантируют, что изменения происходят по принципу «всё или ничего» (ACID). InnoDB обеспечивает блокировку на уровне строк и уровни изоляции.
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
UPDATE products SET stock = stock - 1 WHERE id = 2 AND stock > 0;
INSERT INTO orders (product_id, qty) VALUES (2, 1);
COMMIT;
-- On failure:
ROLLBACK;Представления, хранимые процедуры и триггеры
Виды
CREATE OR REPLACE VIEW v_active_products AS
SELECT p.id, p.name, p.price, c.name AS category
FROM products p
JOIN categories c ON c.id = p.category_id
WHERE p.is_active = 1;
SELECT * FROM v_active_products WHERE price < 50;Хранимые процедуры и функции
DELIMITER //
CREATE PROCEDURE discount_category(IN cat BIGINT, IN pct DECIMAL(5,2))
BEGIN
UPDATE products
SET price = price * (1 - pct/100)
WHERE category_id = cat AND is_active = 1;
END//
CREATE FUNCTION gross_price(net DECIMAL(10,2), tax DECIMAL(5,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
RETURN net * (1 + tax/100);
//
DELIMITER ;
CALL discount_category(2, 10.0);
SELECT gross_price(100.00, 18.0);Триггеры
DELIMITER //
CREATE TRIGGER trg_products_updated
BEFORE UPDATE ON products
FOR EACH ROW
BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END//
DELIMITER ;Пользователи, роли и безопасность
Создание пользователей и предоставление им ролей
Используйте надежные пароли, TLS для удаленных подключений и принцип минимальных привилегий.
-- Create a user limited to one database
CREATE USER 'shopapp'@'%' IDENTIFIED BY 'Strong#Passw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO 'shopapp'@'%';
FLUSH PRIVILEGES;
-- Roles (MySQL 8.0+)
CREATE ROLE 'reporting';
GRANT SELECT ON shopdb.* TO 'reporting';
GRANT 'reporting' TO 'shopapp'@'%';
SET DEFAULT ROLE 'reporting' TO 'shopapp'@'%';Резервное копирование и восстановление
Резервные копии необходимы для аварийное восстановлениемиграции и тестирование. Используйте mysqldump для логического резервного копирования; рассмотрите Percona XtraBackup для оперативного физического резервного копирования больших наборов данных.
# Dump a single database
mysqldump -u root -p --routines --triggers --single-transaction shopdb > shopdb.sql
# Restore
mysql -u root -p shopdb < shopdb.sql
# Dump all databases
mysqldump -u root -p --all-databases --single-transaction > all.sqlКоманды администрирования и обслуживания
Оптимизация, анализ и проверка таблиц.
ANALYZE TABLE products; -- refresh statistics
OPTIMIZE TABLE products; -- rebuild/defragment if needed (InnoDB)
CHECK TABLE products;Монитор производительности
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Queries';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
-- Inspect problematic queries (enable slow log at server level)
SHOW VARIABLES LIKE 'slow_query_log%';
-- InnoDB diagnostics
SHOW ENGINE INNODB STATUS\GРеальные сценарии хостинга
Миграция базы данных WordPress
При переносе WordPress между хостингами или доменами сделайте резервную копию с помощью mysqldump, импортируйте её, а затем обновите URL-адреса сайта.
# Export from old server
mysqldump -u wpuser -p --single-transaction wpdb > wpdb.sql
# Import on new server
mysql -u wpuser -p -h new-db-host wpdb < wpdb.sql
# Update URLs (typical for http -> https or domain change)
UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name IN ('siteurl','home');
-- For serialized data, use WP-CLI search-replace or a specialized tool:
-- wp search-replace 'http://old.com' 'https://example.com' --all-tablesБезопасное выполнение обновлений в производственной среде
- Сначала сделайте снимок или создайте резервную копию.
- Используйте транзакции для многоэтапных изменений.
- Выполните команду SELECT для предварительного просмотра затронутых строк.
- Регулировка скорости с помощью LIMIT и циклы для больших операций UPDATE/DELETE.
- Объясните критически важные запросы и добавьте необходимые индексы.
Распространенные ошибки и лучшие практики
- Избегайте SELECT * В процессе производства; укажите количество столбцов для обеспечения скорости и стабильности.
- Используйте подготовленные запросы в приложениях для предотвращения SQL-инъекций.
- Нормализуйте схемы, но денормализуйте выборочно для повышения производительности.
- Выберите подходящие типы данных (INT или BIGINT, DATETIME или TIMESTAMP).
- Сохранить MySQL Обновлено до версии 8.0 (более поздней) для обеспечения безопасности и расширения функционала.
Полезный совет от организатора: В средах с общим доступом или VPS размер буферного пула InnoDB должен соответствовать рабочему набору данных (часто это 50–70% от доступного объема). RAM на выделенном узле базы данных). Отслеживание медленных журналов и добавлять индексы на основе реальной рабочей нагрузки.
Если вам нужна бесперебойная работа, автоматическое резервное копирование, подготовка тестовых данных и помощь экспертов, YouStableАвтора managed — это хостинг-платформа, созданная для запуска WordPress и MySQL эффективно. Наши инженеры настраивают уровень базы данных, отслеживают ее состояние и помогают вам безопасно вносить изменения в схему без простоев.
САЙТ MySQL Шпаргалка по командам
- Подключение: mysql -u user -p -h host dbname
- Осмотреть: ПОКАЗАТЬ БАЗЫ ДАННЫХ; ПОКАЗАТЬ ТАБЛИЦЫ; ОПИСАТЬ таблицу;
- КРУД: ВСТАВИТЬ, ВЫБРАТЬ, ОБНОВИТЬ, УДАЛИТЬ
- Схема: СОЗДАТЬ/ИЗМЕНИТЬ/УДАЛИТЬ БАЗУ ДАННЫХ|ТАБЛИЦУ
- Объединение/Агрегирование: ПРИСОЕДИНИТЬСЯ, ГРУППИРОВАТЬСЯ ПО, ИМЕЯ
- Производительность: СОЗДАТЬ ИНДЕКС, ОБЪЯСНИТЬ, АНАЛИЗИРОВАТЬ ТАБЛИЦУ
- Безопасность: СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ, ПРЕДОСТАВЛЕНИЕ, ОТМЕНА, РОЛИ
- Восстановления резервной копии: mysqldump, mysql < backup.sql
Часто задаваемые вопросы (FAQ)
Какие самые распространенные MySQL Команды для начинающих?
Начните с команд: CREATE DATABASE, USE, CREATE TABLE, INSERT, SELECT, UPDATE, DELETE, JOIN и GRANT. Добавьте команды SHOW DATABASES/TABLES для просмотра данных, DESCRIBE для просмотра столбцов и mysqldump для резервного копирования. Эти команды охватывают большинство задач для начинающих в средах разработки и небольших производственных средах.
Как подключиться к MySQL с терминала?
Используйте команду `mysql -u username -p` для локального подключения, затем введите свой пароль. Для удаленных серверов добавьте `-h HOST -P 3306` и при необходимости укажите базу данных в конце. Убедитесь, что брандмауэр сервера и адрес привязки разрешают удаленные подключения и что для обеспечения безопасности настроен TLS.
В чём разница между SQL и MySQL команды?
SQL — это стандартный язык для реляционных баз данных (например, SELECT, INSERT). MySQL Это система баз данных, реализующая SQL Plus. MySQL К специфическим расширениям относятся операторы SHOW, синтаксис ролей и некоторые функции. Большинство повседневных запросов переносимы, но административные команды часто различаются в зависимости от поставщика.
Как можно создать резервную копию и восстановить данные? MySQL база данных?
Для создания онлайн-резервных копий InnoDB используйте mysqldump с параметром –single-transaction: mysqldump -u root -p db > db.sql. Восстановление выполняется с помощью mysql -u root -p db < db.sql. Для больших, загруженных баз данных рассмотрите возможность создания физических резервных копий (например, XtraBackup) и проверки результатов восстановления на тестовом сервере.
Как мне ускорить медленный MySQL запросы?
Проведите профилирование с помощью EXPLAIN и журнала медленных запросов, добавьте соответствующие индексы, избегайте SELECT *, сократите количество функций на индексированных столбцах и обеспечьте достаточный размер буферного пула. Перепишите неоптимальные соединения и кэшируйте на уровне приложения, когда это необходимо. Всегда тестируйте изменения на реалистичных данных и с учетом различных сценариев рабочей нагрузки.
Освоение этих MySQL Команды помогут вам создавать надежные схемы, писать более быстрые запросы, защищать данные и постоянно обновлять резервные копии. Если вам нужна оптимизированная команда... MySQL среда с экспертной поддержкой, YouStable может помочь вам уверенно развертывать, масштабировать и поддерживать ваши базы данных.