Как запрос превращать таблицу phpmyadmin. Внешние ключи MySQL и их настройка в phpMyAdmin. Создание базы данных при помощи phpMyAdmin

Последнее обновление: 22.12.2017

Как правило, в качестве хранилища данных используются базы данных. PHP позволяет использовать различные систему управления базами данных, но наиболее популярной на сегодняшний день в связке с PHP является MySQL. MySQL представляет бесплатное программное обеспечение, позволяющее взаимодействовать с базами данных с помощью команд языка SQL. Ранее уже рассматривался процесс установки и настройки MySQL.

Чтобы упростить себе работу с базами данных MySQL установим специальный набор скриптов phpMyAdmin . phpMyAdmin представляет интуитивный веб-интерфейс для управления базами данных MySQL. Используя данный инструмент, гораздо легче работать с базами данных, чем управлять MySQL через консоль.

Для установки phpMyAdmin загрузим архив и распакуем в папку C:\localhost , где находятся документы для php. Распакованную папку переименуем для краткости в phpMyAdmin .

В распакованном каталоге phpMyAdmin создадим файл config.inc.php со следующим содержанием:

И чтобы убедиться, что все настроено правильно, в браузере перейдем к phpMyAdmin, например, http://localhost:8080/phpmyadmin :

В левой колонке можно увидеть все имеющиеся базы данных на сервере MySQL. Даже если вы еще не создавали никакие базы данных, на сервере уже имеется некоторый набор баз данных по умолчанию.

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

Создание базы данных MySQL в phpMyAdmin

Чтобы обмениваться данными с сервером MySQL (сохранять, изменять, удалять, получать данные), нам естественно нужна база данных. Создать базу данных мы можем из консоли MySQL, а также из визуального интерфейса phpMyAdmin.

Откроем интерфейс phpMyAdmin. Перейдем на вкладку Базы данных . Под меткой Создать базу данных введем какое-нибудь имя для новой бд, например, compstore и нажмем на кнопку "Создать".

И после этого мы получим сообщение об успешном создании новой бд, и она будет добавлена в списки баз данных.

Новая база данных пока пуста и не содержит ничего. Добавим в нее таблицу, которая будет хранить данные. Для этого нажмем на название базы данных и мы попадем на вкладку "Структура", где нам будут предложены опции новой таблицы. В поле "Имя" введем название новой таблицы. Пусть, таблицы будет хранить данные о моделях смартфонов, поэтому введем название "phones", а в качестве количества столбцов введем цифру 3:

Для создания таблицы нажмем на кнопку "Вперед". После этого у нас появится набор ячеек для установки параметров столбцов. Укажем последовательно для имен столбцов следующие: id, name, company. В качестве типа укажем для столбцов id тип INT , а для столбцов name и company - тип VARCHAR . Для столбцов name и company в поле "Длина/Значения" укажем число 200 - оно будет указывать максимальную длину строки в символах. Также для столбца id укажем в поле "Индекс" PRIMARY а в поле "A_I" (AutoIncrement) поставим галочку:

Таким образом, таблица будет иметь столбцы для уникального идентификатора, названия телефона и названия производителя. И затем нажмем внизу на кнопку "Сохранить".

После создания таблицы мы сможем увидеть в колонке баз данных таблицу и ее столбцы:

Это не единственный способ создания таблиц в phpMyAdmin, так как здесь мы можем управлять базой данных с помощью запросов SQL. Так, выделим в списке баз данных нашу базу и перейдем на вкладку "SQL". Она отображает поле для ввода команды на языке запросов SQL. Введем в него следующую команду:

CREATE Table phones1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(200) NOT NULL, company VARCHAR(200) NOT NULL)

Это стандартная команда создания таблицы на языке SQL. После ключевых слов CREATE Table идет название создаваемой таблицы, а затем в скобках идут через запятую определения столбцов.

Каждое определение столбцов содержит имя столбца, его тип и ряд дополнительных значений. Например, в определении столбца id (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) указывается имя столбца, тип - INT, а также то, что столбец обязательно должен иметь значение - NOT NULL, что его значение будет автоматически увеличиваться на единицу с добавлением нового объекта - AUTO_INCREMENT, и что он играет роль первичного ключа - PRIMARY KEY.

В целом создаваемая таким образом таблица будет равносильна той, что была создана ранее. Нажмем кнопку "Вперед", и будет создана вторая таблица phones1.

Привет, первая запись в 2017 году! Пока все доедают салатики, я решил написать небольшую заметочку про ограничения внешних ключей в базе данных MySQL.

Зачем нужны внешние ключи в таблице

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

В двух словах — во внешних ключах много плюсов, поэтому полезно знать, как ими оперировать.

Настройка внешних ключей

Я буду демонстрировать настройку в своем любимом потому что это очень удобно, кроме того, админ не утаивает сгенерированный код запросов и вы всегда сможете его посмотреть(запомнить, скопировать, раскритиковать ).

Пример ManyToOne и OneToMany

Две таблицы: goods(id, name, catalog_id) и catalogs(id, name) . В одном каталоге множество товаров(OneToMany), и сколько угодно товаров может быть в одном каталоге(ManyToOne). Внешним ключом в этом примере является поле catalog_id в таблице goods .

Создание таблиц в phpmyadmin

Сгенерированные запросы

CREATE TABLE mybd.goods (id name VARCHAR(255) NOT NULL , catalog_id INT NOT NULL , PRIMARY KEY (id), INDEX (catalog_id)) ENGINE = InnoDB; CREATE TABLE mybd.catalogs (id INT NOT NULL AUTO_INCREMENT , name VARCHAR(255) NOT NULL , PRIMARY KEY (id)) ENGINE = InnoDB;

Настройка внешнего ключа catalog_id

Пришло время создать связь между товарами и каталогами. Открываем таблицу goods , переходим во вкладку «структура» и ищем кнопку «связи».

В разделе «ограничения внешнего ключа» заполняем строки и выбираем действия «ON DELETE» и «ON UPDATE».

Сгенерированный запрос

ALTER TABLE goods ADD FOREIGN KEY (catalog_id) REFERENCES mybd.catalogs(id) ON DELETE CASCADE ON UPDATE RESTRICT;

Значения ON DELETE и ON UPDATE

CASCADE — Каскадное удаление и редактирование. Эта настройка означает, что при удалении каталога, все товары из него тоже удалятся. При редактировании, если мы изменим id каталога, у товаров автоматически изменится поле «catalog_id».

RESTRICT — При этой настройке, если мы попытаемся удалить каталог, в котором есть товары, или изменить его id, база данных выдаст нам ошибку и удаление не состоится.

SET NULL — Из названия видно, что если исчезнет(удалится или изменится) каталог с таким id, то у товаров в поле «catalog_id» установится значение NULL. С этой настройкой нужно вести себя осторожно, потому что по умолчанию индексы «NOT NULL».

NO ACTION — Игнорируем удаление и редактирование каталога, и пусть в поле «catalog_id» будет несуществующий идентификатор, просто игнорируем это.

Пример ManyToMany

Случай посложнее, в нем, чтобы не дублировать записи, создают отдельную таблицу связей, которая обычно состоит из двух полей. Рассмотрим пример: authors(id, name) , books(id, name) , author_book(author_id, book_id) . Книга может быть написана соавторами, и у автора может быть множество книг — отличный пример связи ManyToMany.

Создание таблицы связей

В phpmyadmin

Сгенерированный запрос

CREATE TABLE library.author_book (author_id INT NOT NULL , book_id INT NOT NULL , INDEX (author_id, book_id)) ENGINE = InnoDB;

author_id и book_id вместе являются составным индексом, осталось только добавить ограничения на каждый из них во вкладке «связи» и все готово!

Заключение

Не упускайте возможность сложить побольше обязанностей на базу данных, чтобы облегчить себе работу над приложением, и думать о его структуре, а не о контроле табличный связей. Удачи с проектированием баз данных, спасибо за внимание!

Для подключения к phpMyAdmin вы можете использовать уже созданную базу данных u1234567_default (где u1234567 — ваш логин хостинга), которая автоматически создаётся при заказе хостинга. Реквизиты доступа к данной БД приведены в статье .

Внимание База данных u1234567_default создаётся только при заказе тарифных планов от «Host-0» и выше. Если вы заказывали тарифный план «Host-Lite», а потом повысили его до более высокого, данная БД не создаётся. Вам необходимо создать БД самостоятельно по инструкции:

Не могу войти в phpMyAdmin

Чтобы зайти в phpMyAdmin, необходимо использовать логин и пароль пользователя базы данных . Не путайте логин и пароль пользователя базы данных с логином и паролем от услуги хостинга (u1234567).

Если пароль базы данных не подходит, вы можете изменить его на новый при помощи инструкции:

Как создать, удалить или изменить таблицу в базе данных phpMyAdmin?

Внимание! Редактирование базы данных может привести к некорректной работе вашего сайта. Перед внесением изменений создайте бэкап вашего сайта или обратитесь к разработчикам.

Как добавить новую таблицу в базу данных?

Приветствую Вас в новом выпуске раздела mysql, где мы будем разбирать с Вами добавление записей в PHPMyAdmin . За несколько дней мы с Вами освоили, как создавать БД, таблицы, а также пользователей, а теперь настало время приступить к содержимому этих самых таблиц - записям . Для этого я попрошу Вас зайти в созданную Вами БД, и в списке таблиц выберите ту, в которую нужно добавить запись. В верхнем меню появится кнопка вставить . Именно она нам и нужна. После того как Вы ее нажмете у Вас появится следующий вид:


Теперь вы должны заполнить все поля в соответствии с вашими требованиями. В моем примере нужно заполнить всего три поля, первое id вставляемой записи, во втором заголовок, и третье это текст. Вы можете хранить даже html код в БД, этого никто не запрещает, и многие так поступают. Для поля id мы ничего указывать не будем, т.к., если вы помните, мы указывали авто инкремент, благодаря ему каждая запись будем иметь новое значение. Поэтому мы оставляем данное поле пустым, а следующие два заполняем нужными данными в столбец значение. Если Вы заметили, там присутствует еще один столбец, под названием функция. Его мы с Вами будем практически всегда оставлять без изменений, и выполнять все операции через PHP . Теперь вы можете добавить запись, нажав ок. И в результате вы получите вот такой результат:


