Основы SQL

Опубликовал: Tuesday, July 17, 2024 в категории PHP | Пока нет комментариев

SQL (англ. Structured Query Language – «язык структурирован- ных запросов») – универсальный компьютерный язык, применяе- мый для создания, модификации и управления данными в реляци- онных базах данных. SQL является, прежде всего, информационно- логическим языком, предназначенным для описания хранимых данных, для извлечения хранимых данных и для модификации данных. SQL не является языком программирования. Стандарт на язык SQL был выпущен Американским национальным институтом стандартов (ANSI) в 1986 г., а в 1987 г. Международная организа- ция стандартов (ISO) приняла его в качестве международного. Ны- нешний стандарт SQL известен под названием SQL:2008.

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

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

Операторы SQL делятся на:

•      операторы определения данных (Data Definition Language, DDL)

•      операторы манипуляции данными (Data Manipulation Language, DML)

•      операторы определения доступа к данным (Data Control Language, DCL)

•      операторы управления транзакциями (Transaction Control Language, TCL)

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

Рассмотрим DML-операторы, которые пригодятся для выполне- ния рутинных операций с базой данных посредством языка PHP. Остальные операторы так или иначе реализованы через визуальные интерфейсы, требуют единичного использования. В частности один из самых популярных веб-интерфейсов к MySQL – phpMyAdmin – будет рассмотрен в п. 6.2.

Допустим у нас уже существует таблица под именем fruits, в которую внесены следующие значения (первая строка – имена столбцов):

id

code

name

price

country

1

7860459871032

Бананы

30

Эквадор

2

2900000984123

Апельсины

80

Марокко

3

2900000894561

Мандарины

30

Марокко

4

2900000568147

Манго

300

Тайланд

Вставка данных в таблицу

Оператор INSERT позволяет добавлять в таблицу данные. Об-

щая форма:

INSERT into table_name (column1, column2, …) values (value1, value2…)

Здесь table_name – имя таблицы, в которую надо внести данные; column1, column2 и т.д. – имена столбцов, а value1, value2 и т.д. – значения соответствующих столбцов.

Следующий оператор добавляет новую запись в таблицу fruits:

INSERT INTO fruits (code, name, price, country)

values (3598654458114, "Виноград", 120, "Франция");

Как и другие операторы MySQL, эту команду можно вводить на одной строке или разместить ее на нескольких строках.

Значениями для столбцов name и country являются текстовые строки, поэтому они записываются в кавычках.

Значения для code и price – числа (целые), поэтому они указы-

ваются без кавычек.

Можно заметить, что данные определены для всех столбцов кроме id. Значение для этого столбца задает система MySQL, кото- рая находит в столбце наибольшее значение, увеличивает его на единицу и вставляет новое значение. Такое поведение MySQL за- дается в момент создания новой таблицы.

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

Запрос данных

Запрос данных выполняется с помощью оператора SELECT, ко-

торый имеет следующий формат:

SELECT имена_столбцов FROM имя_таблицы [WHERE

…условия]

Часть оператора с условиями необязательна. По сути, требуется знать имена столбцов и имя таблицы, из которой извлекаются дан- ные.

Например, чтобы извлечь штрих-коды и названия всех фруктов из таблицы fruits, необходимо выполнить следующую команду:

SELECT code, name FROM fruits

Чтобы вывести всю таблицу, можно либо ввести имена всех столбцов, либо воспользоваться упрощенной формой оператора SELECT:

SELECT * FROM fruits

Символ * в этом выражении означает ‘ВСЕ столбцы’.

Рассмотрим, как ограничить вывод строк таблицы по условиям с помощью операторов сравнения = (равно) и != (не равно):

SELECT code, name FROM fruits WHERE country = ‘Марокко’

В результате запроса будет выдана следующая таблица (без на-

званий столбцов):

code

name

2900000984123

Апельсины

2900000894561

Мандарины

То есть будут выданы штрих-коды и имена только тех фруктов,

страна происхождения которых – Марокко. Заметим, что слово

«Марокко» в условии заключено в одиночные кавычки, что равно- значно использованию двойных кавычек. В данном случае кавычки обязательны, так как столбец country содержит текстовые значения. Также необходимо заметить: SQL не различает регистр символов. Это означает, что с равным успехом можно использовать "Марок- ко", "марокко" и даже "мароККо".

Рассмотрим, как выбрать фрукты, цена которых не равна 30: SELECT name, price FROM fruits WHERE price!=30

В результате запроса будет выдана следующая таблица (без на-

званий столбцов):

name

price

Апельсины

80

Манго

300

Аналогично применяются операторы больше (>), больше или равно (>=), меньше (<), меньше или равно (<=).

Для текста также доступен оператор поиска по шаблону LIKE.

Например, необходимо найти все фрукты, начинающиеся на бу-

кву М. Для этого необходимо использовать инструкцию

SELECT name, country FROM fruits WHERE name LIKE "М%"

В результате запроса будет выдана следующая таблица (без на-

званий столбцов):

name

country

Мандарины

Марокко

Манго

Тайланд

Знак % действует как символ-заместитель (аналогично исполь- зованию * в системах DOS и Linux). Он заменяет собой любую по- следовательность символов. Таким образом, "М%" обозначает все строки, начинающиеся с буквы М. Аналогично "%м" выбирает строки, которые заканчиваются символом м, а "%м%" – строки, содержащие букву м.

Удаление записей из таблицы

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

DELETE from имя_таблицы [WHERE условия];

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

DELETE from fruits WHERE name = ‘Манго’;

Обновление записей в таблице

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

UPDATE имя_таблицы

SET <присваивание1 [, присваивание2, …]> [WHERE <условие>]

Допустим, у нас изменились цены на мандарины. В этом случае обновить их в таблице мы можем следующим запросом:

UPDATE fruits SET price="50" WHERE name="Мандарины"

Источник: Филиппов С.А. Основы современного веб-программирования: Учебное пособие. М.: НИЯУ МИФИ, 2011. – 160 с.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *