Основные команды SQL для управления базами данных

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

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

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

Давайте приступим!

Мы рассмотрим:

  • Что такое реляционная база данных?
  • Подмножества языка SQL
  • Анатомия типичной команды SQL
  • Лучшие команды SQL, которые необходимо изучить
    • 1. CREATE DATABASE и ALTER DATABASE
    • 2. ИСПОЛЬЗОВАТЬ
    • 3. CREATE TABLE, ALTER TABLE и DROP TABLE
    • 4. INSERT INTO
    • 5. UPDATE
    • 6. DELETE
    • 7. SELECT
    • 8. ПОРЯДОК ПО
    • 9. GROUP BY
    • 10. HAVING
    • 11. UNION и UNION ALL
    • 12. JOIN
    • 13. CREATE INDEX и DROP INDEX
    • 14. GRANT и REVOKE
    • 15. LIKE
  • Подведение итогов и следующие шаги

Что такое реляционная база данных?

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

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

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

Подмножества SQL

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

Эти команды будут разделены на четыре категории:

  • Команды языка манипулирования данными (DML)
  • Команды языка определения данных (DDL)
  • Команды языка управления данными (DCL)
  • Операторы управления транзакциями (TCS)

Команды DML используются для манипулирования и выполнения операций над данными в базе данных. Примеры команд DML включают SELECT, INSERT и UPDATE.

Команды DDL используются для определения структуры базы данных. Вы можете изменить схему базы данных, создавая новые таблицы и объекты или изменяя их атрибуты (такие как тип данных, имя таблицы и т.д.). Примеры команд DDL включают CREATE и ALTER.

Команды DCL используются для управления разрешениями пользователей и доступом к базе данных. Примеры команд DCL включают GRANT и REVOKE.

Команды TCS используются для управления транзакциями в базе данных. Транзакции — это единицы работы, которые могут быть зафиксированы или откатаны. Примеры команд TCS включают COMMIT и ROLLBACK.

Теперь, когда мы рассмотрели различные типы команд SQL, давайте подробнее рассмотрим пример типичного SQL-запроса.

Анатомия типичного SQL-запроса

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

Хотя команды SQL не чувствительны к регистру, считается хорошей практикой писать их в верхнем регистре.

Большинство SQL-запросов выполняются в виде DML-запросов.[1], и основной синтаксис для него следующий:

SELECT column_name AS alias_name
   FROM table_name
   WHERE condition
   GROUP BY column_name
   HAVING condition
   ORDER BY column_name DESC;
Войти в полноэкранный режим Выйти из полноэкранного режима

Давайте разберем каждую часть этого синтаксиса:

    • Вы можете задать столбцу временный псевдоним, используя ключевое слово AS и указав имя псевдонима.
  • Пункт WHERE можно использовать в сочетании с AND, OR, BETWEEN, IN, LIKE для создания запросов.

Примечание: Это основной синтаксис для многих запросов SQL! Не все запросы следуют именно этому синтаксису, но знание этой структуры поможет в управлении базами данных, анализе и многом другом.

Основные команды SQL, которые необходимо выучить

1. CREATE DATABASE и ALTER DATABASE

Команда CREATE DATABASE создает новую базу данных. База данных должна быть создана для хранения любых таблиц или данных.

Синтаксис:

CREATE DATABASE database_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

CREATE DATABASE fruit_database;
Войти в полноэкранный режим Выход из полноэкранного режима

Команда ALTER DATABASE изменяет существующую базу данных. Например, команда ALTER DATABASE может добавить или удалить файлы из базы данных.

Синтаксис:

ALTER DATABASE database_name action;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

ALTER DATABASE fruit_database ADD FILE 'mango.txt';
Войти в полноэкранный режим Выход из полноэкранного режима

2. USE

USE — это выбор базы данных. Эта команда часто используется для начала работы с только что созданной базой данных.

Синтаксис:

USE database_name;
Войти в полноэкранный режим Выход из полноэкранного режима

Пример:

USE fruit_database; 
Войти в полноэкранный режим Выйти из полноэкранного режима

После выбора базы данных все последующие SQL-команды будут выполняться на этой базе данных.

Следует помнить, что команда USE может выбирать только те базы данных, которые уже были созданы.

Если база данных с указанным именем не существует, то будет выдана ошибка.

