Освоение основ SQL: пошаговое введение для начинающих

Язык структурированных запросов (SQL) — это универсальный язык данных. Это стандартизированный язык программирования, широко используемый для управления реляционными базами данных и выполнения различных задач по обработке данных. SQL очень важен для ролей в науке о данных, разработке программного обеспечения и анализе данных. Если вы новичок, изучение SQL — это ключевой шаг на вашем пути к освоению управления данными.

Эта статья демистифицирует все основные концепции SQL, которые вам нужно понять всего за 10 минут. Давайте погрузимся!

TLDR; Нет времени читать? Вот видео, которое поможет вам подробно понять все основы SQL всего за 10 минут.

1. Реляционные базы данных и SQL

Первая концепция, которую нужно понять в SQL, — это идея реляционной базы данных. База данных — это организованный набор данных. В реляционной базе данных эти данные структурированы в таблицы, которые могут быть связаны друг с другом на основе общих атрибутов.

SQL, стандартизированный язык программирования, используется для связи с реляционной базой данных. Он позволяет создавать, извлекать, обновлять и удалять (обычно называемые операциями CRUD) записи в этих таблицах.

В SQL мы можем создать базу данных, просто используя следующий синтаксис:

CREATE DATABASE databasename;

2. Таблицы, записи и поля

Таблица, также известная как отношение, представляет собой структуру, состоящую из строк и столбцов. Каждая строка в таблице представляет собой запись (или кортеж), а каждый столбец представляет собой поле (или атрибут).

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

Синтаксис для создания таблицы в базе данных:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);

3. Типы данных SQL

В SQL каждый столбец в таблице должен иметь имя и тип данных. Тип данных указывает, какие данные может содержать столбец. Вот несколько важных типов данных SQL:

  • Целое число: используется для целых чисел (т. е. чисел без десятичных точек).
  • Decimal and Float: используется для дробных чисел. Разница между ними заключается в точности и пространстве для хранения.
  • Char и Varchar: используются для символов и строк. CHAR предназначен для строк фиксированной длины, а VARCHAR — для строк переменной длины.
  • Дата и время: как следует из их названий, эти типы используются для хранения даты и времени соответственно.

Например, таблица «Пользователи» может содержать столбец «Идентификатор пользователя» с типом данных «Целое число». Вот синтаксис,

CREATE TABLE Users (
 UserID INT,
 UserName VARCHAR(100),
);

4. SQL-команды

Команды SQL — это инструкции, используемые для связи с базой данных. Они делятся на несколько типов, включая язык определения данных (DDL), язык манипулирования данными (DML) и язык управления данными (DCL). .

DDL

Эти команды используются для определения или изменения структуры объектов базы данных. К ним относятся CREATE (для создания новой таблицы или базы данных), ALTER (для изменения существующего объекта базы данных), DROP (для удаления базы данных). объект) и TRUNCATE (чтобы удалить все записи из таблицы, но не саму таблицу).

ДМЛ

Эти команды используются для извлечения, добавления, изменения или удаления данных в базе данных. Они включают SELECT (для выбора данных из базы данных), INSERT INTO (для вставки новых данных в базу данных), UPDATE (для изменения существующих данных) и DELETE (для удаления данных).

ДКЛ

Эти команды используются для создания ролей, разрешений и ссылочной целостности в дополнение к таким элементам управления, как GRANT, REVOKE и DENY.

5. Запрос данных

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

6. Оператор SELECT

Оператор SELECT — одна из самых распространенных команд SQL. Он извлекает данные из базы данных и позволяет фильтровать, сортировать, объединять и группировать данные. Основной синтаксис:

SELECT column1, column2 FROM table_name;

Чтобы выбрать все столбцы, мы используем «*»:

SELECT * FROM table_name;

7. ГДЕ Предложение

Предложение WHERE используется для фильтрации записей. Синтаксис:

SELECT column1, column2 FROM table_name WHERE condition;

Например,

SELECT * FROM Customers WHERE Country='Germany';

8. ПРИСОЕДИНЯЙТЕСЬ к пункту

Предложение JOIN используется для объединения строк из двух или более таблиц на основе связанного столбца. Существуют различные типы соединений: INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN.

Пример ВНУТРЕННЕГО СОЕДИНЕНИЯ, которое возвращает записи, имеющие совпадающие значения в обеих таблицах:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;

9. Предложения GROUP BY и HAVING

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

HAVING используется для фильтрации результатов группировки аналогично тому, как WHERE фильтрует отдельные строки.

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition;

10. Функции SQL

SQL предлагает множество функций для управления данными. Некоторые часто используемые функции: COUNT(), SUM(), AVG(), MIN(), MAX() и т. д.

Вот пример с функцией COUNT():

SELECT COUNT(column_name)
FROM table_name;

