SQL

Памятка по SQL: все команды, которые вы должны знать в 2022 году

Просто скопируйте и вставьте код и измените его в соответствии с вашими требованиями!

Нужен краткий справочник — воспользуйтесь этой шпаргалкой! 🔋

Язык структурированных запросов — SQL — один из наиболее широко используемых языков для доступа к данным, хранящимся в базе данных, а также для целей анализа данных.

Сегодня я даю вам шпаргалку, которая включает в себя наиболее распространенные и широко используемые команды SQL, которые вам когда-нибудь понадобятся.

В отличие от многих других шпаргалок в Google, эта дает вам более легкий доступ к синтаксису. Все, что вам нужно сделать, это просто скопировать и вставить код из этой статьи и изменить его в соответствии с вашим использованием.

Чтобы быстро найти нужный оператор SQL, вы можете использовать этот указатель.

· Querying Data From TableQuery data in columns column_1, column_2 from a table table_1Query all rows and columns from a table table_1Query data and filter rows with a conditionQuery distinct rows from a tableSort the result set in ascending or descending orderSkip offset of rows and return the next n rowsGroup rows using an aggregate functionFilter groups using HAVING clause
· Querying From Multiple TablesInner join tables: table_1 and table_2Left join tables: table_1 and table_2Right join tables: table_1 and table_2Perform full outer joinProduce a Cartesian product of rows in tablesProduce a Cartesian product of rows in tables without cross joinJoin table to itself using INNER JOIN clause
· Using SQL OperatorsCombine rows from two queriesReturn the intersection of two queriesSubtract a result set from another result setQuery rows using pattern matching %, _Query rows in a listQuery rows between two values: low and hightCheck if values in a table is NULL or not
· Managing tablesCreate a new table with three columns: column_1, column_2, column_3Delete the table from the databaseAdd a new column — column_1 — to the tableDrop column — column_1 — from the tableAdd a constraintDrop a constraintRename a table from table_1 to table_2Rename column column_1 to column_2Remove all data in a table
· Using SQL constraintsSet column_1 and column_2 as a primary keySet column — column_2 — as a foreign keyEnsure column_1 > 0 and values in column_1 >= column_2Set values in column — column_2 — not NULL
· Modifying DataInsert one row into a tableInsert multiple rows into a tableInsert rows from table_2 into table_1Update new value in the column — column_1 — for all rowsUpdate values in the columns column_1, column_2 that match the conditionDelete all data in a tableDelete subset of rows in a table
· Managing ViewsCreate a new view that consists of column_1 and column_2Create a new view with check optionCreate a recursive viewCreate a temporary viewDelete a view

Не теряя много времени, приступим. 🚀

Запрос данных из таблицы ✔️

Эти блоки кода используются для доступа к данным из одной таблицы. Конечно, у него есть оператор SELECT и FROM, но наряду с этим есть несколько вариантов использования, как вы можете видеть ниже.

Запрос данных в столбцах column_1, column_2 из таблицы table_1

SELECT column_1, column2
FROM table_1;

Запросить все строки и столбцы из таблицы table_1

SELECT * 
FROM table_1;

Запрос данных и фильтрация строк с условием

SELECT column_1, column2
FROM table_1
WHERE condition;

Запрос отдельных строк из таблицы

SELECT DISTINCT column_1
FROM table_1
WHERE condition;

Сортировать набор результатов в порядке возрастания или убывания

SELECT column_1, column2
FROM table_1
ORDER BY column_1 DESC;
-- The default order is ascending, the keyword DESC in ORDER BY stands for descending

Пропустить смещение строк и вернуть следующие n строк

SELECT column_1, column2
FROM table_1
ORDER BY column1 
LIMIT n OFFSET offset;

Группировать строки с помощью агрегатной функции

SELECT column_1, aggregate(column_2)
FROM table_1
GROUP BY column_1;

Фильтрация групп с использованием предложения HAVING

SELECT column_1, aggregate(column_2)
FROM table_1
GROUP BY column_1;
HAVING condition;

Запрос из нескольких таблиц ✔️

Эти запросы используются для извлечения данных из нескольких таблиц путем их объединения. Следовательно, эти запросы включают соединения, как указано ниже,

Таблицы внутреннего соединения: table_1 и table_2

SELECT column_1, column2
FROM table_1
INNER JOIN table_2 ON condition;

Левые объединенные таблицы: table_1 и table_2

SELECT column_1, column2
FROM table_1
LEFT JOIN table_2 ON condition;

Таблицы соединения справа: table_1 и table_2

SELECT column_1, column2
FROM table_1
RIGHT JOIN table_2 ON condition;

Выполнить полное внешнее соединение

SELECT column_1, column2
FROM table_1
FULL OUTER JOIN table_2 ON condition;

Произвести декартово произведение строк в таблицах

SELECT column_1, column2
FROM table_1
CROSS JOIN table_2;

Произведите декартово произведение строк в таблицах без перекрестного соединения

SELECT column_1, column2
FROM table_1, table_2;

Присоединить таблицу к самой себе, используя предложение INNER JOIN

SELECT column_1, column2
FROM table_1 A
INNER JOIN table_1 B ON condition;

Использование операторов SQL ✔️

Эти запросы используют математические и логические операторы для извлечения данных на основе условия, как показано ниже.

Объединить строки из двух запросов

SELECT column_1, column2
FROM table_1
UNION ALL
SELECT column_1, column2
FROM table_2

Вернуть пересечение двух запросов

SELECT column_1, column2
FROM table_1
INTERSECT
SELECT column_1, column2
FROM table_2

Вычесть набор результатов из другого набора результатов

SELECT column_1, column2
FROM table_1
MINUS
SELECT column_1, column2
FROM table_2

