Основные команды DDL и DML: CREATE, SELECT, UPDATE, DELETE
Изучите основные команды MySQL DDL и DML: CREATE TABLE, INSERT, SELECT, UPDATE и DELETE.
Основные команды DDL и DML: CREATE, SELECT, UPDATE, DELETE
Работа с MySQL обычно начинается с двух задач: определения таблиц и работы со строками внутри них. Основные команды DDL и DML — это то, как вы делаете это безопасно.
Команды DDL определяют объекты базы данных, такие как таблицы. Команды DML вставляют, читают, обновляют и удаляют данные таблиц. В приведенных ниже примерах используется небольшая таблица products, чтобы вы могли увидеть команды в контексте.
Язык определения данных (DDL): Создание таблиц
Команды DDL касаются схемы и структуры объектов вашей базы данных. Наиболее фундаментальная команда DDL для хранения данных — CREATE TABLE, которая позволяет определить шаблон для ваших данных.
Синтаксис CREATE TABLE
Основной синтаксис создания таблицы включает указание имени таблицы, а затем определение ее столбцов, включая их типы данных и любые ограничения.
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
...
);
table_name должно быть уникальным в текущей базе данных. Каждый столбец должен иметь имя, тип данных и необязательные ограничения, такие как NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY или DEFAULT value.
Пример CREATE TABLE
Давайте создадим простую таблицу products для хранения информации о товарах на складе:
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL UNIQUE,
category VARCHAR(50),
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
В этом примере:
product_id— целое число, которое автоматически увеличивается и служит первичным ключом.product_name— обязательная строка, которая должна быть уникальной.price— обязательное десятичное число.stock_quantityпо умолчанию равно 0, если не указано иное.created_atзаписывает временную метку, когда строка была создана.
Язык манипулирования данными (DML): Работа с данными
Команды DML используются для управления записями (строками) в таблицах базы данных. Это наиболее часто используемые команды для повседневных операций с базой данных.
Команда INSERT: Добавление новых данных
Команда INSERT используется для добавления новых строк данных в таблицу.
Синтаксис INSERT
Есть несколько способов использования INSERT:
Указание значений для всех столбцов:
INSERT INTO table_name VALUES (value1, value2, value3, ...);Порядок значений должен соответствовать порядку столбцов в определении таблицы.
Указание значений для определенных столбцов:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);Обычно это предпочтительнее, так как более читаемо и менее подвержено ошибкам при изменении структуры таблицы.
Пример INSERT
Используя нашу таблицу products:
-- Вставка значений для всех столбцов (предполагая AUTO_INCREMENT для product_id)
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES ('Laptop Pro', 'Electronics', 1200.50, 50);
-- Вставка значений для определенных столбцов
INSERT INTO products (product_name, price)
VALUES ('Mechanical Keyboard', 75.99);
-- Вставка нескольких строк одновременно
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES
('Ergonomic Mouse', 'Electronics', 25.00, 120),
('Desk Lamp', 'Home Goods', 45.00, 75);
Команда SELECT: Извлечение данных
Команда SELECT является краеугольным камнем извлечения данных. Она позволяет запрашивать базу данных и получать определенные данные на основе различных критериев.
Синтаксис SELECT
SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column_name [ASC|DESC]
LIMIT number;
column1, column2, ...: Столбцы, которые вы хотите получить. Используйте*для выбора всех столбцов.FROM table_name: Таблица, которую вы запрашиваете.WHERE condition: (Необязательно) Фильтрует строки на основе указанного условия. Условия могут включать операторы сравнения (=,!=,>,<,>=,<=), логические операторы (AND,OR,NOT) и сопоставление с образцом (LIKE).ORDER BY column_name [ASC|DESC]: (Необязательно) Сортирует результирующий набор по одному или нескольким столбцам.ASCдля сортировки по возрастанию (по умолчанию),DESCдля сортировки по убыванию.LIMIT number: (Необязательно) Ограничивает количество возвращаемых строк.
Примеры SELECT
-- Выбрать все столбцы для всех продуктов
SELECT *
FROM products;
-- Выбрать только имя и цену продуктов
SELECT product_name, price
FROM products;
-- Выбрать продукты в категории 'Electronics'
SELECT *
FROM products
WHERE category = 'Electronics';
-- Выбрать продукты с ценой больше 100, отсортированные по цене по убыванию
SELECT product_name, price
FROM products
WHERE price > 100
ORDER BY price DESC;
-- Выбрать 5 самых дорогих продуктов
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
-- Выбрать продукты, название которых начинается с 'L'
SELECT *
FROM products
WHERE product_name LIKE 'L%';
Команда UPDATE: Изменение существующих данных
Команда UPDATE позволяет изменять существующие записи в таблице.
Синтаксис UPDATE
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
table_name: Таблица, содержащая записи для обновления.SET column1 = value1, ...: Указывает, какие столбцы обновлять и их новые значения.WHERE condition: Критически важно! Это предложение определяет, какие строки будут обновлены. Если его опустить, будут обновлены все строки в таблице.
Примеры UPDATE
-- Увеличить цену 'Laptop Pro' на 50
UPDATE products
SET price = price + 50.00
WHERE product_name = 'Laptop Pro';
-- Обновить категорию и количество на складе для 'Mechanical Keyboard'
UPDATE products
SET category = 'Accessories', stock_quantity = 100
WHERE product_name = 'Mechanical Keyboard';
-- **ПРЕДУПРЕЖДЕНИЕ**: Это обновит цену ВСЕХ продуктов до 10.00
-- UPDATE products
-- SET price = 10.00;
Совет: Всегда используйте предложение WHERE при обновлении, чтобы гарантировать изменение только нужных записей. Сначала проверьте предложение WHERE с помощью оператора SELECT, чтобы убедиться, что оно нацелено на правильные строки.
Команда DELETE: Удаление данных
Команда DELETE используется для удаления строк из таблицы.
Синтаксис DELETE
DELETE FROM table_name
WHERE condition;
table_name: Таблица, из которой нужно удалить строки.WHERE condition: Критически важно! Это предложение определяет, какие строки удалить. Если его опустить, будут удалены все строки в таблице.
Примеры DELETE
-- Удалить продукт с именем 'Desk Lamp'
DELETE FROM products
WHERE product_name = 'Desk Lamp';
-- Удалить все продукты, которые закончились на складе (stock_quantity равно 0)
DELETE FROM products
WHERE stock_quantity = 0;
-- **ПРЕДУПРЕЖДЕНИЕ**: Это удалит ВСЕ записи из таблицы 'products'!
-- DELETE FROM products;
Предупреждение: Как и в случае с UPDATE, пропуск предложения WHERE в операторе DELETE является разрушительной операцией, которая удалит все данные из таблицы. Используйте с крайней осторожностью.
Ключевой вывод
Понимание и эффективное использование команд DDL и DML является основой управления базами данных. CREATE TABLE позволяет определить структуру ваших данных, в то время как INSERT, SELECT, UPDATE и DELETE позволяют заполнять, запрашивать, изменять и управлять этими данными.
Практикуясь с этими командами, используя четкие предложения WHERE, особенно для UPDATE и DELETE, вы сможете создать прочную основу для работы с базами данных MySQL и обеспечить целостность и точность ваших данных. Всегда помните о резервном копировании данных перед выполнением потенциально разрушительных операций.