sql
August 29, 2023

SQL. Основные команды и операторы. Часть 1

SQL является стандартным языком для хранения, редактирования, удаления и извлечения данных в базах данных.

SQL расшифровывается как "структурированный язык запросов". SQL позволяет обращаться к базам данных и управлять ими. SQL стал стандартом американского Национального института стандартов (ANSI) в 1986, и международной организации по стандартизации (ISO) в 1987.

Самые используемые команды SQL

  • SELECT - Извлекает данные из базы данных;
  • UPDATE - обновляет данные в базе данных;
  • DELETE - Удаление данных из базы данных;
  • INSERT INTO - Вставка новых данных в базу данных;

  • CREATE DATABASE - создает новую базу данных;
  • ALTER DATABASE - изменяет базу данных;

  • CREATE TABLE - Создание новой таблицы;
  • ALTER TABLE - изменяет таблицу;
  • DROP TABLE - Удаление таблицы;

  • CREATE INDEX - создает индекс (ключ поиска);
  • DROP INDEX - Удаляет индекс.

Инструкция "SELECT"

Инструкция SELECT используется для выбора данных из базы данных.

Возвращаемые данные хранятся в результирующей таблице, называемой результирующим набором.

SELECT column1, column2, ...
FROM table_name

Где:

  • column1, column2 - имена столбцов;
  • table_name - имя таблицы.

1. Можно использовать синтаксис SELECT * FROM table_name.

По выполнению этого запроса выводится вся таблица полностью.

2. Можно использовать некоторое условие (condition). Например, для запроса:

SELECT * FROM table_name WHERE name <> 'example'

будут выводиться только те сроки таблицы table_name, поле name у которых не равно значению "example".

Операторы в WHERE

  • "=", равно - строгое равенство какому-то значению;
  • "<>" - не равно - строгое неравенство какому-то значению;
  • ">", больше - больше какого-то значения (корректно работает только для числовых значений или единичных символов);
  • "<", меньше - меньше какого-то значения (корректно работает только для числовых значений или единичных символов);
  • ">=", больше или равно - равно или больше какого-то значения (корректно работает только для числовых значений или единичных символов);
  • "<=", меньше или равно - равно или меньше какого-то значения (корректно работает только для числовых значений или единичных символов);
  • "BETWEEN", между - между каким-то инклюзивным диапазоном;
  • "LIKE", похоже - используется для поиска по какому-то шаблону;
  • "IN", в - используется для задания нескольких конечных значений;
  • "IS NULL" - используется для выбора данных, не имеющих значения (или имеющих значение "NULL").
NULL - это принятое в SQL обозначение пустого значения. Очевидно, что 0 не может быть пустым значением. Значение "NULL" означает, что значение пока не было задано или было удалено.

Кроме того, в операторе WHERE может находиться несколько условий поиска, между которыми могут операторы "AND", "OR" или "NOT".

  • AND - отображает те записи, для которых все условия выполняются;
  • OR - отображает те записи, для которых какое-либо из условий выполняется;
  • NOT - отображает те записи, для которых условие не выполняется.

Рассмотрим применение каждого оператора

  1. Равно
    SELECT * FROM table_name WHERE name = 'example'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "name" принимает значение "example".
  2. Не равно SELECT * FROM table_name WHERE name <> 'example'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "name" принимает значение не "example".
  3. Больше
    SELECT * FROM table_name WHERE number > '1'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" больше 1.
  4. Меньше
    SELECT * FROM table_name WHERE number < '1'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" меньше 1.
  5. Больше или равно SELECT * FROM table_name WHERE number >= '1'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" больше или равно 1.
  6. Меньше или равно SELECT * FROM table_name WHERE number <= '1'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" меньше или равно 1.
  7. BETWEEN SELECT * FROM table_name WHERE number BETWEEN '1' AND '3'
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" больше или равно 1 и меньше или равно 3.
    Очевидно, что данный запрос можно заменить на запрос:
    SELECT * FROM table_name WHERE number >= '1' AND number <= '3'
  8. LIKE
    SELECT * FROM FamilyMembers WHERE status LIKE '%ther%'
    Выводит из таблицы "FamilyMembers ", только те строки, в которых значение столбца "status" содержит "ther" (например, "mother" и "father").
  9. IN SELECT * FROM table_name WHERE number IN ( '1','3','5')
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" равно 1, 2 или 3.
  10. IS NULL
    SELECT * FROM table_name WHERE number IS NULL
    Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" не задано (или равно NULL). Очевидно, что можно заменить на
    SELECT * FROM table_name WHERE number = NULL
    Но использование IS NULL более наглядно.