Основи роботи з 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.

У цій статті я навчу Вас керувати таблицями в 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.

Всім доброго доби! Сьогодні я розповім вам про те, як створити базу даних уphpmyadmin. І так, в першу чергу запускаємо сервер і заходимо до phpMyAdmin.Якщо у Вас сервер встановлений на локальному комп'ютері , то у Danwer phpMyAdmin розташований за адресою http://localhost/tools/phpmyadmin/, а в WAMPта в інших серверах, phpMyAdmin доступний за адресою http://localhost/phpmyadmin/

На реальному хостингу, phpMyadmin доступний за іншою адресою. Яким саме Вам потрібно дізнатися у хостингу провайдера.

У версії 5.5 виглядає так:


Далі в полі ім'я нової БД вводимо назву нашої БД, наприклад test. У полі порівняння вибираємо кодування БД, utf8_general_ci. Якщо ми не вказуємо кодування, тобто залишаємо такий "порівняння" то це кодування вибирається за замовчуванням. Після того, як заповнили ці поля, натискаємо на кнопку створити.


Посередині екрана з'явиться повідомлення, що база даних test була створена. Вона з'явиться у списку із створеними БД. Знаходимо її в цьому списку, клікнемо на її назву та потрапляємо всередині створеної БД. Спочатку вона порожня, тому створимо таблицю.

Є два способи створення таблиць:

Перший спосіб:У лівій колонці натискаємо на створити таблицю

І з'явиться таке вікно:


Задаємо ім'я для таблиці та назву для кожного поля. Наприклад, ми хочемо створити таблицю із категоріями сайту. Тому задаємо ім'я таблиці categories. Для цієї таблиці нам знадобиться лише 2 поля, це idта назва категорій ( name) За правилами у будь-якій таблиці, перше поле завжди має назву id, тобто ідентифікатор. Для цього поля обов'язково вибираємо тип INT і задаємо довжину значення в цифрах, наприклад 2. Індекс вибираємо PRIMARY, таким чином, ми задаємо їй первинний ключ і вставляємо галочку A_I (Auto Increment) для того щоб її значення автоматично збільшувалося на одиницю.

Для поля з назвою категорій вибираємо тип VARCHAR та задаємо максимальну довжину 255 символів.

Якщо ви бажаєте додати ще одне або більше полів, то в полі додати,введіть те число, яке відповідає кількості полів, які ви хочете додати і натисніть ок.

Нам не потрібно чотири поля, а лише два, тому заповнювали лише два поля, а решту залишаємо порожніми. До таблиці додані лише заповнені поля. Після того як заповнили всі потрібні поля, пересуваємося по сторінці трохи нижче та натискаємо на Зберегти.


Ось і все, таблиця з назвою categoriesстворено. Вона з'явиться у списку таблиць, у лівій частині екрана.

Другий спосіб:

Відразу як увійшли до БД бачимо такий блок Створити таблицю. У цьому блоці є 2 поля, де ми можемо вводити назву таблиці і кількість стовпців у таблиці. Створимо, наприклад, таблицю з реєстрованими користувачами, назвемо цю таблицю users. У цій таблиці будуть такі поля: id, login, password, e-mail, f_name, s_name, У полі кількість стовпців вводимо 6 і натискаємо бл.


З'явиться те саме вікно, як і в першому способі.


Після того як заповнювали всі поля, спускаємося трохи нижче і тиснемо на кнопку зберегти.

Усі таблиця usersстворено. Вона також додалася у лівому списку із створеними БД.

На сьогодні все. Тепер ви знаєте, як створити базу даних та таблиці 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.

Етап I. Створення сховища конфігурації

Етап ІІ. Робота з Дизайнером

  • У лівому полі зі списком баз даних виберіть новостворену
  • Переходимо в меню Щеі підміню Дизайнер

  • У панелі інструменту праворуч вибираємо Показати/Приховати список таблиць
  • Зліва відкриється панель зі списком таблиць. Приховати/показати непотрібні таблиці, які стосуються Сховище налаштувань (pma), можна зняттям/установкою відповідної галочки

Створення зв'язку

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


mob_info