Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход

Получить консультацию

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

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

Персональный менеджер ответит на ваши вопросы и проведет через все этапы заключения договора: — подберет оборудование — сформирует коммерческое предложение — поможет с миграцией сервера к нам

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Рег.облако
    3. Облачные базы данных
    4. Заказ и управление услугой «Облачные базы данных»
    5. Основные команды SQL

    Основные команды SQL

    В этой статье разберемся, что такое SQL и как работают основные SQL-запросы.

    Что такое SQL

    SQL (Structured Query Language) — язык структурированных запросов. Он предназначен для управления реляционными базами данных в СУБД, таких как PostgreSQL, MySQL, Oracle и Microsoft SQL Server. Что такое реляционные базы данных, мы рассказали в статье. С помощью SQL можно добавлять, удалять, изменять и извлекать данные из базы данных. Также язык позволяет описывать данные и их структуру, взаимодействовать с другими языками через библиотеки и модули SQL и устанавливать разрешения на доступ к данным.

    SQL — наиболее распространенный язык программирования в области работы с БД.

    — Он используется для:

    — веб-разработки,

    — бизнес-аналитики,

    — администрирования баз данных,

    — обработки данных.

    Виды SQL команд

    Существует несколько видов SQL-команд.

    Data Definition Language (DDL), или язык определения данных — это группа операторов для определения структуры БД и работы с объектами этой базы. DDL включает в себя следующие команды:

    • 1

      CREATE. Команда для создания новых объектов базы данных, например, таблиц, индексов или представлений. Создадим с помощью этой команды таблицу:

      CREATE TABLE TableName;

      Вместо TableName укажите название таблицы.

    • 2

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

      ALTER TABLE TableName ADD COLUMN column INT;

      Где:

      — TableName — название таблицы;

      — column — название столбца.

    • 3

      DROP. Команда для удаления объектов базы данных. Удалим таблицу с помощью этой команды:

      DROP TABLE TableName;

      Вместо TableName укажите название таблицы.

    Data Manipulation Language (DML), или язык манипуляций с данными. Это команды для управления данными. DML включает в себя:

    • 1

      SELECT. Команда для извлечения данных из БД. Извлечем все данные из таблицы:

      SELECT * FROM TableName;

      Вместо TableName укажите название таблицы.

    • 2

      INSERT. Вставляет новые записи в таблицу. Предположим, у нас есть таблица с наименованиями и стоимостью товаров, добавим в нее запись:

      INSERT INTO Products (id, name, price) VALUES (1, 'bread', 30);

      Где:

      — id — уникальный идентификатор товара;

      — name — название товара в строковом формате;

      — price — цена товара в числовом формате.

    • 3

      UPDATE. Обновляет и изменяет существующие записи в таблице. Например, изменим стоимость товара в таблице с id равным '1':

      UPDATE Products SET price = 35 WHERE id = 1;
    • 4

      DELETE. Удаляет записи из таблицы. Команда DELETE удалит все строки в таблице, если не указано других условий. Удалим товар с идентификатором равным '1' из таблицы Products:

      DELETE FROM Products WHERE id = 1;

    Data Control Language (DCL), или язык контроля данных — группа операторов для управления правами доступа к данным в БД. Администраторы баз данных могут устанавливать различные уровни доступа для пользователей или ролей для обеспечения безопасности и защиты данных. DCL-команды:

    • 1

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

      GRANT ALL PRIVILEGES ON Products TO user;

      Где:

      — Products — название таблицы, к которой вы хотите предоставить доступ;

      — user — пользователь, которому эти права выдаются.

    • 2

      REVOKE. Команда отзывает предоставленные к объектам права. Например:

      REVOKE ALL PRIVILEGES ON Products TO user;

      Где:

      — Products — название таблицы, доступ к которой необходимо ограничить;

      — user — пользователь, у которого отзываются права.

    Transaction Control Language (TCL), или язык управления транзакциями — группа операторов, управляющих транзакциями в базе данных. SQL команды транзакции:

    • 1.

      COMMIT. Фиксирует изменения, сделанные в транзакции, сохраняет их в БД. После выполнения команды изменения необратимы.

    • 2.

      ROLLBACK. Отменяет изменения, сделанные в текущей транзакции.

    • 3.

      SAVEPOINT. Создает точки сохранения внутри транзакции. При необходимости поможет сделать откат до определенного состояния.

    Правила написания запросов

    При написании SQL-запросов необходимо следовать следующим правилам:

    • 1

      SQL не чувствителен к регистру, например, SELECT можно написать как в верхнем, так и в нижнем регистре. Однако писать ключевые слова принято в верхнем регистре, а имена таблиц и столбцов в нижнем. Также имена таблиц и столбцов в запросах нужно писать в точности так, как они были названы изначально. Например, если таблица называется Products, а в запросе написать products, запрос выполнится некорректно.

    • 2

      Оставлять комментарии можно несколькими способами. Многострочные комментарии будут начинаться с '/*' и заканчиваться '*/'. Однострочные комментарии будут писаться с двойного дефиса (--). Например:

      /*  Это 
       многострочный 
       комментарий
      */
      CREATE DATABASE Name;
      
      -- Это однострочный комментарий
      CREATE DATABASE Name; -- Это тоже однострочный комментарий
    • 3

      Если имя таблицы, столбца или значение содержит пробелы или специальные символы, оно должно быть заключено в кавычки (« »). Строковые значения заключаются в одинарные кавычки ('). Например:

      -- Создание таблицы с именем, содержащим пробелы
      
      CREATE TABLE "my table";
      
      -- Вставка строки
      
      INSERT INTO my_table (column) VALUES ('строка');
    • 4
      Каждый SQL запрос должен завершаться точкой с запятой (;).
    • 5

      Для экранирования специальных символов внутри строк используется обратный слеш (\). Например, если мы ищем строчку с цитатой, запрос будет выглядеть так:

      SELECT * FROM Quotes WHERE contents LIKE 'Plato is said to once have said \"Lorem ipsum dolor sit amet\".';
    • 6
      Числа вносятся в таблицы без кавычек.
    • 7
      Пробелы и отступы игнорируются в SQL-запросах. Однако их стоит использовать, чтобы запросы имели читабельный вид.

    Основные команды SQL

    SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP — это основные команды SQL.

    Рассмотрим синтаксис некоторых из них. Для примера воспользуемся данными из таблицы Employees со списком сотрудников компании.

    id
    name
    age
    salary
    hobby
    1
    Rita
    23
    15
    job
    2
    Alla
    25
    12
    job
    3
    Oleg
    54
    10
    job
    4
    Seva
    75
    45
    gym
    5
    Maria
    45
    18
    job
    6
    Olya
    32
    23
    job

    SELECT

    Команда SELECT может использоваться со следующими ключевыми словами:

    — DISTINCT — выбирает уникальные значения из столбцов, устраняя повторения.

    — ALL — возвращает все данные из таблицы.

    — FROM — указывает на таблицу из которой извлекаются данные.

    — WHERE — устанавливает фильтрацию.

    — GROUP BY — устанавливает правила группировки данных.

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

    —  ORDER BY — сортирует данные по возрастанию или убыванию.

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

    Обязательными элементами запроса SELECT являются только SELECT и FROM.

    С помощью следующей команды извлечем имена сотрудников из таблицы, чей возраст старше 30, отсортируем результаты по убыванию возраста и вернем только первые 2 записи:

    SELECT name
    FROM Employees
    WHERE age > 30
    ORDER BY age DESC
    LIMIT 2;

    INSERT

    Команда INSERT в SQL состоит из двух ключевых слов:

    — INSERT INTO — указывает на таблицу, в которую нужно добавить данные.

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

    Добавим в таблицу Employees нового сотрудника. Сделать это можно двумя способами:

    -- Простая вставка значений в таблицу с указанием столбцов
    INSERT INTO Employees (name, age, salary)
    VALUES ('Leon', 30, 18);
    
    -- Вставка значений в таблицу без указания столбцов (все столбцы)
    INSERT INTO Employees
    VALUES ('Andrey', 25, 150, gym);

    UPDATE

    Ключевые слова запроса UPDATE:

    — SET — определяет столбцы и значения для обновления.

    — WHERE — задает условие для определения записей, которые нужно обновить. Если условия нет, обновляются все строки в таблице.

    Команда UPDATE для изменения зарплаты сотрудников в таблице Employees, у которых в хобби указан gym, будет выглядеть так:

    UPDATE Employees
    SET salary = 100
    WHERE hobby = 'gym';

    DELETE

    Запрос будет состоять из следующих ключевых слов:

    — DELETE FROM — указывает на таблицу, из которой необходимо удалить данные.

    — WHERE — определяет, какие строки из таблицы нужно удалить. Если не указать условие, будут удалены все строки таблицы.

    Удалим из таблицы Employees сотрудников, чей возраст меньше 30:

    DELETE FROM Employees
    WHERE age < 30;

    Ограничения целостности в базах данных

    Для обеспечения надежности и целостности данных в соответствии с принципами ACID в базах данных вводятся определенные правила — ограничения целостности (integrity constraints). Они определяют допустимые значения и структуру данных в БД. Это помогает предотвратить ошибочные операции.

    Ниже описаны некоторые ограничения целостности в БД с примерами.

    Первичный ключ (Primary Key Constraint)

    Первичный ключ гарантирует уникальность в столбце или группе столбцов. Например, в таблице Employees каждый id должен быть уникальным.

    /* Создание таблицы Employees с первичным ключом на столбце id.
    
    Где:
    — id —  уникальный идентификатор для сотрудников,
    — name — столбец столбец с именами сотрудников с типом данных строка длиной до 50 символов. */
    
    CREATE TABLE Employees (
     id INT PRIMARY KEY,
     name VARCHAR(50)
    );

    Ограничение NOT NULL

    Ограничение NOT NULL требует, чтобы столбец не содержал значения NULL, то есть не был пустым. Например, столбец name в таблице Employees не может быть пустым.

    -- Создание таблицы Employees с ограничением NOT NULL в столбце name.
    
    CREATE TABLE Employees (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
    );

    Ограничение на уникальность (Unique Constraint)

    Ограничение на уникальность предотвращает дублирование информации. Например:

    -- Создание таблицы Products с ограничением на уникальность в столбце product_code.
    
    CREATE TABLE Products (
     product_id INT PRIMARY KEY,
     product_code VARCHAR(50) UNIQUE,
     product_name VARCHAR(100)
    );

    Попытка вставить или обновить запись с уже существующим значением в столбце product_code приведет к ошибке.

    При попытке нарушения целостности система может среагировать несколькими способами:

    • 1
      Откат. Состояние БД восстановится до состояния, зарегистрированного в журнале на момент начала транзакции.
    • 2
      Компенсирующие действия. Например, выполнится альтернативная операция, которая не нарушит целостность данных.
    • 3
      Игнорирование. Попытка нарушения целостности будет проигнорирована, и система продолжит выполнение операции.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера