Шпаргалка SQL: короткий посібник із основних команд

Як програміст або аналітик даних, ви часто будете працювати з великими обсягами даних. Одним із найпотужніших інструментів у вашому розпорядженні є SQL (мова структурованих запитів).

Ця шпаргалка SQL містить найпоширеніші об’єкти та команди SQL, включаючи типи даних, оператори DML і DDL, агрегатні функції, функції рядків і дат, а також підзапити.

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

Якщо ви схожі на нас і хочете завантажити та роздрукувати чи зберегти шпаргалку на своєму комп’ютері, ви можете завантажити її нижче.

Зміст

Типи даних SQL

Шпаргалка SQL: короткий посібник із основних команд

Типи даних для конкретних систем керування базами даних (СУБД) можуть відрізнятися (наприклад, Microsoft SQL Server проти MySQL ). Однак є кілька, які можна знайти в більшості систем. Ви можете розділити їх на три категорії:

  1. Числовий

  2. Дата і час

  3. Рядок

1. Числові типи

Ось найпоширеніші числові типи:

  • ЦІЛЕ ЧИСЛО : ціле число без коми.

  • SMALLINT : менший діапазон цілих чисел

  • BIGINT : більший діапазон цілих чисел.

  • DECIMAL(p, s) або NUMERIC(p, s) : наприклад, decimal(5,2) буде відповідати 123,45.

  • REAL : Число з плаваючою комою з точністю не менше 6 десяткових цифр.

  • FLOAT(n) : Число з плаваючою комою з точністю принаймні n цифр.

2. Типи дати та часу

  • ДАТА : значення дати, зазвичай у форматі «РРРР-ММ-ДД».

  • ЧАС : значення часу, зазвичай у форматі «ГГ:ХХ:СС».

  • DATETIME або TIMESTAMP : комбінація значень дати й часу.

3. Типи рядків

  • CHAR(n) : Рядок фіксованої довжини з n символів.

  • VARCHAR(n) або CHARACTER VARYING(n) : рядок змінної довжини.

  • ТЕКСТ : Рядок змінної довжини з максимальною довжиною, визначеною СУБД.

Оператор SELECT

Шпаргалка SQL: короткий посібник із основних команд

Оператор SELECT використовується для отримання даних з однієї або кількох таблиць. Ви можете вказати стовпці, які потрібно отримати, і з якої таблиці. Базовий оператор SELECT виглядає так:

SELECT column1, column2
FROM table;

Щоб отримати всі записи зі стовпців "name" та "country_id" із таблиці "city", ваш SQL-запит виглядає так:

SELECT name, country_id
FROM city;

Речення WHERE

Шпаргалка SQL: короткий посібник із основних команд

Речення WHERE дозволяє фільтрувати результати оператора SELECT на основі конкретних умов.

SELECT column1, column2
FROM table
WHERE condition;

Щоб отримати записи з таблиці «місто», де «населення» перевищує 1 000 000, ваш запит виглядає так:

SELECT name, population
FROM city
WHERE population > 1000000;

ORDER BY пункт

Речення ORDER BY дозволяє сортувати результати оператора SELECT за одним або кількома стовпцями. Ви можете відсортувати результати в порядку зростання (ASC) або спадання (DESC):

SELECT column1, column2
FROM table
ORDER BY column1 ASC, column2 DESC;

Наприклад, щоб отримати записи з таблиці «місто», відсортовані за «населенням» у порядку спадання, ваш запит виглядає так:

SELECT name, population
FROM city
ORDER BY population DESC;

Об’єднання кількох таблиць у SQL

Шпаргалка SQL: короткий посібник із основних команд

У SQL існує чотири найпоширеніші об’єднання:

  1. ВНУТРІШНЄ З'ЄДНАННЯ

  2. ЛІВОГО ПРИЄДНАННЯ

  3. ПРАВО ПРИЄДНУЙТЕСЯ

  4. ПОВНЕ ПРИЄДНАННЯ

1. ВНУТРІШНЄ З'ЄДНАННЯ

INNER JOIN отримує записи, які мають відповідні значення в обох таблицях.