И уже в этом окне Вы можете управлять записями, редактировать их, либо удалить. Это мы уже разбирать не будет, т.к., там все довольно понятно, и написано на русском языке. Думаю, Вы самостоятельно в этом разберетесь. На этом наш урок подходит к концу, ведь Вы уже научились добавлять записи в PHPMyAdmin . До скорых встреч!

В этой статье я научу Вас управлять таблицами в PHPMyAdmin , то есть создавать, редактировать и удалять таблицы в базе данных. Эта статья очень важная, и Вам надо обязательно её изучить.

Начнём с создания таблицы в PHPMyAdmin :

Тут есть о чём поговорить. Начнём с настроек для полей таблицы:

  • Имя , думаю, задать сможете. Единственное, не нарвитесь на зарезервинованное слово. То есть нельзя давать полю, например, такое имя "index ".
  • Тип . О типах полей подробно говорилось в этой статье: , поэтому ничего добавлять не буду.
  • Длины/значения . Здесь можно указать предельные значения(длины) переменных. Я, например, часто использую данную возможность для экономии ресурсов. Например, для пароля я ставлю тип VARCHAR и максимальное количество символов - 32 . Тогда как, по умолчанию, VARCHAR позволяет хранить до 255 символов.
  • Кодировка . Разумеется, данная настройка актуальна только для строковых типов. Если Вы будете хранить в этом поле строки из только русского и латинского алфавита, то используйте кириллицу (cp1251_general_ci ), а если у Вас могут храниться другие символы, то используйте unicode (utf8_general_ci ).
  • Атрибуты . Относится только к числам. Если у Вас число заведомо положительное, то включите опцию "UNSIGNED ", что позволит расширить положительный диапазон значений выбранного типа. Также есть опция "UNSIGNED ZEROFILL ", которая редко используется, но делает она следующее: заполняет нулями все неиспользованные старшие разряды. То есть, допустим, у Вас число 4 , однако, храниться будет: "000000004 ", где количество нулей определяется свободными разрядами выбранного типа.
  • Ноль . Эта опция позволяет включить возможность значения "null ". Запомните: "null " - это не 0 , и не пустая строка. Это пустой объект, то есть ничего!
  • По умолчанию . Полезная опция, позволяющая задать значение поля по умолчанию.
  • Дополнительно . Позволяет задать "auto_increment ". Это очень важная возможность, которую Вы будете включать, думаю, что в каждой таблице. Эта опция позволяет при добавлении новой записи автоматически увеличивать на 1 значение поля. Идеальный вариант для ID (уникального идентификатора ), который должен быть уникален для каждой записи. И чтобы не думать об уникальности этого поля, достаточно просто включить опцию "auto_increment ".
  • Дальше идут радиопереключатели:
    • Первичный ключ . Как правило, этим ключом назначают поле ID . Означает этот ключ, что значение поля уникально для всей таблицы, более того, по этому полю создаётся индекс. О том, что такое индекс и для чего он нужен, мы поговорим в одной из следующих статей.
    • Индекс . Собственно, создавать или нет для этого поля индекс.
    • Уникальное . Если поставить эту опцию, то значение данного поля должно быть уникальным.
    • И флажок "ПолнТекст " означает, создавать полнотекстовый индекс или нет.
  • Комментарии . Это поле можете заполнять на своё усмотрение.
  • MIME-тип . Это поле нужно заполнять, если у Вас какой-нибудь особенное значение будет храниться в поле, например, изображение. Как правило, ставится "auto-detect ".
  • Трансформации браузера . Это я описывать не буду, так как используется крайне редко. Но если хотите, то можете почитать в самом PHPMyAdmin , там очень хорошо об этом написано, и разобраться не составит труда.
  • Опции трансформации браузера . Тут можно задать параметры для трансформации, если Вы их используете.

Настройки таблицы гораздо проще:

  • Комментарий к таблице . Можете заполнить, а можете ничего не писать.
  • Тип таблицы :
    • MyISAM . Самый популярный тип таблиц в MySQL , и он подходит для большинства задач.
    • Heap . Особенность данной таблицы в том, что она хранится в памяти, в результате данный тип таблиц обрабатывается ОЧЕНЬ быстро. Идеальный вариант для временных таблиц. Разумеется, при сбое в работе все данные будут утеряны.
    • Merge . Этот тип представляет собой совокупность обычный таблиц MyISAM . Сам я ещё не использовал данный тип, поэтому больше ничего сказать не могу, более того, данный тип - это ещё новшество, а, следовательно, за стабильность никто не ручается.
  • Кодировка таблицы . Абсолютно те же правила, что и для задания кодировки для полей.

Так, с созданием таблиц разобрались, а теперь поговорим о том, как изменить настройки таблицы в PHPMyAdmin .

Публикации по теме