Руководство по наиболее востребованным базовым командам SQL



Книга Руководство по наиболее востребованным базовым командам SQL








Продемонстрируем применение основных команд SQL на примерах.










Команды





1. SELECT для выбора данных:





SELECT CURRENT_TIMESTAMP();

SELECT name, qualification FROM users;




2. FROM для указания источника собираемых данных:





SELECT * FROM users;




3. WHERE для выполнения условия:





SELECT * FROM users WHERE id = 10;




4. AS для назначения псевдонима таблице или полям:





SELECT first_name AS name FROM users;




5. JOIN для объединения строк двух и более таблиц:





SELECT users.name, scores.percentage FROM users 
JOIN scores ON users.id = scores.user_id;




6. AND, OR для объединения условий запроса.





AND для проверки всех условий, которые должны быть истинными:





SELECT * FROM users WHERE id = 10 AND qualification = "B.E.";




OR для проверки истинности по крайней мере одного условия:





SELECT * FROM users WHERE gender="male" OR qualification = "B.E.";




7. LIMIT, OFFSET для контроля и пропуска числа записей.





LIMIT для контроля числа возвращаемых записей:





SELECT * FROM users LIMIT 10;




OFFSET для пропуска числа записей:





SELECT * FROM users LIMIT 10 OFFSET 5;




Этим запросом возвращается десять записей после пропуска пяти.





OFFSET без LIMIT не применяется.





8. IN  —  это сокращенный метод с несколькими условиями OR для выбора записей по совпадающим значениям:





SELECT * FROM users WHERE qualification IN("B.E.", "M.E.", "M.C.A.");




Этим запросом возвращаются все пользователи с одной из перечисленных в In() квалификаций.





9. CASE для проверки выполнения конкретных условий, с применением простого if-else:





SELECT id, name,
CASE
WHEN qualification = "B.E." THEN "Bechelors"
WHEN qualification = "M.E." THEN "Masters"
ELSE graduate
END AS degree
FROM users;




Выполнение команды завершается, когда найдено соответствие условию. Возвращается значение, указанное в THEN.





Если соответствие не найдено, возвращается значение из ELSE. Если в ELSE ничего не указано, возвращается NULL.





10. IS NULL, IS NOT NULL для проверки значения null и не null соответственно:





SELECT * FROM users WHERE qualification IS NULL;

SELECT * FROM users WHERE qualification IS NOT NULL;




11. LIKE  —  это оператор сопоставления с шаблоном, аналог WHERE.





Знак процента (%) используется для выявления частичного совпадения:





SELECT * FROM users WHERE name LIKE "al%";




Этим запросом выбираются все записи, в которых имя пользователя начинается с al: Alex, Alis.





А еще так находятся записи с конкретной буквой в заданной позиции в строке:





SELECT * FROM users WHERE name LIKE "_a%";




Этим запросом выполняется поиск записей со второй буквой a в имени: Jane, Jack.





Знаками процента (%) и подчеркивания (_) запрос LIKE подстраивается под требования.





LIKE применяется и с оператором логического отрицания NOT: NOT LIKE.





12. DISTINCT для удаления из таблицы повторяющихся записей и получения только уникальных:





SELECT DISTINCT name FROM users;




Этим запросом из результата удаляются пользователи с повторяющимися именами.





13. EXPLAIN для получения информации о выполнении запроса в таблице:





EXPLAIN SELECT * FROM users;




Применяется в основном для оптимизации базы данных.





14. ALTER TABLE для обновления имеющейся таблицы или столбцов:





ALTER TABLE Customers ADD email varchar(255);




15. CREATE для создания таблицы:





CREATE TABLE scores (
id int,
first_name varchar(255),
last_name varchar(255)
);




16. DELETE для удаления записей из таблицы:





DELETE FROM users WHERE id = 10;




17. UPDATE для обновления записей таблицы:





UPDATE users SET name = "Joe" WHERE id = 10;




18. INSERT для вставки записей в таблицу:





INSERT INTO users(id, first_name, last_name) VALUES(1, "joe", "shoen");

OR

INSERT INTO users VALUES(1, "joe", "shoen");




19. TRUNCATE для очистки таблицы:





TRUNCATE TABLE users;




20. DROP для удаления таблицы:





DROP TABLE users;









Операторы





1. GROUP BY для группировки записей по заданным значениям столбцов:





SELECT COUNT(*) as qualifications FROM users GROUP BY qualification;




Этим запросом возвращается общее число квалификаций с записями, сгруппированными по значениям столбца квалификаций.





2. ORDER BY для упорядочения данных указанных столбцов по возрастанию или убыванию:





SELECT * FROM users ORDER BY id ASC;

SELECT * FROM users ORDER BY id, score DESC;




3. HAVING используется с GROUP BY, так как WHERE не применяется с агрегированными результатами:





SELECT COUNT(id), qualification 
FROM users
GROUP BY qualification
HAVING COUNT(id) > 3;




Этим запросом возвращается количество пользователей, сгруппированных по квалификации, где это количество > 3.
 
4. UNION
для объединения результатов двух и более операторов SELECT:





SELECT name, email FROM users
UNION
SELECT name, email FROM admins;




5. EXISTS для проверки наличия любой записи выполняется подзапрос, в зависимости от результата которого возвращается true или false:





SELECT EXISTS 
(SELECT name FROM users
WHERE id = 1) AS isExist;









Функции





1. COUNT() для возвращения числа выражения, с условиями или без них:





SELECT COUNT(*) as total_users FROM users;




2. SUM() для возвращения общего значения по заданному набору значений:





SELECT SUM(scores) FROM users;




3. AVG() для получения среднего значения по заданному набору значений:





SELECT AVG(scores) FROM users;




4. MIN() для нахождения минимального значения по заданному набору значений:





SELECT MIN(scores) FROM users;




5. MAX() для нахождения максимального значения по заданному набору значений:





SELECT MAX(scores) FROM users;









Заключение





Мы изучили основные команды и операторы SQL  —  базовые строительные блоки MySQL, применяемые в запросах к базе данных, а иногда и самостоятельно.









299   0  

Comments

    Ничего не найдено.