Structured Query Language (язык структурированных запросов) разработан корпораций IBM в начале 1970-х годов. В 1986 году SQL был впервые стандартизирован организаций ANSI.
SQL - это мощный, и в то же время, не сложный язык для управления базами данных. Он поддерживается практически всеми современными базами данных.
SQL подразделятся на два подмножества команд: DDL (Data Definition Language – язык определения данных) и DML (Data Manipulation Language – язык обработки данных).
Команды DDL используются для создания новых баз данных, таблиц и столбцов, а команды DML – для чтения, записи, сортировки, фильтрования, удаления данных.
В этой статье будут более подробно рассмотрены команды DML, поскольку их приходится использовать гораздо чаще.
CREATE
– используется для создания новых таблиц, столбцов и индексов.DROP
– используется для удаления столбцов и индексов.ALTER
– используется для добавления в таблицы новых столбцов и изменения определенных столбцов.SELECT
является наиболее часто используемой командой, которая применяется для получения набора данных из таблицы базы данных.
Команда SELECT
имеет следующий синтаксис:
SELECT список_полей1 FROM имя_таблицы [WHERE критерий ORDER BY список_полей2 [ASC | DESC]]
Операторы, находящие внутри квадратных скобок не обязательны, а вертикальная черта означает, что должна присутствовать одна из указанных фраз, но не обе.
Для примера создадим простейший запрос на получение данных из полей name
и phone
из таблицы friends
:
SELECT name, phone FROM friends
, если необходимо получить все поля таблицы, то не обязательно их перечислять, достаточно поставить звездочку (*
):
SELECT * FROM friends
Для исключения из выводимого списка повторяющихся записей, используется ключевое слово DISTINCT
:
SELECT DISTINCT name FROM friends
Если необходимо получить отдельную запись, то используется оператор WHERE
.
Например, нам надо получить из таблицы friends
номер телефона Васи Пупкина
:
SELECT * FROM friends WHERE name = 'Вася Пупкин'
или наоборот, нам надо узнать кому принадлежит телефон 44-65-01
:
SELECT * FROM friends WHERE phone = '44-65-01'
Помимо этого можно использовать подстановочные символы, таким образом создавая шаблоны поиска.
Для этого используется оператор LIKE
. Оператор LIKE
имеет следующие операторы подстановки:
*
- соответствует строке состоящей из одного или более символов;_
- соответствует одному любому символу;[]
– соответствует одному символу из определенного набора;Например, для получения записей из поля name
содержащих слово Вася
, запрос будет выглядеть следующим образом:
SELECT * FROM friends WHERE name LIKE '*Вася*'
Для определения порядка, в котором возвращаются данные используется оператор ORDER BY
.
Без этого оператора порядок возвращаемых данных невозможно предсказать.
Ключевые слова ASC
и DESC
позволяют определить направление сортировки.
ASC
– упорядочивает по возрастанию, а DESC
– по убыванию.
Например, запрос на получение списка записей из поля name
в алфавитном порядке будет выглядеть следующим образом:
SELECT * FROM friends ORDER BY name
Обратите внимание, ключевое слово ASC
указывать не обязательно, поскольку оно используется по умолчанию.
Команда INSERT
служит для добавления новой записи в таблицу. Записывается она следующим образом:
INSERT INTO имя_таблицы VALUES (список_значений)
Обратите внимание, типы значений в списке значений должны соответствовать типам значений полей таблицы, например:
INSERT INTO friends VALUES ('Анка Пулеметчица', '32-09-81')
В данном примере в таблицу friends
добавляется новая запись с указанными значениями.
Команда UPDATE
применяется для обновления данных в таблице и чаще всего используется совместно с оператором WHERE
.
Команда UPDATE
имеет следующий синтаксис:
UPDATE имя_таблицы SET имя_поля = значение [WHERE критерий]
Если опустить оператор WHERE
, то будут обновлены данные во всех определенных полях таблицы.
Для примера, поменяем номер телефона Васи Пупкина
:
UPDATE friends SET phone = '55-55-55' WHERE name = 'Вася Пупкин'
Как вы уже наверное поняли, команда DELETE
служит для удаления записей из таблицы.
Как и UPDATE
, команда DELETE
обычно используется с оператором WHERE
, если этот оператор пропустить, то будут удалены все данные из указанной таблицы.
Синтаксис команды DELETE
выглядит следующим образом:
DELETE FROM имя_таблицы [WHERE критерий]
Для примера, давайте удалим этого надоедливого Васю Пупкина
из нашей таблицы :) :
DELETE FROM friends WHERE name = 'Вася Пупкин'
В этой статье я рассказал об основных операторах SQL, их вполне достаточно для работы с базами данных, об остальных операторах, более детально, я расскажу в другой раз.
Автор статьи: Алексей Немиро
Специально для online-журнала COMPAWORLD
2003-09-16