Давайте візьмемо приклад бази даних виконавців і альбомів, і ви хочете знайти всі комбінації виконавців і альбомів. Це INNER JOIN:

SELECT *
FROM artists AS a
INNER JOIN albums AS b
ON a.artist_id = b.artist_id;

За допомогою INNER JOIN у результатах буде повернуто лише рядки з відповідними значеннями в указаних полях.

2. ЛІВОГО ПРИЄДНАННЯ

LEFT JOIN також відомий як LEFT OUTER JOIN. Він повертає всі записи з лівої таблиці та відповідні записи з правої таблиці. Якщо в правильній таблиці немає відповідності, результат міститиме значення NULL.

Наприклад, щоб отримати список усіх виконавців і їхніх відповідних альбомів (якщо вони є), ви можете використати LEFT JOIN:

SELECT *
FROM artists AS a
LEFT JOIN albums AS b
ON a.artist_id = b.artist_id;

Цей запит поверне всіх виконавців, навіть якщо вони не мають пов’язаних із ними альбомів у таблиці альбомів.

3. ПРАВО ПРИЄДНАТИСЯ

RIGHT JOIN також відомий як RIGHT OUTER JOIN. Він повертає всі записи з правої таблиці та відповідні записи з лівої таблиці. Якщо в лівій таблиці немає відповідності, результат міститиме значення NULL.

Наприклад, щоб отримати інформацію про всі альбоми та пов’язаних із ними виконавців (якщо вони існують), ви повинні використати RIGHT JOIN:

SELECT *
FROM artists AS a
RIGHT JOIN albums AS b
ON a.artist_id = b.artist_id;

Цей запит поверне всі альбоми, навіть якщо вони не мають пов’язаних виконавців у таблиці виконавців.

4. ПОВНЕ ПРИЄДНАННЯ

FULL JOIN також відомий як FULL OUTER JOIN. Він об’єднує результати ЛІВОГО та ПРАВОГО об’єднань. Іншими словами, він повертає всі рядки з лівої та правої таблиць і заповнює відсутні значення значеннями NULL, якщо немає відповідності.

Ось приклад використання таблиць виконавців і альбомів:

SELECT *
FROM artists AS a
FULL JOIN albums AS b
ON a.artist_id = b.artist_id;

Цей запит повертає всі рядки з обох таблиць, заповнюючи NULL, якщо в жодній з таблиць немає відповідності.

Агрегатні функції SQL

Агрегатні функції використовуються для обчислення одного результату з набору вхідних значень. Їх називають «агрегатними», тому що вони приймають кілька вхідних даних і повертають один вихід. Найпоширенішими є:

  1. РАХУВАТИ

  2. SUM

  3. СЕР

  4. МАКС

  5. ХВ

1. Функція COUNT

Функція COUNT дозволяє підрахувати кількість рядків у результаті запиту. Ви можете використовувати цю агрегатну функцію, щоб визначити загальну кількість записів у таблиці або кількість записів, які відповідають певним критеріям.

Ось приклад:

SELECT COUNT(*) FROM employees;

Цей запит поверне загальну кількість співробітників у таблиці 'employees'. Майте на увазі, що додавання пропозиції WHERE може покращити ваші результати:

SELECT COUNT(*) FROM employees WHERE department = 'HR';

2. Функція SUM

Функція SUM обчислює загальну суму числового стовпця. Це корисно, коли потрібно обчислити загальне значення певного числового поля. Наприклад, цей запит повертає загальну суму зарплат усіх працівників:

SELECT SUM(salary) FROM employees;

3. Функція AVG

Функція AVG обчислює середнє значення числового стовпця. Ця функція корисна, коли потрібно знайти середнє значення певного числового поля. Наприклад, цей запит повертає середню зарплату всіх працівників:

SELECT AVG(salary) FROM employees;

4. Функція MAX

Функція MAX знаходить максимальне значення стовпця. Це часто використовується для пошуку найбільшого значення в числовому полі або останньої дати в полі дати й часу. Наприклад, цей запит повертає найвищу зарплату:

SELECT MAX(salary) FROM employees;

5. Функція MIN

Нарешті, функція MIN допомагає знайти мінімальне значення стовпця. Наприклад, цей запит повертає найнижчу зарплату:

SELECT MIN(salary) FROM employees;

Пам’ятайте, що ви можете використовувати пропозиції WHERE у цих запитах і JOIN з кількома таблицями.

Загальні рядкові функції

Шпаргалка SQL: короткий посібник із основних команд

Ось найпоширеніші рядкові функції, які можна знайти в більшості діалектів SQL (точний синтаксис може відрізнятися):

  1. LEN або LENGTH(рядок) : повертає довжину рядка.

  2. UPPER(рядок) : перетворює рядок у верхній регістр.

  3. LOWER(рядок) : перетворює рядок на нижній регістр.

  4. SUBSTR або SUBSTRING(рядок, початок, довжина) : витягує частину з рядка.

  5. TRIM(рядок) : видаляє пробіли на початку та в кінці рядка.

  6. LTRIM(рядок) : видаляє пробіли на початку рядка.

  7. RTRIM(рядок) : видаляє пробіли в кінці рядка.

Загальні числові функції

Шпаргалка SQL: короткий посібник із основних команд

Ось найпоширеніші числові функції, які можна знайти в більшості діалектів SQL (точний синтаксис може відрізнятися):

  1. ABS(число) : повертає абсолютне значення числа.

  2. ROUND(число, десяткові_розряди) : Округлює число до певної кількості десяткових знаків.

  3. FLOOR(число) : Округлює число до найближчого цілого.

  4. CEIL або CEILING(число) : округлює число до найближчого цілого.

  5. RAND() : повертає випадкове значення з плаваючою точкою від 0 до 1.

  6. MOD(n, m) : повертає залишок n, поділеного на m.

  7. POWER(основа, експонента) : Підносить число до степеня іншого числа.

  8. LOG(число) : повертає натуральний логарифм числа.

Загальні функції дати

Шпаргалка SQL: короткий посібник із основних команд

Here are the most common date functions that are found in most SQL dialects (the exact syntax can vary):

  1. NOW(): Returns the current date and time.

  2. DATE(datetime): Extracts the date part of a date or datetime expression.

  3. TIME(datetime): Extracts the time part of a date or datetime expression.

  4. YEAR(date): Returns the year part.

  5. MONTH(date): Returns the month part.

  6. DAY(date): Returns the day of the month part.

  7. HOUR(time): Returns the hour part from a time.

  8. MINUTE(time): Returns the minute part from a time.

  9. SECOND(time): Returns the second part from a time.

GROUP BY And HAVING

Шпаргалка SQL: короткий посібник із основних команд

When working with SQL queries, you may want to further summarize and filter your aggregated data. The GROUP BY and HAVING clauses provide this functionality.

1. Group By Clause

The GROUP BY clause allows you to group rows that share the same values in specified columns. It is commonly used with aggregate functions. This is the syntax:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;

For example, if you want to calculate the total sales amount for each product category, this is the query:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category;

TIP: Combining GROUP BY and COUNT is a good way of finding duplicate values.

2. Having Clause

If you want to filter the aggregated results further, you can use the HAVING clause. The syntax is:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition;

If you want to find product categories with total sales of more than $1,000,000, you would write:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 1000000;

Quick Tips

  • Always use the GROUP BY clause before the HAVING clause.

  • The SELECT statement can only contain specified column names, aggregate functions, constants, and expressions.

  • When using the HAVING clause, filter conditions should be applied to the aggregate functions rather than directly to the grouped columns.

By understanding and properly applying the GROUP BY and HAVING clauses, you can better organize and analyze your data using SQL.

Subqueries

Шпаргалка SQL: короткий посібник із основних команд

A subquery is also known as an inner or nested query. This is a query embedded within another SQL statement (such as a SELECT statement) or even inside another subquery.

Subqueries allow you to retrieve data based on the output of another query. The most common operators used with subqueries are:

  1. IN

  2. EXISTS

  3. ANY

  4. ALL

1. IN Operator

The IN operator tests if a value is within a set of values generated by the inner query. The syntax for using the IN operator with a subquery is as follows:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM other_table);

