Перейти до основного вмісту

Базові команди Mysql

Деякі важливі команди для роботи з Mysql

mysql -u root -p пароль # Підключення до бази даних

SHOW DATABASES; # Показати всі бази даних
CREATE DATABASE xxx; # Створити базу даних
DROP DATABASE xxx; # Видалити базу даних

use xxx; # Вибрати базу даних

SHOW TABLES; # Показати всі таблиці
CREATE TABLE yyy(назва_стовпця тип_стовпця); # Створити нову таблицю. Ви можете одночасно встановити атрибути первинного ключа/не нульовий/інкрементний/символьний набір для таблиці
DROP TABLE yyy;

SHOW CREATE TABLE yyy; # Переглянути конкретні атрибути таблиці
ALTER TABLE yyy engine=innodb # ALTER використовується для зміни властивостей таблиці,
у цьому прикладі використовується для зміни engine

INSERT INTO user VALUES(null, 'user', 'root') # Вставити дані
DELETE FROM user WHERE user_id = '111' # Видалення даних
UPDATE user SET user_name = 'admin' WHERE user_id = '111' # Оновити дані
SELECT user_name, user_psw FROM user WHERE user_id = '111' # Знайти дані

Транзакції

По-перше, транзакції підтримують лише бази даних або таблиці, які використовують двигун баз даних Innodb в MYSQL. Ви можете дізнатись механізм, який використовується таблицею, за допомогою show create table yyy.

Зазвичай за замовчуванням Mysql використовує режим автофіксації (тобто змінна autocommit має значення ON), що означає, що операції фіксації виконуються автоматично.

show session variables like 'autocommit'; # Запитати значення autocommit
set autocommit=0 # не буде автоматично фіксуватися, вимкнено
set autocommit=1 # фіксувати автоматично, це ON

Однак, змінивши змінні у такий спосіб, ви не зможете зробити це назавжди. Якщо ви хочете зробити його постійним, вам потрібно змінити конфігураційний файл mysql.

  • BEGIN транзакції
  • COMMIT фіксує транзакцію
  • ROLLBACK відкочує транзакцію
BEGIN
INSERT INTO user VALUES(NULL, 'A', 'a'); # ще не COMMIT, немає даних в базі даних
INSERT INTO user VALUE(NULL, 'B', 'b'); # ще не COMMIT, немає даних в базі даних
COMMIT; # в базі даних є дані для A та B
INSERT INTO user VALUES(NULL, 'C', 'c');
ROLLBACK; # відкочується назад, так, ніби останній запис ніколи не був введений
COMMIT; # немає даних для C, навіть якщо COMMIT, тому що він був відкочений