software:development:web:docs:learn:mariadb:вatabase_creation
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| software:development:web:docs:learn:mariadb:вatabase_creation [2024/02/25 18:29] – [Подготовленные операторы и связанные параметры] vladpolskiy | software:development:web:docs:learn:mariadb:вatabase_creation [2024/02/25 21:35] (текущий) – [Создание новой базы данных] vladpolskiy | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ======PHP Создать базу данных MySQL====== | + | ======База данных |
| + | С помощью PHP вы можете подключаться к базам данных и управлять ими. | ||
| + | |||
| + | MySQL — самая популярная система | ||
| + | =====Что такое MySQL? | ||
| + | * MySQL — это система баз | ||
| + | * MySQL — это система баз данных, | ||
| + | * MySQL идеально подходит как для небольших, | ||
| + | * MySQL очень быстрый, | ||
| + | * MySQL использует стандартный SQL | ||
| + | * MySQL компилируется на нескольких платформах | ||
| + | * MySQL можно бесплатно загрузить и использовать. | ||
| + | * MySQL разрабатывается, | ||
| + | * MySQL названа в честь дочери соучредителя Монти Видениуса: | ||
| + | * Данные в базе данных MySQL хранятся в таблицах. Таблица представляет собой набор связанных данных, | ||
| + | * | ||
| + | Базы данных полезны для хранения категориальной информации. Компания может иметь базу данных со следующими таблицами: | ||
| + | |||
| + | * Сотрудники | ||
| + | * Продукты | ||
| + | * Клиенты | ||
| + | * Заказы | ||
| + | |||
| + | =====Система баз данных PHP + MySQL===== | ||
| + | * PHP в сочетании с MySQL являются кроссплатформенными (вы можете разрабатывать в Windows и использовать платформу Unix). | ||
| + | ====Запросы к базе данных==== | ||
| + | Запрос – это вопрос или просьба. | ||
| + | |||
| + | Мы можем запросить базу данных для получения конкретной информации и получить набор записей. | ||
| + | |||
| + | Посмотрите на следующий запрос (с использованием стандартного SQL): | ||
| + | < | ||
| + | SELECT LastName FROM Employees | ||
| + | </ | ||
| + | Приведенный выше запрос выбирает все данные в столбце «Фамилия» из таблицы «Сотрудники». | ||
| + | |||
| + | Чтобы узнать больше о SQL, посетите [[https:// | ||
| + | ====Скачать базу данных MySQL==== | ||
| + | Если у вас нет PHP-сервера с базой данных MySQL, вы можете скачать его бесплатно здесь: http:// | ||
| + | ====Факты о базе данных MySQL==== | ||
| + | MySQL — это де-факто стандартная система баз данных для веб-сайтов с ОГРОМНЫМИ объемами как данных, | ||
| + | |||
| + | Еще одна замечательная особенность MySQL заключается в том, что ее можно масштабировать для поддержки встроенных приложений баз данных. | ||
| + | |||
| + | Посетите http:// | ||
| + | =====Подготовка файлов===== | ||
| Создадим c помощью блокнота на нашем сервере файл index.php | Создадим c помощью блокнота на нашем сервере файл index.php | ||
| Строка 24: | Строка 69: | ||
| <file html index.php> | <file html index.php> | ||
| <?php | <?php | ||
| - | $servername = " | + | $servername = " |
| - | $username = " | + | $username = " |
| - | $password = " | + | $password = " |
| // Создаём соединение | // Создаём соединение | ||
| Строка 350: | Строка 395: | ||
| {{: | {{: | ||
| \\ | \\ | ||
| - | =====Подготовленные операторы | + | =====Выбор данных из базы данных MySQL===== |
| - | Подготовленный оператор | + | Оператор |
| - | + | < | |
| - | Подготовленные | + | SELECT column_name(s) FROM table_name |
| - | + | </ | |
| - | - Подготовка. Шаблон инструкции SQL создается | + | или мы можем использовать символ |
| - | - База данных анализирует, | + | < |
| - | - Выполнение: | + | SELECT |
| - | По сравнению с непосредственным выполнением операторов SQL подготовленные операторы | + | </ |
| - | + | В следующем примере выбираются столбцы id, firstname | |
| - | * Подготовленные операторы | + | |
| - | * Связанные параметры минимизируют пропускную способность сервера, поскольку вам нужно каждый раз отправлять только параметры, а не весь запрос. | + | |
| - | * Подготовленные операторы очень полезны против SQL-инъекций, | + | |
| - | В следующем примере используются | + | |
| В тело нашей страницы между тегами < | В тело нашей страницы между тегами < | ||
| <file html index.php> | <file html index.php> | ||
| Строка 381: | Строка 422: | ||
| | | ||
| - | // задайте параметры и выполните | + | |
| - | $firstname | + | $sql = "SELECT id, firstname, |
| - | $lastname | + | $result |
| - | $email = " | + | |
| - | $stmt->execute(); | + | |
| - | $firstname | + | if ($result-> |
| - | $lastname | + | // |
| - | $email = "mary@example.com"; | + | |
| - | $stmt->execute(); | + | |
| + | } | ||
| + | } else { | ||
| + | | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | Строки кода для пояснения из примера выше: | ||
| - | $firstname = " | + | Сначала мы настраиваем SQL-запрос, |
| - | | + | |
| - | | + | |
| - | | + | |
| - | echo "New records created successfully"; | + | Затем функция num_rows() проверяет, |
| - | $stmt->close(); | + | Если возвращается более нуля строк, функция fetch_assoc() помещает все результаты в ассоциативный массив, |
| - | // | + | \\ |
| - | | + | Откроем нашу страницу в браузере, |
| + | * id: 1 - Имя: Джон Доу | ||
| + | * id: 4 - Имя: Влад Польский | ||
| + | * id: 5 - Имя: Джон Доу | ||
| + | * id: 6 - Имя: Мэри Мо | ||
| + | * id: 7 - Имя: Джули Дули | ||
| + | * id: 8 - Имя: Джон Доу | ||
| + | * id: 9 - Имя: Мэри Мо | ||
| + | * ID: 10 - Имя: Джули Дули | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | =====Выбор и фильтрация данных из базы данных MySQL===== | ||
| + | Предложение WHERE используется для фильтрации записей. | ||
| + | |||
| + | Предложение WHERE используется для извлечения только тех записей, | ||
| + | <code> | ||
| + | SELECT column_name(s) FROM table_name WHERE column_name operator value | ||
| + | </ | ||
| + | **Выбирайте и фильтруйте данные с помощью MySQLi** | ||
| + | В следующем примере выбираются столбцы id, firstname и Lastname из таблицы MyGuests, где фамилия — «Doe», и отображаются на странице: | ||
| + | В тело нашей страницы между тегами < | ||
| + | <file html index.php> | ||
| + | <? | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | // | ||
| + | $conn = new mysqli($servername, | ||
| + | // Проверим подключение | ||
| + | if ($conn-> | ||
| + | | ||
| + | } | ||
| + | // подготовить | ||
| + | $sql = " | ||
| + | $result = $conn->query($sql); | ||
| + | |||
| + | if ($result-> | ||
| + | // output data of each row | ||
| + | while($row = $result-> | ||
| + | echo "id: " . $row[" | ||
| + | } | ||
| + | } else { | ||
| + | echo "0 results"; | ||
| + | } | ||
| ?> | ?> | ||
| </ | </ | ||
| Строки кода для пояснения из примера выше: | Строки кода для пояснения из примера выше: | ||
| + | |||
| + | Сначала мы настраиваем SQL-запрос, | ||
| + | |||
| + | Затем проверяется, | ||
| + | |||
| + | Если возвращается более нуля строк, функция fetch_assoc()помещает все результаты в ассоциативный массив, | ||
| + | \\ | ||
| + | Откроем нашу страницу в браузере, | ||
| + | id: 1 - Имя: Джон Доу\\ | ||
| + | id: 5 - Имя: Джон Доу\\ | ||
| + | id: 8 - Имя: Джон Доу | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | =====Выбор и заказ данных из базы данных MySQL===== | ||
| + | Предложение ORDER BY используется для сортировки набора результатов в порядке возрастания или убывания. | ||
| + | |||
| + | Предложение ORDER BY по умолчанию сортирует записи в порядке возрастания. Чтобы отсортировать записи в порядке убывания, | ||
| < | < | ||
| - | " | + | SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC |
| </ | </ | ||
| - | В нашем SQL мы вставляем вопросительный знак (?) туда, где хотим заменить целое, строковое, двойное или | + | **Выбор и заказ данных с помощью MySQLi** |
| + | В следующем примере выбираются столбцы идентификатора, имени и фамилии из таблицы MyGuests. Записи будут упорядочены по столбцу фамилии: | ||
| + | В тело | ||
| + | <file html index.php> | ||
| + | <? | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | // Создаём соединение | ||
| + | $conn = new mysqli($servername, | ||
| + | // Проверим подключение | ||
| + | if ($conn-> | ||
| + | | ||
| + | } | ||
| + | // подготовить | ||
| + | $sql = " | ||
| + | | ||
| - | Затем взгляните на функциюbind_param(): | + | if ($result-> |
| + | // output data of each row | ||
| + | | ||
| + | echo "id: " . $row[" | ||
| + | } | ||
| + | } else { | ||
| + | echo "0 results"; | ||
| + | } | ||
| + | // | ||
| + | | ||
| + | ?> | ||
| + | </ | ||
| + | Строки кода для пояснения из примера | ||
| + | |||
| + | Сначала мы настраиваем SQL-запрос, который выбирает столбцы идентификатора, | ||
| + | |||
| + | Затем проверяется, | ||
| + | |||
| + | Если возвращается более нуля строк, | ||
| + | \\ | ||
| + | Откроем нашу страницу в браузере, | ||
| + | id: 1 - Name: John Doe\\ | ||
| + | id: 5 - Name: John Doe\\ | ||
| + | id: 8 - Name: John Doe\\ | ||
| + | id: 7 - Name: Julie Dooley\\ | ||
| + | id: 10 - Name: Julie Dooley\\ | ||
| + | id: 6 - Name: Mary Moe\\ | ||
| + | id: 9 - Name: Mary Moe\\ | ||
| + | id: 4 - Name: Vlad Polskiy\\ | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | =====Удаление данных из таблицы MySQL с использованием MySQLi ===== | ||
| + | Оператор DELETE используется для удаления записей из таблицы: | ||
| < | < | ||
| - | $stmt-> | + | DELETE FROM table_name |
| + | WHERE some_column = some_value | ||
| </ | </ | ||
| - | Эта функция привязывает | + | **Обратите внимание на предложение WHERE в синтаксисе DELETE: Предложение WHERE указывает, какую запись или записи следует удалить. Если вы опустите предложение WHERE, все |
| + | Давайте посмотрим на таблицу «MyGuests»: | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | В следующих примерах удаляется запись с идентификатором = 5 в таблице «MyGuests»: | ||
| + | В тело нашей страницы | ||
| + | <file html index.php> | ||
| + | <? | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | // Создаём соединение | ||
| + | $conn = new mysqli($servername, | ||
| + | // Проверим подключение | ||
| + | if ($conn-> | ||
| + | | ||
| + | } | ||
| + | // sql to delete a record | ||
| + | $sql = " | ||
| - | Аргумент может быть одного | + | if ($conn-> |
| + | echo " | ||
| + | } else { | ||
| + | echo "Error deleting record: " . $conn-> | ||
| + | } | ||
| + | // Закроем соединение | ||
| + | | ||
| + | ?> | ||
| + | </ | ||
| - | * i - целое | + | \\ |
| - | | + | Откроем нашу страницу в браузере, где увидим надпись: |
| - | * s - строка | + | \\ |
| - | * b - БЛОБ | + | {{: |
| - | У нас должно быть по одному из них для каждого параметра. | + | \\ |
| + | Проверим записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | =====Обновление | ||
| + | Оператор UPDATE используется для обновления существующих записей в таблице: | ||
| + | < | ||
| + | UPDATE table_name | ||
| + | SET column1=value, | ||
| + | WHERE some_column=some_value | ||
| + | </ | ||
| + | **Обратите внимание на предложение WHERE в синтаксисе UPDATE: Предложение WHERE указывает, какую запись или записи следует | ||
| + | Давайте посмотрим на таблицу «MyGuests»: | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| + | В следующих примерах запись обновляется с id=4 в таблице «MyGuests». | ||
| + | В тело нашей страницы | ||
| + | <file html index.php> | ||
| + | <? | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | // Создаём соединение | ||
| + | $conn = new mysqli($servername, | ||
| + | // Проверим подключение | ||
| + | if ($conn-> | ||
| + | | ||
| + | } | ||
| + | $sql = " | ||
| - | Сообщая mysql, какой тип данных | + | if ($conn-> |
| + | echo " | ||
| + | } else { | ||
| + | echo "Error updating record: " . $conn-> | ||
| + | } | ||
| + | // Закроем соединение | ||
| + | $conn-> | ||
| + | ?> | ||
| + | </ | ||
| - | **Примечание.** Если мы хотим вставить какие-либо данные из внешних источников (например, | ||
| \\ | \\ | ||
| - | Откроем нашу страницу в браузере, | + | Откроем нашу страницу в браузере, |
| \\ | \\ | ||
| - | {{: | + | {{: |
| \\ | \\ | ||
| - | Проверим | + | Проверим записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin |
| \\ | \\ | ||
| - | {{: | + | {{: |
| \\ | \\ | ||
| + | =====Ограничение выбора данных из базы данных MySQL ===== | ||
| + | MySQL предоставляет предложение LIMIT, которое используется для указания количества возвращаемых записей. | ||
| + | |||
| + | Предложение LIMIT упрощает кодирование многостраничных результатов или разбиение на страницы с помощью SQL и очень полезно для больших таблиц. Возврат большого количества записей может повлиять на производительность. | ||
| + | |||
| + | Предположим, | ||
| + | < | ||
| + | $sql = " | ||
| + | </ | ||
| + | При выполнении приведенного выше SQL-запроса он вернет первые 30 записей. | ||
| + | |||
| + | Что делать, | ||
| + | |||
| + | Mysql также предоставляет способ справиться с этим: используя OFFSET. | ||
| + | |||
| + | В приведенном ниже SQL-запросе говорится: | ||
| + | < | ||
| + | $sql = " | ||
| + | </ | ||
| + | Вы также можете использовать более короткий синтаксис для достижения того же результата: | ||
| + | < | ||
| + | $sql = " | ||
| + | </ | ||
| + | Обратите внимание, | ||
| + | |||
| + | =====Ссылки и Примечания===== | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | MySQL]] | ||
software/development/web/docs/learn/mariadb/вatabase_creation.1708874988.txt.gz · Последнее изменение: — vladpolskiy