Запросить строки, используя сопоставление с образцом %, _

SELECT column_1, column2
FROM table_1
WHERE c1 LIKE pattern;
-- LIKE: Case-sensitive search for a pattern with a wildcard operator (%)
-- NOT LIKE: Returns the rows which are not matching with Case-sensitive pattern

Строки запроса в списке

SELECT column_1, column2
FROM table_1
WHERE column_1 IN value_list;
-- IN: Returns the rows when Column_1 value present in value_list
-- IN: Returns the rows when Column_1 value not present in value_list

Строки запроса между двумя значениями: low и high

SELECT column_1, column2
FROM table_1
WHERE  column_1 BETWEEN low AND high;

Проверьте, являются ли значения в таблице NULL или нет

SELECT column_1, column2
FROM table_1
WHERE  column_1 IS NULL;
-- NULL: Returns the rows when Column_1 value is NULL
-- NOT NULL: Returns the rows when Column_1 value is not NULL

Управление столами ✔️

Эти запросы используются для выполнения операций по управлению таблицами, таких как создание, обновление, удаление и многое другое, как показано ниже.

Создайте новую таблицу с тремя столбцами: столбец_1, столбец_2, столбец_3.

CREATE TABLE table_1 (
     column_1 INT PRIMARY KEY,
     column_2 VARCHAR NOT NULL,
     column_3 INT DEFAULT 0
);

Удалить таблицу из базы

DROP TABLE table_1 ;

Добавьте новый столбец — column_1 — в таблицу

ALTER TABLE table_1 ADD column_1;

Удалить столбец — column_1 — из таблицы

ALTER TABLE table_1 DROP COLUMN column_1 ;

Добавить ограничение

ALTER TABLE table_1 ADD constraint;

Удалить ограничение

ALTER TABLE table_1 DROP constraint;

Переименовать таблицу с table_1 на table_2

ALTER TABLE table_1 RENAME TO table_2;

Переименуйте столбец column_1 в column_2.

ALTER TABLE table_1 RENAME column_1 TO column_2;

Удалить все данные в таблице

TRUNCATE TABLE table_1;

Использование ограничений SQL ✔️

Эти запросы используются для указания правил для данных в таблице. Ограничения ограничивают тип данных, которые могут быть помещены в таблицу. Это обеспечивает точность и достоверность данных в таблице. Это включает в себя заявления, как показано ниже,

Установите column_1 и column_2 в качестве первичного ключа

CREATE TABLE table_1(
    column_1 INT, column_2 INT, column_3 VARCHAR,
    PRIMARY KEY (column_1,column_2)
);

Установить столбец — column_2 — в качестве внешнего ключа

CREATE TABLE table_1(
    column_1 INT PRIMARY KEY,  
    column_2 INT,
    FOREIGN KEY (column_2) REFERENCES table_2(column_2)
);

Убедитесь, что column_1 › 0 и значения в column_1 ›= column_2

CREATE TABLE t(
  column_1 INT, column_2 INT,
  CHECK(column_1> 0 AND column_1 >= column_2)
);

Установить значения в столбце — column_2 — не NULL

CREATE TABLE t(
     column_1 INT PRIMARY KEY,
     column_2 VARCHAR NOT NULL
);

Изменение данных ✔️

Эти запросы используются для работы с уже существующими таблицами. Сюда входят такие операции, как вставка, изменение и удаление значений, как показано ниже.

Вставить одну строку в таблицу

INSERT INTO table_1(column_list)
VALUES(value_list);

Вставка нескольких строк в таблицу

INSERT INTO table_1(column_list)
VALUES (value_list), 
       (value_list), …;

Вставить строки из table_2 в table_1

INSERT INTO table_1(column_list)
SELECT column_list
FROM table_2;

Обновить новое значение в столбце — column_1 — для всех строк

UPDATE table_1
SET column_1 = new_value;

Обновить значения в столбцах column_1, column_2, соответствующие условию

UPDATE table_1
SET column_1 = new_value, 
    column_2 = new_value
WHERE condition;

Удалить все данные в таблице

DELETE FROM table_1;

Удалить подмножество строк в таблице

DELETE FROM table_1
WHERE condition;

Управление представлениями ✔️

VIEW в SQL Server похож на виртуальную таблицу, которая содержит данные из одной или нескольких таблиц. Он не содержит никаких данных и физически не существует в базе данных. Эти запросы используются для выполнения операций по управлению представлениями, как показано ниже.

Создайте новый вид, состоящий из column_1 и column_2

CREATE VIEW view_1(column_1,column_2) 
AS
SELECT column_1, column_2
FROM table_1;

Создайте новое представление с опцией проверки

CREATE VIEW view_1(column_1,column_2) 
AS
SELECT column_1, column_2
FROM table_1;
WITH [CASCADED | LOCAL] CHECK OPTION;

Создать рекурсивное представление

CREATE RECURSIVE VIEW view_1 
AS
select-statement -- anchor part
UNION ALL
select-statement; -- recursive part

Создать временное представление

CREATE TEMPORARY VIEW view_1
AS
SELECT column_1, column_2
FROM table_1;

Удалить вид

DROP VIEW view_name;

Это краткая справочная шпаргалка. Я надеюсь, что вы найдете его освежающим и полезным. Он содержит все часто используемые команды SQL. Дайте мне знать, если я что-то забуду.

Вы можете изучить материалы Medium, Став участником Medium. Поверьте мне, вы можете получить неограниченный доступ к новостям и ежедневным интересным дайджестам Medium. Конечно, небольшая часть ваших гонораров поступает мне в качестве поддержки. 🙂

Не забудьте Подписаться на мою рассылку, чтобы получать первые копии моих статей.

Спасибо, что прочитали!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.