11. Ограничения SQL

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

  • NOT NULL: это ограничение гарантирует, что конкретный столбец должен содержать значение и не может оставаться пустым (пустым) при вставке или обновлении данных в таблице.
  • UNIQUE: ограничение UNIQUE гарантирует, что все значения в указанном столбце различны, то есть в этом столбце не допускаются повторяющиеся значения.
  • PRIMARY KEY. Это ограничение уникально идентифицирует каждую запись в таблице и гарантирует, что выбранные столбцы имеют уникальные и ненулевые значения, выступающие в качестве уникального идентификатора для таблицы.
  • ВНЕШНИЙ КЛЮЧ. Ограничение ВНЕШНИЙ КЛЮЧ устанавливает связь между двумя таблицами, обеспечивая ссылочную целостность, гарантируя, что значения в столбце одной таблицы совпадают со значениями в столбце первичного ключа другой таблицы.
  • CHECK. Ограничение CHECK позволяет указать условие, которое должно выполняться для данных в столбце, обеспечивая целостность данных за счет ограничения допустимого диапазона или значений.
  • DEFAULT: это ограничение присваивает значение по умолчанию столбцу, если во время операции INSERT не указано явное значение, гарантируя, что столбец всегда имеет значение, даже если оно не указано явно.

Вот пример синтаксиса,

CREATE TABLE Orders (
 OrderID int NOT NULL,
 OrderNumber int NOT NULL UNIQUE,
 OrderDate date DEFAULT GETDATE()
);

12. Индексация

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

CREATE INDEX idx_orderID
ON Orders (OrderID);

13. Подзапросы SQL

Подзапрос — это запрос внутри другого запроса. Подзапросы можно использовать с операторами SELECT, INSERT, UPDATE и DELETE, а также с такими операторами, как =, ‹, ›, ›=, ‹=, IN, BETWEEN и т. д.

Вот основной синтаксис подзапроса:

SELECT column1, column2, ...
FROM table_name
WHERE column_name OPERATOR (SELECT column_name FROM another_table WHERE condition);

В этом синтаксисе:

  • column1, column2, ... — это столбцы, которые вы хотите получить из основной таблицы.
  • table_name — это имя запрашиваемой основной таблицы.
  • column_name — это столбец, используемый для сравнения в подзапросе.
  • OPERATOR — это оператор сравнения, такой как '=', '›', '‹', 'IN', 'NOT IN' и т. д., используемый для связывания основного запроса и подзапроса.
  • another_table — это имя таблицы, используемой в подзапросе.
  • condition — это условие, используемое для фильтрации данных в подзапросе.

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

14. Представления SQL

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

Чтобы создать представление, вы используете оператор CREATE VIEW со следующим синтаксисом:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

В этом синтаксисе:

  • view_name: имя представления, которое вы хотите создать.
  • column1, column2, ...: список столбцов, которые вы хотите включить в представление. Эти столбцы можно выбрать из одной или нескольких таблиц.
  • table_name: имя таблицы (таблиц), из которых представление получает данные.
  • condition: необязательное условие, фильтрующее данные в представлении. Он использует тот же синтаксис, что и предложение WHERE в обычном SQL-запросе.

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

15. Транзакции

Транзакция — это единица работы, выполняемая с базой данных. Транзакции в SQL следуют свойствам ACID, обеспечивая надежность данных во всех транзакциях.

Транзакции гарантируют, что либо все операции внутри блока будут успешно завершены, либо ни одна из них не вступит в силу. Стандартный синтаксис для транзакций SQL выглядит следующим образом:

BEGIN TRANSACTION; -- Start the transaction

-- SQL statements to perform various database operations
-- For example, INSERT, UPDATE, DELETE, etc.

COMMIT; -- Commit the transaction, making all changes permanent

-- If any issue arises during the transaction, use ROLLBACK to undo the changes:

ROLLBACK; -- Rollback the transaction, undoing all the changes

Некоторые системы баз данных, такие как MySQL, PostgreSQL и SQL Server, также поддерживают неявные транзакции, что означает, что каждый оператор SQL считается отдельной транзакцией, если не указано иное с помощью команд BEGIN TRANSACTION, COMMIT или ROLLBACK.

Однако рекомендуется использовать явные транзакции (как показано выше) при работе с критическими или сложными операциями для обеспечения целостности и согласованности данных.

16. Хранимые процедуры

Хранимая процедура — это подготовленный код SQL, который можно сохранить, чтобы его можно было повторно использовать повторно. Его можно рассматривать как пакетный файл, содержащий ряд команд SQL.

Ниже приведены общие примеры синтаксиса для создания простой хранимой процедуры SQL в MySQL и SQL Server:

Синтаксис MySQL:

DELIMITER //
CREATE PROCEDURE procedure_name (parameter1 datatype, parameter2 datatype, ...)
BEGIN
    -- SQL statements and logic for the procedure
    -- You can use the parameters in your SQL queries and operations
END //
DELIMITER ;

Синтаксис SQL Server:

CREATE PROCEDURE procedure_name
    @parameter1 datatype,
    @parameter2 datatype,
    -- Define other parameters as needed
AS
BEGIN
    -- SQL statements and logic for the procedure
    -- You can use the parameters in your SQL queries and operations
END;

В обоих случаях вы определяете имя процедуры, входные параметры (если есть), а затем записываете операторы SQL и логику внутри блоков BEGIN и END. После создания хранимой процедуры вы можете вызвать ее по имени с соответствующими аргументами для выполнения определенной логики SQL.

Заключение

Всего за 12 минут вы ознакомились с основными понятиями SQL, от понимания баз данных и SQL до различных команд SQL, функций, ограничений и индексирования. Вы сделали большой шаг к владению SQL. Практикуйте эти концепции и углубляйтесь, чтобы стать настоящим маэстро SQL!

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

Удачных запросов!

Вам также может понравиться