Создание таблицы в phpmyadmin для хранения фотографий. Создание базы данных mysql в phpmyadmin

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

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

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

Для начала, движок таблиц должен быть InnoDB . Только он поддерживает внешние ключи (foreign key ). Если у вас таблицы MyISAM , почитайте как их конвертировать в InnoDB .

Для того, чтобы связать таблицы по полям, необходимо сначала добавить в индекс связываемые поля:

В phpmyadmin выбираем таблицу, выбираем режим структуры, выделяем поле, для которого будем делать внешнюю связь и кликаем Индекс.

Обратите внимание на разницу между "Индекс" и "Уникальный". Уникальный индекс можно использовать, например, до поля id, то есть там, где значения не повторяются.

Это же действие можно сделать с помощью SQL -запроса:

ALTER TABLE `table_name` ADD INDEX (`field_name`) ;

Аналогично добавляем индекс (только в моем случае теперь уже уникальный или первичный) для таблицы, на которую ссылаемся, для поля id. Поскольку поле id у меня идентификатор, для него делаем первичный ключ. Уникальный ключ мог бы понадобится для других уникальных полей.

С помощью SQL -запроса:

ALTER TABLE `table_name` ADD UNIQUE (`field_name`);

Теперь осталось только связать таблицы . Для этого кликаем внизу на пункт Связи:

Теперь для доступных полей (а доступны только проиндексированные поля) выбираем связь с внешними таблицами и действия при изменении записей в таблицах:

Через SQL -запрос:

ALTER TABLE `table_name` ADD FOREIGN KEY (`field_in_table_name_which_need_connect`) REFERENCES `outer_table_to_connect` (`outer_field`) ON DELETE RESTRICT ON UPDATE RESTRICT ;

на этом все, таблицы связаны через foreign key .

Доброго времени суток. Сегодня я остановлюсь на работе с утилитой phpMyAdmin. Данная утилита позволяет нам работать с сервером баз данных MySQL. А если быть точнее, то phpMyAdmin позволяет:

  1. Создавать базу данных
  2. Создавать таблицы в базе данных
  3. Добавлять, удалять и редактировать данные в табицах
  4. Осуществлять поиск данных
  5. Устанавливать привилегии на базу данных, таблицу
  6. Делать бекап и восстанавливать базу данных
  7. И многое другое

Т.е. phpMyAdmin позволяет делать первоначальные настройки базы данных и ее содержимого. А теперь обо всем этом подробно…

Установка phpMyAdmin

phpMyAdmin представляет собой набор html, css, javascript и php файлов — это небольшой сайт, который управляет MySQL. Установка phpMyAdmin представляет собой обычное копирование файлов на Ваш web-сервер. Как устанавливается phpMyAdmin я описал в статье Установка и настройка apache+php+mysql на Windows. Часть 3 . После того, как мы установили phpMyAdmin в адресной строке браузера набираем адрес <Ваш сайт>/phpMyAdmin и попадаем в окно авторизации phpMyAdmin

В поле “Пользователь” вводим root, а в поле “Пароль” вводи пароль, который Вы установили для root пользователя при установке MySQL.

Ниже них расположены названия баз данных, которые находятся на сервер MySQL. Тут будьте внимательны базы: information_shema, mysql, perfomance_shema — это служебные базы данных и если Вы не знаете за что они отвечают, то лучше их не трогать.
В правой части или основной вверху мы видим меню

ниже этого меню мы видим:


Создание базы данных при помощи phpMyAdmin

Для того чтобы приступить к созданию базы данных перейдем в меню “Базы данных”

В поле вводим название базы данных и жмем “Создать”

Для того, чтобы удалить базу данных необходимо в окне баз данных выбрать необходимую базу данных и нажать “Удалить”

И тут мы увидим еще одну замечательную особенность phpMyAdmin, которая понравиться для тех, кто только изучает SQL-язык: phpMyAdmin показывает нам запрос.
Для удаления базы данных необходимо подтвердить запрос.

Работа с базой данных через phpMyAdmin

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

Давайте создадим таблицу test в нашей базе данных. Для этого в окне нашей базы данных в поле введем название таблицы, а в поле количество столбцов поставим, например, 2 и нажмем “Ок”

