Некоторые возможности языка манипулирования данными SQL для работы с базами данных

В данном курсе мы изучаем технологии баз данных для того, чтобы данные, введенные на сайте могли сохраняться на сервере в базе данных, а, затем, при необходимости, выводиться на страницах сайта. Поэтому нам важно выяснить, как программно, из PHP скриптов можно манипулировать данными из базы. На самом деле, PHP только создает интерфейс для запросов к базе данных, а сами запросы пишутся на SQL.

Структурированный язык запросов SQL позволяет производить различные операции с базами данных: создавать таблицы, помещать в них новые данные, обновлять, удалять из них данные, отбирать нужные сведения из таблиц и т.д. Далее рассмотрим основные из этих операторов, что позволит понять основные принципы работы с базой данных в web-программировании.

Примечание: Команды SQL не чувствительны к регистру, но традиционно они набираются прописными буквами.

Рассмотрим базу данных книги, состоящую из одной таблицы knigi, описанной в предыдущем разделе.

 

Добавление данных в таблицу MySQL

Для добавления записей используется оператор INSERT:

 

INSERT INTO Имя_таблицы [(Список полей)]
VALUES (Список констант)

 

После выполнения оператора INSERT будет создана новая строка таблицы, в качестве значений полей будут использованы соответствующие константы, указанные в списке VALUES.

Рассмотрим пример использование оператора INSERT:

INSERT INTO knigi VALUES ('B3498-43', 'Горе от ума', 'А.С.Грибоедов', 1996, 'Детская литература', 354, 20.50, 2016:01:02, 'Пьеса в стихах')

 

Добавляемые значения должны соответствовать тому порядку, в котором поля хранятся в таблице. Если вы хотите добавлять информацию в другом порядке, то вы должны указать этот порядок в операторе INSERT, например:

INSERT INTO knigi (bibl_kod, name_knigi, avtor, god_izd, izdatelstvo, kol_stranic, cena, data_vidachi, annotacia) VALUES ('B3498-43', 'Горе от ума', 'А.С.Грибоедов', 1996, 'Детская литература', 354, 20.50, 2016:01:02, 'Пьеса в стихах')

 

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

Другая распространенная ошибка связана с попыткой вставить в таблицу новые данные с таким же первичным ключом, который уже имеется в ней.


Извлечение данных из таблиц MySQL

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

 

Получить все данные из таблицы:

SELECT * FROM knigi

 

Получить данные о всех названиях и авторах книг из таблицы knigi:

SELECT name_knigi, avtor FROM knigi

 

Получить все сведения о книгах автора А.С.Грибоедов

SELECT * FROM knigi WHERE avtor='А.С.Грибоедов'

 

Получить все сведения о книгах автора Грибоедов, если мы не помним его инициалов:

SELECT * FROM knigi WHERE avtor LIKE '%Грибоедов%'

 

Получить все сведения о книгах, изданных в период с 1950 по 1970 годы:

SELECT * FROM knigi WHERE god_izd BETWEEN 1950 AND 1970

 

Получить все сведения о книгах Грибоедова, изданных в период с 1950 по 1970 годы:

 

SELECT * FROM knigi WHERE (god_izd BETWEEN 1950 AND 1970) AND (avtor LIKE '%Грибоедов%')

 

Изменение данных в таблицах

Синтаксис оператора UPDATE, который используется для обновления записей, выглядит так:

UPDATE Имя_таблицы SET Поле1 = Значение1,..., ПолеN = ЗначениеN
[WHERE Условие]

 

Если не задано условие WHERE, будет модифицирована вся таблица, а это может повлечь за собой непредсказуемые последствия, поскольку для всех записей будут установлены одинаковые значения полей, поэтому всегда указывайте условие WHERE.

Предположим, нам необходимо обновить записи о книгах, изданных до 2000 года, снизив их цену на 10%,

Сделаем следующее:

 

UPDATE knigi SET cena = cena*0.9 WHERE god_izd < 2000

 

Данный запрос нужно понимать так: найти запись, поле god_izd которой <2000 и установить значение cena в ней меньше на 10%

 


Удаление данных из таблиц

Для удаления строк из таблиц в SQL используется оператор DELETE.

Если нам необходимо удалить все данные о книгах, изданных в издательстве ''Детская литература'' необходимо указать:

DELETE FROM knigi WHERE izdatelstvo='Детская литература'

Функции PHP для работы с MySQL

 

Рассмотрим основные функции PHP, применяемые для работы с базой данных MySQL.

Функции соединения с сервером MySQL и базой данных

Мы будем использовать MySQLi (MySQL Improved) — расширение драйвера реляционных СУБД, используемого в языке программирования PHP для предоставления доступа к базам данных MySQL. MySQLi является обновлённой версией драйвера PHP MySQL, и обеспечивает различные улучшения в работе с базами данных. Это расширение основано на объектно-ориентированном подходе и использует основной класс для работы с БД - mysqli

Для создания соединения с БД нужно создать новый объект класса mysqli:

$mysqli = new mysqli('localhost', 'my_user', my_password', 'my_db');

If ($mysqli->connect_error) {

die(' Connect Error ('.$mysqli->connect_errno. ') '.$mysqli->connect_error);

}

 

С помощью $mysqli->connect_errno и $mysqli->connect_error мыполучаем описание и код ошибки, возникших при соединении.

 

Для закрытия соединения предназначена функция mysqli_close($connection_id).

Пример:

$mysqli->close();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: