SQL. Основные команды и операторы. Часть 1
SQL является стандартным языком для хранения, редактирования, удаления и извлечения данных в базах данных.
SQL расшифровывается как "структурированный язык запросов". SQL позволяет обращаться к базам данных и управлять ими. SQL стал стандартом американского Национального института стандартов (ANSI) в 1986, и международной организации по стандартизации (ISO) в 1987.
Самые используемые команды SQL
- SELECT - Извлекает данные из базы данных;
- UPDATE - обновляет данные в базе данных;
- DELETE - Удаление данных из базы данных;
- INSERT INTO - Вставка новых данных в базу данных;
Инструкция "SELECT"
Инструкция SELECT используется для выбора данных из базы данных.
Возвращаемые данные хранятся в результирующей таблице, называемой результирующим набором.
SELECT column1, column2, ...
FROM 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 - отображает те записи, для которых условие не выполняется.
Рассмотрим применение каждого оператора
- Равно
SELECT * FROM table_name WHERE name = 'example'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "name" принимает значение "example". - Не равно
SELECT * FROM table_name WHERE name <> 'example'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "name" принимает значение не "example". - Больше
SELECT * FROM table_name WHERE number > '1'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" больше 1. - Меньше
SELECT * FROM table_name WHERE number < '1'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" меньше 1. - Больше или равно
SELECT * FROM table_name WHERE number >= '1'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" больше или равно 1. - Меньше или равно
SELECT * FROM table_name WHERE number <= '1'
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" меньше или равно 1. - 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' - LIKE
SELECT * FROM FamilyMembers WHERE status LIKE '%ther%'
Выводит из таблицы "FamilyMembers ", только те строки, в которых значение столбца "status" содержит "ther" (например, "mother" и "father"). - IN
SELECT * FROM table_name WHERE number IN ( '1','3','5')
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" равно 1, 2 или 3. - IS NULL
SELECT * FROM table_name WHERE number IS NULL
Выводит из таблицы "table_name", только те строки, в которых значение столбца "number" не задано (или равно NULL). Очевидно, что можно заменить на
SELECT * FROM table_name WHERE number = NULL
Но использование IS NULL более наглядно.