В следующем окне нам предложать заполнить данные о столбцах:

  1. Имя — имя столбца
  2. Тип — тип столбца
  3. Длина — длина столбца
  4. По умолчанию — значение, которое будет подставлено по умолчаню, если Вы это указали
  5. Сравнение — как будет осуществляться поиск данных
  6. Атрибуты — атрибуты столбца
  7. Null — может ли столбец быть пустым
  8. Индекс — индекс поля
  9. A_I — является ли данный столбец с автоматическим приращением
  10. Комментарий — комментарий к данному столбцу

Также мы должны указать тип столбцов.
После ввода всех необходимых данных жмем “Сохранить”

Мы видим, что появилась наша таблица

Теперь мы можем:

  1. выполнить SQL-запрос — это делается в меню “SQL”
  2. осуществить поиск данных в нашей базе — это делается в меню “Поиск”
  3. можем осуществить запрос по шаблону, который можно сделать в меню “Запрос по шаблону”
  4. Экспортировать данные базы в различные форматы — это делается в меню “Экспорт”
  5. Импортировать данные в базу в меню “Импорт”
  6. Установить привилегии на базу данных: создать пользователей для данной базы и настроить их доступ к данным — это выполняется в меню “Привилегии”
  7. Можем удалить таблицу. Для выбрать необходимую таблицу и нажать “Удалить”

Работа с данными

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

После чего мы увидим структуру данной таблицы

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

  1. Просматривать.
  2. Добавлять.
  3. Удалять.
  4. Изменять.
  5. Копировать.
  6. Осуществлять поиск по различным критериям.

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


В следующем окне жмем “Добавить пользователя”

В следующем окне заполняем все поля:

  1. Имя пользователя — логин
  2. Хост — выбираем ограничение доступа: с любой машины, с локальной машины, использовать таблицу хостов или использовать текстовое поле.
  3. Пароль — вводим пароль для данной учетной записи (если Вы генерируете пароль, то ничего вводить не надо)
  4. Подтверждение — повторяем пароль
  5. Создать пароль — при нажатии на кнопку “Генерировать” phpMyAdmin автоматически сгенерирует пароль

После заполнения всех полей жмем “Добавить пользователя”

Если пользователь успешно добавлен, то Вы увидите следующее окно

Для изменения привилегий жмем “Редактирование привилегий” напротив необходимого пользователя.
На этом я заканчиваю рассмотрение основ работы с phpMyAdmin. Если Вам интересно более подробно изучить phpMyAdmin, то пишите в комментариях и я обязательно напишу цикл статей по phpMyAdmin. А вообще я не рекомендую зацикливаться на данной утилите, а изучать работу с MySQL через консоль — это гораздо быстрее, надежнее и Вы сможете делать с сервером базы данных практически все, что захотите.

В этой статье я научу Вас управлять таблицами в 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 .

Привет, первая запись в 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 вместе являются составным индексом, осталось только добавить ограничения на каждый из них во вкладке «связи» и все готово!

Заключение

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

Отчет по лабораторной работе №11

Дисциплина: «Web-программирование»

Тема: «СУБД MySQL. Работа с утилитой phpMyAdmin »

Вариант №14

Теоретическая часть

Утилита phpMyAdmin реализована на языке РНР и доступна для свободной загрузки с сайта www.phpmyadmin.net. Этот инструмент обладает дружественным интерфейсом и позволяет выдирать язык общения.

Создание таблиц с помощью phpMyAdmin. На странице phpMyAdmin есть специальное поле для создания новой таблицы в данной базе.

Введите имя новой таблицы (например, book_new) и укажите в соседнем поле, что в этой таблице должно быть, например, четыре столбца – 4 (id - номер, title - название книги, author - автор, price - цена).

Щелкните на кнопке ОК В результате будет создана таблица book_new из четырех столбцов в базе данных db_1408057. На экране отобразится окно с полями для задания свойств новой таблицы (каждая строка содержит поля атрибутов одного столбца новой таблицы). Внесите в нее необходимые атрибуты.

Для внесения изменений в параметры столбца необходимо в соответствующей строке на этой странице щелкнуть по значку «карандаш».

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

Для внесения данных в новую таблицу необходимо в строке этой таблицы в общем списке щелкнуть на кнопке Вставить .
Заполнив эти поля, нажмите кнопку ОК .