This returns rows from the outer query where the specified column value matches any of the values provided by the subquery.

Suppose you have an employee table and a departments table. You want to find employees who work in departments based at the head office. Here is a sample query

SELECT first_name, last_name
FROM employee
WHERE department IN (SELECT department FROM departments
                     WHERE location = "HQ");

For a more in-depth look, check out our article on the syntax.

2. EXISTS Operator

The EXISTS operator checks if there is at least one row resulting from the subquery. You can use the EXISTS operator to filter rows based on the existence of related data in another table. This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);

When the subquery returns at least one row, the EXISTS operator returns true, and the relevant rows from the outer query are included in the result.

3. ANY Operator

The ANY operator is used to compare a value to any value in a set of values provided by a subquery. It’s commonly used with comparison operators like =, <, >, <=, or >=.

This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (SELECT column_name FROM other_table WHERE condition);

This will return rows from the outer query where the specified column value meets the condition against any value from the subquery.

4. ALL Operator

The ALL operator compares a value to all values within a set of values provided by a subquery. The conditions must be true for every value in the subquery’s result. This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (SELECT column_name FROM other_table WHERE condition);

This returns rows from the outer query only if the specified column value satisfies the condition against all values in the subquery’s output.

Data Manipulation (DML)

Шпаргалка SQL: короткий посібник із основних команд

Data Manipulation Language (DML) is a sub-language within SQL for managing and updating data. The most common statements are:

  1. INSERT

  2. UPDATE

  3. DELETE

1. INSERT Statement

The INSERT statement allows you to insert rows into a table. Here’s the basic syntax:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

For example, if you want to insert a new row into a ‘users’ table with columns ‘id’, ‘name’, and ’email’, you would use the following query:

INSERT INTO users (id, name, email)
VALUES (1, 'John Doe', '[email protected]');

2. UPDATE Statement

The UPDATE statement allows you to modify existing row data in a table. This is the syntax:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

For example, if you want to update the email address of a user with the id ‘1’ in the ‘users’ table, your query would look like this:

UPDATE users
SET email = '[email protected]'
WHERE id = 1;

TIP: remember to include a WHERE clause to avoid updating all rows in the table by mistake.

3. DELETE Statement

The DELETE statement allows you to remove rows from a table. Here’s the syntax:

DELETE FROM table_name
WHERE condition;

Наприклад, якщо ви хочете видалити користувача з ідентифікатором «1» із таблиці «користувачі», ваш запит виглядатиме так:

DELETE FROM users
WHERE id = 1;

ПОРАДА : завжди включайте пропозицію WHERE, щоб указати, які рядки потрібно видалити, і уникнути видалення всіх рядків у таблиці.

Керування базами даних за допомогою DDL

Шпаргалка SQL: короткий посібник із основних команд

Мова визначення даних (DDL) — це підмова SQL, яка використовується для створення та зміни таблиць і самої бази даних. Найпоширеніші оператори DDL:

  1. СТВОРИТИ

  2. ЗМІНИТИ

  3. КРАПЛЯ

1. Інструкція CREATE

Оператор CREATE дозволяє створювати нові об’єкти бази даних, наприклад нові таблиці, представлення чи індекси. Під час створення нової таблиці вам потрібно визначити стовпці, їхні типи даних і будь-які обмеження.

Ось приклад створення таблиці замовлень:

CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    product VARCHAR(255) NOT NULL,
    customer_id INT NOT NULL
);

ПОРАДА: виберіть відповідні типи даних і обмеження, щоб забезпечити цілісність даних у своїх таблицях.

Для більш детального ознайомлення перегляньте нашу статтю на .

2. Оператор ALTER

Оператор ALTER допомагає змінювати існуючі об’єкти бази даних. Загальні способи використання включають:

  • додавання, змінення або видалення стовпців.

  • додавання або видалення обмежень з існуючої таблиці.

  • додавання первинних і зовнішніх ключів.

ДОДАТИ НОВУ КОЛОНКУ

ALTER TABLE users ADD COLUMN age INTEGER;

Змінити тип даних стовпця

ALTER TABLE users ALTER COLUMN age TYPE FLOAT;

Опустіть стовпець

ALTER TABLE users DROP COLUMN age;

Додайте унікальне обмеження

ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);

Додайте зовнішній ключ між таблицями

ALTER TABLE users ADD FOREIGN KEY (country_id) REFERENCES Country(country_id);

3. Інструкція DROP

Інструкція DROP дозволяє видаляти об’єкти бази даних, такі як таблиці, представлення чи індекси. Використовуйте його з обережністю, оскільки це остаточно видалить вказаний об’єкт і всі його дані.

Ось приклад:

DROP TABLE users;

ПОРАДА : перед виконанням оператора DROP переконайтеся, що у вас є належні резервні копії.

Якщо ви хочете дізнатися більше про моделювання даних, перегляньте це відео:

транзакції

Транзакції відіграють вирішальну роль у підтримці цілісності бази даних , особливо коли кілька пов’язаних операцій виконуються одночасно. Є три основні операції в обробці транзакцій:

  1. ПОЧАТИ

  2. КОМІТ

  3. ВІДКОТ

1. ПОЧАТИ

Оператор BEGIN означає початок транзакції. Виконуючи цю команду, ви встановлюєте відправну точку для свого набору операторів SQL.

BEGIN;

2. КОМІТ

Щоб завершити зміни та зберегти їх у базі даних, скористайтеся оператором COMMIT. Це гарантує, що всі операції в рамках транзакції виконуються успішно та постійно.

COMMIT;

Ось приклад повної транзакції з використанням класичного прикладу переказу коштів між рахунками:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

3. ВІДКОТ

Шпаргалка SQL: короткий посібник із основних команд

Під час роботи з транзакціями також важливо знати, як скасувати зміни, коли сталася помилка. Оператор ROLLBACK скасовує всі зміни, зроблені з початку транзакції:

ROLLBACK;

Ось приклад транзакції з обробкою помилок за допомогою ROLLBACK:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
IF @@ERROR <> 0
    ROLLBACK;
ELSE
    COMMIT;

Заключні думки

Як ви бачили в цій шпаргалці SQL, SQL пропонує безліч команд і функцій, які дозволяють створювати, обробляти та запитувати дані в реляційній базі даних.

Від основних команд, таких як SELECT, INSERT, UPDATE і DELETE, до більш складних конструкцій, таких як JOIN і підзапити, до сукупних функцій, які ми розглянули, SQL забезпечує гнучкість для обробки широкого спектру завдань з даними.

Продовжуйте повертатися до цієї шпаргалки, щоб пришвидшити !


Труба в R: підключення функцій за допомогою Dplyr

Труба в R: підключення функцій за допомогою Dplyr

У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX від LuckyTemplates дозволяє повернути рейтинг певного числа в кожному рядку таблиці, який є частиною списку чисел.

Вилучення тем і зображень LuckyTemplates із PBIX

Вилучення тем і зображень LuckyTemplates із PBIX

Дізнайтеся, як розібрати файл PBIX, щоб витягти теми та зображення LuckyTemplates із фону та використовувати їх для створення звіту!

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Python у LuckyTemplates: як встановити та налаштувати

Python у LuckyTemplates: як встановити та налаштувати

Дізнайтеся, як інсталювати мову програмування Python у LuckyTemplates і як використовувати її інструменти для написання кодів і відображення візуальних елементів.

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати динамічну маржу прибутку за допомогою LuckyTemplates і як ви можете отримати більше інформації, глибше досліджуючи результати.

Сортування стовпців таблиці дат у LuckyTemplates

Сортування стовпців таблиці дат у LuckyTemplates

Дізнайтеся, як правильно сортувати поля зі стовпців розширеної таблиці дат. Це хороша стратегія для складних полів.

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

У цій статті я поясню, як знайти найпопулярніші продукти для регіону за допомогою обчислень DAX у LuckyTemplates, включаючи функції TOPN і CALCULATE.

Вимір сміття: що це таке і чому це щось інше, але не сміття

Вимір сміття: що це таке і чому це щось інше, але не сміття

Дізнайтеся, як використовувати вимірювання сміття для позначок низької потужності, які ви хочете ефективно включити у свою модель даних.