WOX.IN.UA - форум web розробників

Вітаємо на нашому форумі! Тут ви зможете обговорювати останні тенденції технологій, вирішувати завдання та обмінюватися досвідом з іншими розробниками.

WOX — це місце, де кожен може знайти щось корисне, навчитися новому та знайти відповіді на свої питання!

Стаття Вивчення MySQL: Основні операції та Приклади Коду

  • Автор теми LITVINOV
  • Дата створення
  • Автор теми
  • Адміністратор
  • Модератор
  • #1
MySQL є однією з найпопулярніших систем управління базами даних, і вивчення її основ допомагає покращити навички в розробці веб-додатків. У цій статті ми розглянемо основні операції в MySQL та надамо приклади коду для кращого розуміння.
1. Підключення до бази даних:
Код:
-- Використання команди для підключення до MySQL сервера
mysql -u користувач -p пароль -h хост база_даних

2. Створення таблиці:
Код:
-- Приклад створення таблиці "users" з полями id, ім'я та електронна пошта
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);

3. Вставка даних:
Код:
-- Додавання нового користувача до таблиці
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');

4. Вибірка даних:
Код:
-- Витягування всіх користувачів з таблиці
SELECT * FROM users;

5. Оновлення даних:
Код:
-- Оновлення імені користувача з id=1
UPDATE users SET name = 'Jane Doe' WHERE id = 1;

6. Видалення даних:
Код:
-- Видалення користувача з id=1
DELETE FROM users WHERE id = 1;

7. Фільтрація та сортування:
Код:
-- Витягування користувачів з іменем, починаючи з літери 'A', відсортованих за іменем
SELECT * FROM users WHERE name LIKE 'A%' ORDER BY name;

8. Групування та обчислення:
Код:
-- Отримання кількості користувачів за кожною електронною поштою
SELECT email, COUNT(*) FROM users GROUP BY email;

9. З'єднання таблиць:
Код:
-- Приклад вибірки даних з двох таблиць users та orders за спільним полем user_id
SELECT users.name, orders.order_id
FROM users
JOIN orders ON users.id = orders.user_id;

10. Використання підзапитів:
Код:
-- Вибірка користувачів з orders, які мають більше одного замовлення
SELECT name
FROM users
WHERE id IN (SELECT user_id FROM orders GROUP BY user_id HAVING COUNT(*) > 1);

11. Використання індексів:
Код:
-- Створення індексу на полі email для підвищення швидкості пошуку
CREATE INDEX idx_email ON users(email);

12. Транзакції:
Код:
-- Приклад транзакції для забезпечення атомарності операцій
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
COMMIT;

13. Робота зі датами:
Код:
-- Вибірка користувачів, які зареєструвалися впродовж останнього місяця
SELECT * FROM users WHERE registration_date >= CURDATE() - INTERVAL 1 MONTH;

14. Використання обмежень:
Код:
-- Додавання обмеження на унікальність поля email в таблиці users
ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email);

15. Робота з JSON:
Код:
-- Витягування даних з JSON-поля
SELECT user_data->'$.name' AS user_name
FROM user_profile;

16. Використання функцій:
Код:
-- Використання функції AVG для обчислення середнього значення
SELECT AVG(salary) AS average_salary
FROM employees;

17. Робота з подіями (triggers):
Код:
-- Створення тригера для автоматичного оновлення дати зміни запису
CREATE TRIGGER update_modified_date
BEFORE UPDATE ON table_name
FOR EACH ROW
SET NEW.modified_date = NOW();

18. Забезпечення безпеки:
Код:
-- Використання параметризованих запитів для запобігання SQL-ін'єкціям
SELECT * FROM users WHERE username = ? AND password = ?;

19. Робота зі сховищами (stored procedures):
Код:
-- Створення процедури для вибірки користувачів за певними умовами
DELIMITER //
CREATE PROCEDURE GetUsersByCondition(IN condition INT)
BEGIN
SELECT * FROM users WHERE age > condition;
END //
DELIMITER ;

20. Використання оптимізаційних інструментів:
Код:
-- Використання EXPLAIN для аналізу виконання запиту та оптимізації його швидкості
EXPLAIN SELECT * FROM products WHERE category_id = 1;

21. Робота з переглядами (views):
Код:
-- Створення перегляду для спрощення складних запитів
CREATE VIEW high_salary_employees AS
SELECT * FROM employees WHERE salary > 50000;

22. Використання індексів повнотекстового пошуку:
Код:
-- Створення повнотекстового індексу та пошук за словом в текстовому полі
CREATE FULLTEXT INDEX idx_content ON articles(content);
SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL' IN BOOLEAN MODE);

23. Робота з автоматичним збільшенням значення (auto-increment):
Код:
-- Створення таблиці з полем, яке автоматично збільшується
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);

24. Використання тригерів для аудиту:
Код:
-- Створення тригера для реєстрації змін у таблиці
CREATE TRIGGER log_changes
AFTER UPDATE ON users
FOR EACH ROW
INSERT INTO audit_log (user_id, action, timestamp)
VALUES (OLD.id, 'update', NOW());

25. Робота з зовнішніми ключами:
Код:
-- Створення таблиці з зовнішнім ключем для забезпечення цілісності даних
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);


Вивчення цих концепцій допомагає побудувати ефективні та надійні бази даних для ваших проектів. Продовжуйте розвивати свої навички та експериментуйте з різноманітними аспектами MySQL.
 
Зверху Знизу