3. CREATE TABLE, ALTER TABLE и DROP TABLE

Команда CREATE TABLE создает новую таблицу в базе данных. Таблица должна быть создана до того, как в нее можно будет вставить какие-либо данные.

Синтаксис:

CREATE TABLE table_name (
    column_name data_type,
    column_name data_type,
    ...
);
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

CREATE TABLE people_table (
    id INTEGER,
    name VARCHAR(255),
    age INTEGER
);
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы создаем таблицу people_table с тремя колонками: id, name и age.

Для каждого столбца необходимо указать тип данных. Некоторые распространенные типы данных включают INTEGER, VARCHAR и DATE.

Команда ALTER TABLE изменяет существующую таблицу. Например, команда ALTER TABLE может использоваться для добавления или удаления столбцов из таблицы.

Синтаксис:

ALTER TABLE table_name action;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

ALTER TABLE people_table 
ADD email VARCHAR(255);
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы добавляем новый столбец email в таблицу people_table. Необходимо указать тип данных для нового столбца.

Также можно использовать команду ALTER TABLE для изменения типа данных существующего столбца.

Синтаксис:

ALTER TABLE table_name 
MODIFY COLUMN column_name data_type;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

ALTER TABLE people_table 
MODIFY COLUMN last_name 
VARCHAR(128);
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы изменяем столбец last_name на тип данных VARCHAR(128).

Обратите внимание, что вы не можете использовать команду ALTER TABLE для изменения типа данных столбца, если в нем хранятся какие-либо данные.

Чтобы изменить тип данных столбца, необходимо сначала удалить все данные из этого столбца.

Синтаксис:

ALTER TABLE table_name 
DROP COLUMN column_name;
Войти в полноэкранный режим Выход из полноэкранного режима

Пример:

ALTER TABLE people_table 
DROP COLUMN email;  
Войти в полноэкранный режим Выход из полноэкранного режима

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

Команда DROP TABLE удаляет всю таблицу из базы данных. Эта команда навсегда удалит все данные, хранящиеся в таблице.

Синтаксис:

DROP TABLE table_name;
Войти в полноэкранный режим Выход из полноэкранного режима

Пример:

DROP TABLE people_table;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы удаляем таблицу people_table из базы данных.

Важно быть осторожным при использовании команды DROP TABLE, так как ее нельзя отменить! После удаления таблицы все данные, хранящиеся в ней, будут навсегда потеряны.

Альтернативой команде DROP TABLE является команда TRUNCATE TABLE. Эта команда удалит все данные из таблицы, но не удалит саму таблицу.

Синтаксис:

TRUNCATE TABLE table_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

TRUNCATE TABLE people_table;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы удаляем все данные из таблицы people_table. Сама таблица не удаляется, поэтому информация из столбцов сохраняется.

4. INSERT INTO

Команда INSERT INTO вставляет данные в таблицу.

Синтаксис:

INSERT INTO table_name (column_name, column_name, ...)
VALUES (value, value, ...);
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

INSERT INTO people_table (id, name, age)
VALUES (NULL, 'Crystal', 64);
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы вставляем новую строку в таблицу people_table. Первый столбец в таблице — id. Мы указали, что этот столбец должен быть установлен в NULL, что означает, что база данных автоматически сгенерирует уникальный идентификатор для этой строки.

Второй и третий столбцы таблицы — name и age, соответственно. Мы указали, что эти столбцы должны быть установлены в значения 'Crystal' и 64 для этой строки.

5. UPDATE

Команда UPDATE изменяет данные, уже хранящиеся в таблице.

Синтаксис:

UPDATE table_name
SET column_name = value, column_name = value, ...
WHERE condition;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

UPDATE people_table
SET name = 'Crystal Sequel', age = 65
WHERE id = 100;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы обновляем строку с id = 100 в таблице people_table. Мы устанавливаем столбец name в 'Crystal Sequel' и столбец age в 65.

Важно: Оговорка WHERE необходима при использовании команды UPDATE. Без предложения WHERE все строки в таблице будут обновлены!

6. DELETE

Команда DELETE удаляет данные из таблицы.

Синтаксис:

DELETE FROM table_name
WHERE condition;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

DELETE FROM people_table
WHERE id = 100;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы удаляем строку с id=100 из таблицы people_table.

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

7. SELECT и FROM

Команда SELECT запрашивает данные FROM таблицы.

Синтаксис:

SELECT column_name, column_name, ...
FROM table_name
WHERE condition;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT name, age
FROM people_table
WHERE id = 100;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы запрашиваем people_table для получения имени и возраста строки, в которой id=100.

Команды SELECT и FROM — две наиболее важные команды SQL, поскольку они позволяют задавать и извлекать данные из базы данных.

8. ПОРЯДКОВЫЙ НОМЕР

Команда ORDER BY сортирует результаты запроса.

Синтаксис:

SELECT column_name, column_name, ...
   FROM table_name
   WHERE condition
   ORDER BY column_name [ASC | DESC];
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT name, age
   FROM people_table
   WHERE id = 100
   ORDER BY age DESC;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы запрашиваем people_table для получения имени и возраста строки с id=100. Затем мы сортируем результаты по возрасту в порядке убывания.

Команда ORDER BY часто используется в сочетании с командой SELECT для получения данных из таблицы в определенном порядке.

Важно отметить, что команда ORDER BY работает не только с числовыми данными — ее также можно использовать для сортировки текстовых данных по алфавиту!

ASC: По умолчанию порядок сортировки будет возрастающим (A, B, C, … Z).

DESC: Нисходящий порядок (Z, Y, X, . . . A).

9. ГРУППА ПО

Команда GROUP BY группирует результаты запроса по одному или нескольким столбцам.

Синтаксис:

SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE condition
    GROUP BY column_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT name, count(*)
   FROM people_table
   WHERE country='US'
   GROUP BY names;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы запрашиваем people_table для всех уникальных имен в таблице. Затем мы используем функцию COUNT(), чтобы подсчитать, сколько раз встречается каждое имя.

Команда GROUP BY часто используется с агрегатными функциями (такими как COUNT(), MIN(), MAX(), SUM() и т.д.), чтобы сгруппировать данные и рассчитать итоговое значение.

Столбцы, указанные в предложении GROUP BY, также должны быть включены в предложение SELECT.

10. HAVING

Команда HAVING фильтрует результаты запроса на основе одной или нескольких агрегатных функций.

Синтаксис:

SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE condition
    GROUP BY column_name
    HAVING condition;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT name, count(*)
   FROM people_table
   WHERE country='US'
   GROUP BY names
   HAVING count(*) > 0;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы запрашиваем people_table для всех уникальных имен в таблице. Затем мы используем функцию COUNT(), чтобы подсчитать, сколько раз встречается каждое имя.

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

Подобно предложению GROUP BY, мы также можем использовать предложение HAVING вместе с агрегатными функциями для фильтрации результатов запроса.

Агрегатные функции:

Колонки, указанные в предложении GROUP BY, должны быть также включены в предложение SELECT.

HAVING очень похож на WHERE, но есть несколько важных отличий:

11. UNION и UNION ALL

Команда UNION объединяет результаты двух или более запросов в один набор данных. Она часто используется для объединения данных из нескольких таблиц в один набор данных.

Синтаксис:

SELECT column_name FROM table_name1
UNION
SELECT column_name FROM table_name2;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT names FROM employee_table
UNION
SELECT email FROM people_table;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы используем SELECT и UNION для запроса имен из таблицы employee_table, а затем объединяем их с электронными адресами из таблицы people_table в один набор результатов.

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

Чтобы объединить данные из нескольких таблиц, в которых количество и порядок столбцов не совпадают, в один набор данных, используйте UNION ALL вместо UNION.

Синтаксис:

SELECT column_name FROM table_name_one
UNION ALL
SELECT column_name FROM table_name_two;
Войти в полноэкранный режим Выход из полноэкранного режима

Пример:

SELECT names FROM people_table
UNION ALL ALL
SELECT email FROM people_table;
Вход в полноэкранный режим Выход из полноэкранного режима

В этом примере мы запрашиваем people_table для всех уникальных имен в таблице. Затем мы используем команду UNION ALL для объединения этого набора данных с другим набором данных, содержащим все уникальные адреса электронной почты в таблице.

12. JOIN

Команда JOIN — это способ объединения данных из двух или более таблиц в одну новую таблицу. Объединяемые таблицы называются левой и правой таблицами.

