Основы SQL
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 с.
Похожие посты:
- Получение больших наборов данных (0)
- Анализ большого набора данных (0)
- Пример: выявление тенденций (0)
- Создание таксономии запросов (0)
- Завершение углубленного анализа востребованности поисковых запросов (0)
- Создание макета страницы с помощью CSS-таблиц (0)
- Удаление отступов по умолчанию для всех элементов страницы (0)