Мода и стиль. Красота и здоровье. Дом. Он и ты

Создание таблицы mysql в phpmyadmin. Работа с базой данных

Привет, первая запись в 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 , то есть создавать, редактировать и удалять таблицы в базе данных. Эта статья очень важная, и Вам надо обязательно её изучить.

Начнём с создания таблицы в 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 .

Последнее обновление: 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.

phpMyAdmin содержит инструмент под названием Дизайнер . Этот инструмент позволяет упростить работу по созданию таблиц в базе данных и связей между таблицами.

Для начала создайте базу данных и войдите с полученными данными пользователя в phpMyAdmin .

Этап I. Создание хранилища конфигурации

Этап II. Работа с Дизайнером

  • В левом поле со списком баз данных выберите вновь созданную
  • Переходим в меню Ещё и подменю Дизайнер

  • В панели инструмента справа выбираем Показать/Скрыть список таблиц
  • Слева откроется панель со списком таблиц. Скрыть/показать ненужные таблицы, относящиеся к Хранилищу настроек (pma) , можно снятием/установкой соответствующей галочки

Создание связи

  • Выбираем таблицы, между которыми необходимо настроить связи
  • Нажимаем Создать связь в панели инструментов
  • Далее у стрелки появится надпись Выберите ссылочный ключ . Необходимо нажать на первичный ключ таблицы. В нашем случае это ключ tbl1_id в таблице table1
  • Стрелка поменяет надпись на Выберите внешний ключ . Необходимо кликнуть на соответствующее поле связанной таблицы. В нашем случае это поле tbl1_id в таблице table2
  • В диалоговом окне выбираем ОК


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


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


Первым делом, вы указываете имя поля, которое будет создано, например id вставляемой записи.
Далее указываете тип данных вашего поля. Конкретно обо всех типах мы поговорим отдельно.
Следующий шаг, Вы можете указать длину значения в символах. Можно также указывать значение, которое будет назначено по умолчанию.
В сравнении Вы должны выбрать кодировку, однако нужно помнить, что ее следует задавать для строк, т.е., если в нашем примере мы храним идентификатор записи, то и кодировку указывать не нужно.
В атрибутах рекомендую вам использовать значение unsigned , и применять его исключительно для чисел.
Если установить чекбокс Null , то значение сможет его принимать, т.е., оно может ничего в себе не содержать.
В следующем поле вы можете указать индекс, который Вам необходим: PRIMARY , является первичным ключом и оно должно быть уникальным для всей создаваемой таблицы. Как раз нашему полю ID, оно подойдет. UNIQUE , если установить данное значение, то поле должно оставаться уникальным, например логин пользователя. Значение INDEX , задает индекс для указанного поля. И значение FullText задает полнотекстовый индекс для поля.
Если установить чекбокс A_I , то при каждом добавлении новой записи в таблицу значение данного поля будет увеличиваться на единицу автоматически.
В дальнейшем Вы можете указать свой комментарий к полю. Остальные параметры являются не очень важными, поэтому мы разбирать их не будет, лишь отмечу еще одну вещь. В типе таблиц можете указывать InnoDB или MyISAM , а также не забывайте задавать кодировку для таблицы. На этом мы может завершить создание таблицы и нажать ок. Все таблица создана и появилась у вас в левой части. При клике на нее, у Вас должно появиться примерно такое меню:


Теперь Вы можете редактировать ваши поля, выбрав при этом нужное для Вас, и нажать кнопку изменить. Также можно удалить поле аналогичным способом, нажать кнопку удалить и подтвердить удаление. Если Вы вспомнили, что у Вас не хватает еще одного поля, то можете его добавить, указав при этом количество полей, после какого поля их вставлять и нажать ок. Вот я и перечислил основные манипуляции, выполняемые с таблицами. Вы можете еще немного посмотреть на все возможные настройки и возможности. На этом завершаем изучение работы с таблицами PHPMyAdmin , все, что я планировал, Вам уже рассказал. До скорого

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!