====== Основні функції SQL запитів ======
Data Bases (SQL)
===== Керування користувачами =====
**Створити користувача**
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password';
**Надати привілегії користувачу до бази даних**
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
**Застосувати усі надані привілегії**
FLUSH PRIVILEGES;
**Змінити пароль користувача**
ALTER USER 'username'@'localhost' IDENTIFIED BY 'новий_пароль';
**Виводить час та дату**
SELECT NOW()
===== Керування базами даних =====
**Створити БД:**
CREATE DATABASE wordpress;
**Видалити БД:**
DROP DATABASE wordpress;
**Показати всі БД:**
SHOW DATABASES;
**Перейти в БД для редагування таблиць:**
USE wordpress;
===== Керування таблицями =====
**Створити таблицю:**
CREATE TABLE table_name;
**Видалити таблицю:**
DROP TABLE table_name;
===== Керування даними в таблицях =====
SELECT * FROM table
UPDATE table SET name=Artem WHERE id=125
INSERT INTO table VALUE(10, 'text', 'text')
DELETE FROM table WHERE id=1
==== Зʼязки таблиць: ====
* Один до одного (1:1)
* Один до множини (1:N)
* Множина до множини (M:N)
* Множина до одного (N:1) - однаково з другим
==== Обʼєднання таблиць JOIN ====
4 типи:
* **inner** join
* **Leftouter** join
* **Right** join
* **cross** join
INNER JOIN SELECT name, table_1.id
FROM a table_1
JOIN b table_2
ON a.id_B = b.id
//
table_1,2 - псевдоним для таблиць//
LEFT JOIN SELECT name, id
FROM a
LEFT JOIN b
ON a.id_B = b.id
**RIGHT JOIN** - симметричный з LEFT
CROSS JOIN
SELECT name FROM a,b
або
SELECT name FROM a CROSS JOIN b
==== DISTINCT ====
SELECT DISTINCT name FROM table
Вивиде всі УНІКАЛЬНІ імена з таблиці
==== Робота з множинами ====
**UNION ALL/UNIN**
SELECT name FROM a UNION ALL SELECT name FROM b
**UNION ALL** Обʼєднує два стовпчики в один (разом з дублями)
**UNION** Обʼєднує два стобчики в один (без з дублів)
==== INTERSECT ====
SELECT person FROM sales2005 INTERSECT SELECT person FROM salve2006
Виводить ті дані, які співпадают в обох таблицях
==== MINUS / EXCEPT ====
SELECT person FROM sales2005 MINUS SELECT person FROM salve2006
Віднімає дані з одного поля таблиці від другого поля таблиці. Виводить залишок
==== АГРЕГАТНІ ФУНКЦІЇ
====
**Count** - кількість рядків в таблиці
SELECT COUNT(*) FROM table
* **Sum** - сумма групи
* **Avg** - середнє значення групи
* **Min** -
* **Max** -
==== УГРУПУВАННЯ (GROUP BY) ====
**HAVING**
SELECT * FROM table GROUP BY name HAVING SUM(zarplata)> 4000
* **having** використувується для фільтрації по **ГРУПАМ**
* **
where** - використувується для фільтрації по **РЯДКАМ**
==== Агрегати в під-запитах ====
SELECT person FROM sales2005 WHERE amount = (SELECT MAX(amount) FROM sales2005)