Запускаем локальный сервер, воспользовавшись программой XAMPP Control Panel
В браузере переходим http://localhost/phpmyadmin/ и создаём базу данных с именем site с кодировкой utf8_general_ci
Также создаем учетные записи пользователя MySQL и указываем пароль, имя пользователя.
В директории C:\xampp\htdocs\site создаём файл index.php
Теперь создадим тестовую базу данных c товарами при помощи php кода (CREATE):
CREATE TABLE <Имя таблицы>
(<Имя столбца 1> <Тип столбца 1> <Свойства столбца 1>,
<Имя столбца 2> <Тип столбца 2> <Свойства столбца 2>,
…
<Имя столбца N> <Тип столбца N> <Свойства столбца N>,
[<Информация о ключевых столбцах и индексах>])
[<Свойства таблицы>];
<head> <title>MySQL создание таблицы</title> </head> <body> <?php $server="localhost"; $name="user"; $pas="123"; $dbname="site"; $link = new mysqli($server,$name,$pas,$dbname); if ($link->connect_errno) { printf("Нет соединения c БД %s\n", $link->connect_error); exit(); } // создание таблицы $sql = "CREATE TABLE IF NOT EXISTS product( id INT(8) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, description VARCHAR(100) NOT NULL, cost DECIMAL(8,2), date_wr TIMESTAMP) ENGINE InnoDB CHARACTER SET utf8; "; if ($link->query($sql) === TRUE) { echo "Таблица product создана"; } else { echo "Ошибка создания таблицы product" . $link->error; } $link->close(); ?>
где
id INT(8) – идентификатор записи, который автоматически нумерует строки таблицы, по сути номер товара;
UNSIGNED — отключение отрицательных чисел, UNSIGNED INT до 4294967295, BIGINT до 18446744073709551615, FLOAT и DOUBLE — вещественные типы данных;
AUTO_INCREMENT — автоматически нумерует строки таблицы с увеличением на единицу;
PRIMARY KEY — уникальный первичный ключ;
name VARCHAR(50) NOT NULL — название товара (50 символов);
VARCHAR — строковой тип (количество символов ограничено от 0 до 255), аналог TEXT — отличается от VARCHAR количеством символов 65535, MEDIUMTEXT до 16777215 символов, LONGTEXT до 4294967295 символов;
NULL – константа, указывает на отсутствие значения;
NOT NULL — обязательное поле для заполнения;
description VARCHAR(100) NOT NULL — описание товара (100 символов);
price DECIMAL(8,2) — цена товара, запись 8,2 означает, что цена содержит до шести целых чисел и двух дробных;
DECIMAL — число с плавающей запятой;
date_wr TIMESTAMP — дата и время создания записи в формате 2021-03-13 18:22:01, по умолчанию это формат«YYYYMMDDHHMMSS» (TIMESTAMP(14)), также есть форматы — «YYMMDDHHMMSS» (TIMESTAMP(12)), «YYYYMMDD» (TIMESTAMP(8)), «YYMMDD» (TIMESTAMP(6));
ENGINE InnoDB — обеспечивает поддержание целостности связей между таблицами;
ENGINE MyISAM — увеличивает скорость, но не обеспечивает целостность;
CHARACTER SET utf8 — кодировка utf-8.
При запуске скрипта в phpmyadmin появится таблица product соответствующими полями и пустыми данными.
Теперь заполним созданную таблицу данными, для этого выполним команду вставки INSERT
INSERT [INTO] <Имя таблицы>
[(<Список столбцов>)]
VALUES
(<Список значений 1>),
(<Список значений 2>),
…
(<Список значений N>);
<head> <title>MySQL вставка данных в таблицу</title> </head> <body> <?php $server="localhost"; $name="user"; $pas="123"; $dbname="site"; $link = new mysqli($server,$name,$pas,$dbname); if ($link->connect_errno) { printf("Нет соединения c БД %s\n", $link->connect_error); exit(); } // добавления данных в таблицу $sql = "INSERT INTO `product` (`id`, `name`, `description`, `cost`, `date_wr`) VALUES (NULL, 'Молоко', '3 литра', '150', current_timestamp()), (NULL, 'Куриные яйца', '10 штук', '80', current_timestamp()); "; if ($link->query($sql) === TRUE) { echo "Данные в таблицу product добавлены"; } else { echo "Ошибка добавления данных в таблицу product" . $link->error; } $link->close(); ?>
Удаление данных из таблицы с помощью условия
<head> <title>MySQL удаление всех данных кроме первой записи</title> </head> <body> <?php $server="localhost"; $name="user"; $pas="123"; $dbname="site"; $link = new mysqli($server,$name,$pas,$dbname); if ($link->connect_errno) { printf("Нет соединения c БД %s\n", $link->connect_error); exit(); } // удаление всех записей из таблицы, кроме первой $sql = "DELETE FROM product WHERE id > 1;"; if ($link->query($sql) === TRUE) { echo "Все данные пусты кроме первой записи"; } else { echo "Ошибка удаления данных из MySQL кроме первой записи" . $link->error; } $link->close(); ?>
Чтобы очистить таблицу базы данных не повредив её структуры можно воспользоваться командой TRUNCATE
<html> <head> <title>MySQL очищаем таблицу от данных без изменения структуры</title> </head> <body> <?php $server="localhost"; $name="user"; $pas="123"; $dbname="site"; $link = new mysqli($server,$name,$pas,$dbname); if ($link->connect_errno) { printf("Нет соединения c БД %s\n", $link->connect_error); exit(); } // очистка таблицы без изменения ее структуры $sql = "TRUNCATE TABLE product"; if ($link->query($sql) === TRUE) { echo "Таблица product пустая"; } else { echo "Ошибка очистки таблицы product" . $link->error; } $link->close(); ?>
Для удаление таблицы из базы данных можно воспользоваться следующим кодом (DROP):
<html> <head> <title>MySQL удаление структуры таблицы</title> </head> <body> <?php $server="localhost"; $name="user"; $pas="123"; $dbname="site"; $link = new mysqli($server,$name,$pas,$dbname); if ($link->connect_errno) { printf("Нет соединения c БД %s\n", $link->connect_error); exit(); } // удаление таблицы $sql = "DROP TABLE product"; if ($link->query($sql) === TRUE) { echo "Таблица product удалена"; } else { echo "Ошибка удаления таблицы product" . $link->error; } $link->close(); ?>
Пример запроса на удаления строк (дубликатов) из БД
DELETE FROM wp_posts WHERE post_type =«revision»;