Наиболее распространенным типом объединения является ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ. Внутреннее соединение объединяет только те строки из левой таблицы, которые имеют совпадения в правой таблице.

Синтаксис:

SELECT column_name FROM left_table
INNER JOIN right_table 
ON left_table.column_name = right_table.column_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT name, email FROM people_table
INNER JOIN employee_table 
ON people_table.id = yourtable.id;
Войти в полноэкранный режим Выход из полноэкранного режима

В этом примере мы используем INNER JOIN для объединения данных из people_table и employee_table. Мы объединяем таблицы с помощью столбца id.

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

LEFT OUTER JOIN: Левое соединение объединяет все строки из левой таблицы, даже если в правой таблице нет совпадений.

Синтаксис:

SELECT column_name(s) FROM left_table
LEFT OUTER JOIN right_table 
ON left_table.column_name = right_table.column_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

RIGHT OUTER JOIN: Правое соединение объединяет все строки из правой таблицы, даже если в левой таблице нет совпадений.

Синтаксис:

SELECT column_name(s) FROM left_table
RIGHT OUTER JOIN right_table ON left_table.column_name = right_table.column_name;
Войти в полноэкранный режим Выход из полноэкранного режима

FULL OUTER JOIN: Полное внешнее соединение объединяет все строки из обеих таблиц, даже если ни в одной из них нет совпадений.

Синтаксис:

SELECT column_name(s) FROM left_table
FULL OUTER JOIN right_table ON left_table.column_name = right_table.column_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

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

13. CREATE INDEX и DROP INDEX

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

Синтаксис:

CREATE INDEX index_name ON table_name (column_name);
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

CREATE INDEX people ON employee_table (names);
Войти в полноэкранный режим Выход из полноэкранного режима

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

Синтаксис:

DROP INDEX index_name ON table_name;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

DROP INDEX people ON employee_table;
Войти в полноэкранный режим Выйти из полноэкранного режима

После удаления индекса он больше не может использоваться базой данных для ускорения выполнения SQL-запросов.

14. GRANT и REVOKE

Команды GRANT и REVOKE управляют разрешениями в базе данных.

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

Синтаксис:

GRANT permission_type ON object_name TO user;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

GRANT CREATE TABLE ON important_database TO bob;
Войти в полноэкранный режим Выход из полноэкранного режима

Команда REVOKE удаляет разрешение пользователя на выполнение действий.

Синтаксис:

REVOKE permission_type ON object_name FROM user;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

REVOKE CREATE TABLE ON important_database FROM bob;
Войти в полноэкранный режим Выход из полноэкранного режима

Управление разрешениями в базе данных является важной задачей для администраторов баз данных. Команды GRANT и REVOKE являются двумя наиболее важными командами для управления разрешениями.

15. LIKE

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

Синтаксис:

SELECT column_name(s) 
FROM table_name 
WHERE column_name LIKE pattern;
Войти в полноэкранный режим Выйти из полноэкранного режима

Пример:

SELECT first_name 
FROM class_roster 
WHERE first_name LIKE '%a';
Войти в полноэкранный режим Выйти из полноэкранного режима

В приведенном примере запрос возвращает все записи из таблицы class_roster, в которых столбец first_name содержит значение, заканчивающееся на букву a.

Размещение модуля % после буквы a вернет все записи, в которых столбец first_name содержит значение, начинающееся с буквы a.

Помещение модуля % до и после буквы «a» вернет все записи, в которых столбец first_name содержит значение, содержащее букву «a».

Подведение итогов и следующие шаги

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

Если вы хотите узнать больше о SQL, мы рекомендуем вам продолжать практиковаться с реальными наборами данных. Чем больше вы будете использовать SQL, тем лучше вы будете писать SQL-запросы!

Чтобы начать изучать эти и другие понятия, ознакомьтесь с курсом Educative «Вводное руководство по SQL».

Успешного обучения!

Продолжайте изучать SQL на сайте Educative

  • Что такое соединения SQL? Объяснение типов соединений SQL
  • Разберитесь в 40 лучших вопросах для собеседования по SQL
  • Учебник по MySQL: Руководство для начинающих по использованию MySQL

Начать обсуждение

Есть ли еще какие-нибудь важные команды SQL, которые мы упустили? Была ли эта статья полезной? Сообщите нам об этом в комментариях ниже!

Оцените статью
devanswers.ru
Добавить комментарий