Слайд 1МДК «Веб-программирование» Взаимодействие PHP и MySQL
Разработчик:
Егорова Наталья Александровна
преподаватель ГАПОУ
МО «Мурманский колледж экономики и информационных технологий»
2018
Слайд 2База данных – это совокупность связанных между собой таблиц.
SQL –
это структурированный язык запросов, созданный для управления реляционными БД.
Позволяет
пользователям взаимодействовать с базами данных.
MySQL – это одна из наиболее популярных и эффективных систем управления базами данных, которая используется при построении современных веб-сайтов.
MySQL – это сервер баз данных.
Слайд 3Основы языка SQL
Группы операторов языка SQL
1. Операторы описания данных: CREATE, ALTER,
DROP и др.
2. Операторы манипуляции данными: INSERT, DELETE, SELECT, UPDATE и
др.
3. Операторы задания прав доступа в базе данных.
4. Операторы защиты, восстановления данных и прочие операторы.
Слайд 4Создание базы данных
Синтаксис оператора
CREATE DATABASE имя_БД
Слайд 5Создание таблицы
Оператор CREATE TABLE предназначен для описания структуры таблицы.
Синтаксис оператора
CREATE
TABLE имя_таблицы (
имя_столбца тип_данных [NOT NULL|NULL] [AUTO_INCREMENT]
имя_столбца тип_данных [NOT NULL|NULL]
[AUTO_INCREMENT]
…
PRIMARY KEY (имя_столбца)
KEY (имя_индекса|имя_столбца)
INDEX (имя_индекса|имя_столбца)
)
Слайд 6NOT NULL|NULL – запрещает|разрешает в таблице пустые ячейки в данном
столбце
AUTO_INCREMENT – устанавливает столбец, как поле с автонумерацией
PRIMARY KEY –
описывает первичный ключ
KEY– описывает внешний ключ
INDEX – описывает индекс
Слайд 7Первичный ключ (primary key, PK) – это уникальный индекс, который
применяется для уникальной идентификации записей таблицы. Никакие из двух записей
таблицы не могут иметь одинаковых значений первичного ключа.
Внешний ключ (foreign key, FK) является ссылкой на первичный ключ, устанавливая однозначную логическую связь между записями таблиц. Важная часть механизма обеспечения ссылочной целостности данных.
Слайд 8Типы данных
Числовые типы
TINYINT – 1 байт;
SMALLINT – 2 байта;
MEDIUMINT –
3 байт;
INT – 4 байта;
BIGINT – 8 байт;
DECIMAL – с
фиксированной точкой;
FLOAT – с плавающей точкой.
Слайд 9Символьные типы
CHAR – строка символов фиксированной длины;
VARCHAR – строка символов
переменной длины.
Типы даты и времени
DATE – дата;
TIME – время;
DATETIME и
другие.
Слайд 10Пример создания таблицы student
в базе данных stud
CREATE TABLE `stud`.`student`
(
`id_stud` INT(3) NOT NULL AUTO_INCREMENT ,
`fam` VARCHAR(30) NOT NULL ,
`name` VARCHAR(30) NOT NULL ,
`age` INT(2) NOT NULL , `id_group` INT(3) NOT NULL ,
PRIMARY KEY (`id_stud`),
INDEX (`id_group`)) ENGINE = InnoDB;
Слайд 11Модификация таблицы
Оператор ALTER TABLE – используется для добавления, изменения или
удаления столбцов в таблице.
Синтаксис оператора
ALTER TABLE имя_таблицы спецификация
Слайд 12Спецификация оператора ALTER TABLE
Слайд 13Спецификация оператора ALTER TABLE
Слайд 14Удаление таблицы
Оператор DROP TABLE позволяет удалить одну или несколько таблиц
из базы данных.
Синтаксис оператора
DROP TABLE имя_таблицы1, имя_таблицы2,…;
Слайд 15Операторы манипуляции данными
(MySQL запросы)
Добавление записей в таблицу
Оператор INSERT используется для
вставки одной записи или несколько записей в таблицу
Синтаксис оператора
INSERT INTO
имя_таблицы
(имя_столбца1, имя_столбца2, … )
VALUES
(значение1, значение2, … ),
…;
Слайд 16Пример
INSERT INTO proizvod
(id, name)
VALUES
(14, 'Acer');
Слайд 17Удаление записей из таблицы
Оператор DELETE используется для удаления одной записи
или нескольких записей из таблицы в MySQL.
Синтаксис оператора
DELETE FROM имя_таблицы
[WHERE
условие];
Пример
DELETE FROM proizvod
WHERE name = 'Acer';
Слайд 18Обновление записей в таблице
Оператор UPDATE используется для обновления существующих записей
в таблице в базе данных MySQL.
Синтаксис оператора
UPDATE имя_таблицы
SET имя_столбца1 =
значение1,
имя_столбца2 = значение2,
…
[WHERE условие];
Слайд 19Пример 1 Обновление одного столбца
UPDATE proizvod
SET name = 'Acer'
WHERE id
= 12;
Пример 2 Обновление нескольких столбцов
UPDATE customers
SET state = 'Nevada',
customer_rep = 23
WHERE customer_id > 200;
Слайд 20Пример 3 Обновление нескольких таблиц
UPDATE customers, suppliers
SET customers.city = suppliers.city
WHERE
customers.customer_id = suppliers.supplier_id;
Слайд 21Выборка записей из таблиц
Оператор SELECT используется для извлечения записей из
одной или нескольких таблиц.
Синтаксис оператора
SELECT имя_столбца
FROM имя_таблицы
[WHERE условие];
Символ *
используется для выбора всех столбцов из таблицы.
Слайд 22Необязательные операторы
Оператор ORDER BY используется в SELECT для сортировки записей
в результирующем наборе.
Синтаксис оператора
ORDER BY имя_столбца [ ASC | DESC
];
ASC – сортирует результирующий набор в порядке возрастания (по умолчанию, если атрибут не указан);
DESC – сортирует результирующий набор в порядке убывания.
Слайд 23Оператор GROUP BY используется в SELECT предложении для сбора данных
по нескольким записям и группировки результатов по одному или нескольким
столбцам.
Синтаксис оператора
GROUP BY имя_столбца1, имя_столбца2, …;
Слайд 24Использование функций в запросах
Функция SUM – определяет сумму значений поля.
Функция
COUNT – определяет количество записей.
Функция MIN – определяет минимальное значение.
Функция
MAX – определяет максимальное значение.
Функция AVG – определяет среднее значение.
Слайд 25Пример 1 Выборка всех полей из одной таблицы
SELECT *
FROM order_details
WHERE
quantity >= 100
ORDER BY quantity DESC;
Слайд 26Пример 2 Выборка отдельных полей из одной таблицы
SELECT order_id, quantity,
unit_price
FROM order_details
WHERE quantity < 300
ORDER BY quantity ASC, unit_price DESC;
Слайд 27Пример 3 Выборка полей из нескольких таблиц
SELECT order_details.order_id, customers.customer_name
FROM customers
INNER
JOIN order_details
ON customers.customer_id = order_details.customer_id
ORDER BY order_details.order_id;
В SELECT указывается имя_таблицы.имя_столбца
Оператор
JOINS используется для извлечения данных из нескольких таблиц.
Слайд 30
Операторы сравнения MySQL
=, , , !=, >, >=,
Слайд 31Использование PhpMyAdmin для взаимодействия с базой данных MySQL
Слайд 32Библиотека php_mysqli.dll предоставляет современные методы доступа к базе данных MySQL
Установка
соединения
1. $db = mysqli_connect(, , , );
2. $db =
new mysqli(<Имя хоста>, <Имя пользователя>, <Пароль>, <База данных>);
Слайд 33Пример
if (@$db = mysqli_connect("localhost", "root", "123456", "tests")) {
// Выполняем работу
с базой данных
}
else {
echo "Не удалось установить подключение к базе
данных";
}
@ - подавляет вывод ошибки функции
Слайд 34Функция mysqli_connect_errno() проверяет отсутствие ошибок при подключении
@$db = new
mysqli("localhost", "root", "123456", "tests");
if (!mysqli_connect_errno()) {
// Выполняем работу с базой
данных
}
else {
echo "Не удалось установить подключение к базе данных";
}
Слайд 35Закрытие соединения
Процедурный стиль
Функция mysqli_close():
mysqli_close();
Объектный стиль
Используется метод close():
->close();
Слайд 36Процедурный стиль
if (@$db = mysqli_connect("localhost", "root", "123456", "tests")) {
// Выполняем
работу с базой данных
mysqli_close($db); // Закрываем соединение
}
else {
echo "Не удалось
установить подключение к базе данных";
}
Слайд 37Объектный стиль
@$db = new mysqli("localhost", "root", "123456", "tests");
if (!mysqli_connect_errno()) {
//
Выполняем работу с базой данных
$db->close(); // Закрываем соединение
}
else {
echo "Не
удалось установить подключение к базе данных";
}
Слайд 38Выбор базы данных
Функция mysqli_select_db() служит для выбора базы данных уже
после подключения
Формат
mysqli_select_db(, );
Слайд 39Пример
if (@$db = mysqli_connect("localhost", "root", "123456")) {
mysqli_select_db($db, "tests");
// Выполняем работу
с базой данных
mysqli_close($db);
}
else {
echo "Не удалось установить подключение к базе
данных";
}
Слайд 40При объектном стиле используется метод select_db().
Формат:
->select_db();
Слайд 41Пример
@$db = new mysqli("localhost", "root", "123456");
if (!mysqli_connect_errno()) {
$db->select_db("tests");
// Выполняем работу
с базой данных
$db->close();
}
else {
echo "Не удалось установить подключение к базе
данных";
}
Слайд 42Выполнение запроса к базе данных
Выполнить запрос к базе данных в
процедурном стиле позволяет функция mysqli_query().
Функция имеет следующий формат:
mysqli_query(, );
Слайд 43Для удаления идентификатора результата и освобождения используемых ресурсов применяется функция
mysqli_free_result().
Формат:
mysqli_free_result();
Слайд 44Выполнить запрос к базе данных при объектном стиле позволяет метод
query().
Формат:
->query();
Метод возвращает экземпляр результата.
Для удаления экземпляра результата
применяется метод close().
Формат:
<Экземпляр результата>->close();
Слайд 45Обработка результата запроса
Процедурный стиль
mysqli_num_rows() возвращает количество записей в результате
mysqli_field_count(
соединения>) возвращает количество полей в результате последнего SQL-запроса
mysqli_fetch_array(, [])
возвращает результат в виде списка и (или) ассоциативного массива
Слайд 46Параметр Флаг может принимать следующие значения:
MYSQLI_BOTH – результат в виде
списка и ассоциативного массива (значение по умолчанию);
MYSQLI_NUM – результат в
виде списка;
MYSQLI_ASSOC – результат в виде ассоциативного массива.
mysqli_fetch_row(<Идентификатор результата>) возвращает результат в виде списка
mysqli_fetch_assoc(<Идентификатор результата>) возвращает результат в виде ассоциативного массива
Слайд 47mysqli_fetch_object() возвращает результат в виде объекта
mysqli_data_seek(, ) перемещает
указатель результата на выбранную строку. Нумерация начинается с нуля
Слайд 48Объектный стиль
num_rows возвращает количество записей в результате
field_count возвращает количество
полей в результате
fetch_array([]) возвращает результат в виде списка и (или)
ассоциативного массива в зависимости от значения необязательного параметра <Флаг>.
Слайд 49Параметр Флаг может принимать следующие значения:
MYSQLI_BOTH – результат в виде
списка и ассоциативного массива (значение по умолчанию);
MYSQLI_NUM – результат в виде
списка;
MYSQLI_ASSOC – результат в виде ассоциативного массива
Слайд 50fetch_row() возвращает результат в виде списка
fetch_assoc() возвращает результат в виде
ассоциативного массива
fetch_object() возвращает результат в виде объекта
data_seek() перемещает указатель результата
на выбранную строку. Нумерация начинается с нуля