В этой статье мы рассмотрим ключевые команды языка SQL. Это необходимо знать потому, как PHP при работе с базами данных использует именно этот язык.
Предполагается, что вы имеете базовое представление о том, что такое реляционные базы данных, таблицы, первичный ключ, запрос, выборка и другие базовые понятия, необходимые для работы с базами данных.
Итак, SQL – это язык структурированных запросов. Этот язык создан для того, чтобы создавать, изменять и управлять реляционными базами данных. Запросы, как правило, формируются внешним скриптом. Им же они передаются к системе управления базами данных, там обрабатываются, и полученный результат возвращается обратно скрипту, если это предполагалось согласно логике программы.
SQL-запросы можно разделить на две группы:
- DDL
- DML
DML – язык модификации данных. Это запросы, которые относятся не к структуре, а к содержанию баз данных. То есть не к таблицам и их столбцам, а к строкам. Эти запросы осуществляют добавление новых строк, удаление, изменение, либо выборку строк по определенным параметрам.
На протяжении использования программы, чаще всего используются DML-запросы. Большинство же проектов не требуют того, чтобы скрипт автоматически создал базу данных. Поэтому DDL-запросы чаще всего выполняют не вручную, а через специальную СУБД, где путем нажатия на обычные кнопочки можно, как создать, так и удалить, или перенастроить таблицу, не вдаваясь в подробности синтаксиса языка SQL.
Поэтому опустим работу с DDL-запросами, и перейдем напрямую к запросам DML.
Представим себе, что у нас уже создана простая таблица для хранения данных подписчиков.
Таблица Subscribers
Здесь мы видим три столбца, названия которых: id, Name и Email.
Для того, чтобы вставить в таблицу новую строку, нам необходимо написать следующий запрос:
INSERT INTO Subscribers (Name, Email) VALUES (‘Петр’, ‘emailpetr@gmail.com’);Здесь все просто. Особенно для тех, кто знает английский язык.
INSERT – ВСТАВИТЬ;
INTO – В;
Subscribers – на месте этого слова нужно напечатать название изменяемой таблицы;
Далее в скобочках через запятую без кавычек указываем названия столбцов, которые должны быть заполнены в новой строке;
VALUES – ЗНАЧЕНИЯ;
Далее в скобках через запятую в кавычках указываем значения столбцов, причем в том же порядке, что мы указали названия столбцов в предыдущих скобках.
После выполнения данного запроса таблица должна обрести следующий вид:
Столбец id заполнился автоматически, так как это первичный ключ и при создании таблицы ему была задана соответствующая настройка.
Удаление строк
Для того, чтобы удалить строки, необходимо воспользоваться следующим запросом:
DELETE FROM Subscribers WHERE id = ‘2’
Что означает следующее: удалить из таблицы Subscribers строку со значением id, равным 2.
Модификация строк
UPDATE Subscribers SET NAME = ‘GoodXInfo’ WHERE id = ‘1’
Что означает следующее: обновить в таблице Subscribers значение Name в строке, id которой равно 1.
Выборка строк
С помощью оператора SELECT можно осуществлять сложнейшие запросы по выборке данных из таблиц. Однако на практике в веб-программировании чаще всего пригождаются лишь несколько простейших запросов. Их-то мы и приведем здесь в качестве примера.
Представим себе, что наша таблица подписчиков имеет гораздо более сложную структуру, и содержит в себе уже множество строк. Как мы можем осуществить выборку из этой таблицы?
Осуществить выборку всех данных из таблицы Subscribers:
SELECT * FROM Subscribers
Осуществить выборку только тех подписчиков, которые подписаны на рассылку «Название рассылки»
SELECT * FROM Subscribers WHERE sub_name = ‘Название рассылки’
Осуществить выборку только тех подписчиков, что подписаны на рассылку «Название рассылки» и отсортировать их по дате подписки и email
SELECT * FROM Subscribers WHERE sub_name = ‘Название рассылки’ ORDER BY data, email
После команды ORDER BY стоят названия столбцов, по которым нужно сортировать данные. Если по столбцу data встретятся две одинаковых строки, то они будут отсортированы по столбцу email.
Получить имя человека, с email = email@gmail.com
SELECT Name FROM Subscribers WHERE email = ‘email@gmail.com’
Получить общее количество всех подписчиков
SELECT count (*) FROM Subscribers
Запомните синтаксис всех этих видов запросов, и этого будет вполне достаточно для большинства ваших первых простых проектов.
Все статьи этой серии:
- Вступление. Необходимый инструментарий. Первый скрипт
- Базовый синтаксист. Оператор echo
- Переменная. Константы
- Типы данных
- Операторы. Операции
- Ветвления
- Функции
- Область видимости переменных и время их жизни
- Циклы
- Массивы
- Предопределенные массивы. Функции для работы с массивами
- HTTP-запросы
- Формы. Работа с HTML-кодом
- Формы. Обработка средствами PHP
- Базы данных. SQL-запросы
- Базы данных. Работа с SQL средствами PHP
- Защита от SQL-инъекций
- Продолжение следует
Сообщение отредактировал GoodX: 04 Сентябрь 2012 - 02:36