Завершив заполнение таблицы, вернитесь на предыдущую страницу со сводными данными по всем таблицам базы – и в строке таблицы book_new щелкните на кнопке Обзор. В результате будет отображено содержимое таблицы, то есть занесенные только что в нее данные (смотрите таблицу ниже).

Если в таблице много строк и все они сразу не видны, то кнопка Показать позволяют задать, начиная с какой строки и сколько строк следует отобразить в окне.

Для внесения изменений в отдельную запись следует в строке, отображающей содержимое этой записи, щелкнуть на иконке «карандаш».

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

Выполнение запросов к таблицам БД. Для выполнения SQL запроса необходимо, щелкнуть на кнопке SQL . Откроется окно, в котором можно набрать SQL запрос.

Структура базы данных в графическом виде (согласно теме курсовой работы «Детский сад»).

Рисунок 1. Логическая модель БД

Рисунок 2. Физическая модель БД

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

Рисунок 3.Созданиебазы данных с именем «g141003_nalivko»

Рисунок 4.Создание таблицы базы данных Deti,где количество полей равно 5

Рисунок 5.Отображение окна с полями для задания свойств новой таблицы Deti

Рисунок 6. Отображение структуры таблицы Deti.

Рисунок 7. Внесение изменений в параметры столбца таблицы Deti при нажатии по значку «карандаш» в соответствующей строке на этой странице.

Рисунок 8. Внесение данных в таблицу Deti при нажатии в строке этой таблицы в общем списке на кнопке Вставить

Рисунок 9. Заполние полей в таблице Deti

Рисунок 10. Добавление одной строки в таблицу Deti

Рисунок 11. Отображение содержимого таблицы Deti , то есть занесенных только что в нее данных при нажатии на кнопку Обзор.

Рисунок 12. Отображение содержимого таблицы Deti.

Рисунок 13. Удаление записи из таблицы Deti.

Рисунок 14. Отображение структуры таблицы Gruppy.

Рисунок 15. Отображение содержимого таблицы Gruppy.

Рисунок 16. Отображение структуры таблицы Vospitateli.

Рисунок 17. Отображение содержимого таблицы Vospitateli.

Рисунок 18. Отображение структуры базы данных g141003_nalivko.

Рисунок 20. Результат запроса на выборку в таблице Deti

Рисунок 22. Результат запроса на выборку данных из таблицы Deti, номер группы которых равен 13

Рисунок 24. Результат запроса на выборку данных из полей id_g, id_v, id_k таблицы Gruppy

Рисунок 26. Результат запроса на выборку данных из полей id_v, fio_v, telefon таблицы Vospitateli

Рисунок 27. Сортировка в алфавитном порядке по полю fio_v в таблице Vospitateli

Рисунок 28. Результат сортировки в алфавитном порядке по полю fio_v в таблице Vospitateli

Рисунок 29. Сортировка в алфавитном порядке по полю id_k в таблице Gruppy

Рисунок 30. Результат сортировки в алфавитном порядке по полю id_k в таблице Gruppy

Рисунок 31. Сортировка в алфавитном порядке по полю fio_d в таблице Deti

Рисунок 32. Результат сортировки в алфавитном порядке по полю fio_d в таблице Deti

Рисунок 33. Группировка данных в таблице Deti по полю id_g

Рисунок 34. Результат группировки данных в таблице Deti по полю id_g

Рисунок 35. Группировка данных в таблице Gruppy по полю id_k

Рисунок 36. Результат группировки данных в таблице Gruppy по полю id_k

Рисунок 37. Группировка данных в таблице Vospitateli по полю id_g

Рисунок 38. Результат группировки данных в таблице Vospitateli по полю id_g

Рисунок 39. Использование агрегатной функции COUNT() – подсчет количество записей в таблице Vospitateli по полю fio_v

Рисунок 40. Результат использования агрегатной функции COUNT() – подсчет количество записей в таблице Vospitateli по полю fio_v

Рисунок 41. Использование агрегатной функции MAX() – максимальное значение в таблице Gruppy по полю id_k

Рисунок 42. Результат использования агрегатной функции MAX() – максимальное значение в таблице Gruppy по полю id_k

Рисунок 43. Использование агрегатной функции SUM() – подсчитывает сумму в таблице Deti по полю id_g

Рисунок 44. Результат использования агрегатной функции SUM() – подсчитывает сумму в таблице Deti по полю id_g