Как изменить сравнение таблицы в phpmyadmin
Перейти к содержимому

Как изменить сравнение таблицы в phpmyadmin

  • автор:

Управление таблицами в PHPMyAdmin

Управление таблицами в PHPMyAdmin

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

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

  1. Зайти на главную страницу PHPMyAdmin.
  2. Выбрать из выпадающего списка имя базы данных, в которую Вы хотите добавить таблицу.

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

  • Имя, думаю, задать сможете. Единственное, не нарвитесь на зарезервинованное слово. То есть нельзя давать полю, например, такое имя «index«.
  • Тип. О типах полей подробно говорилось в этой статье: типы полей в MySQL, поэтому ничего добавлять не буду.
  • Длины/значения. Здесь можно указать предельные значения(длины) переменных. Я, например, часто использую данную возможность для экономии ресурсов. Например, для пароля я ставлю тип 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. Означает этот ключ, что значение поля уникально для всей таблицы, более того, по этому полю создаётся индекс. О том, что такое индекс и для чего он нужен, мы поговорим в одной из следующих статей.
    • Индекс. Собственно, создавать или нет для этого поля индекс.
    • Уникальное. Если поставить эту опцию, то значение данного поля должно быть уникальным.
    • И флажок «ПолнТекст» означает, создавать полнотекстовый индекс или нет.

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

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

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

      1. Зайти на главную страницу PHPMyAdmin.
      2. Выбрать из выпадающего списка имя базы данных, где находится требуемая таблица.

      Теперь о том, как отредактировать поле в таблице:

      1. Зайти на главную страницу PHPMyAdmin.
      2. Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.

      Чтобы удалить таблицу в PHPMyAdmin надо сделать следующее:

      1. Зайти на главную страницу PHPMyAdmin.
      2. Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.

      И последнее — это удаление полей из таблиц в PHPMyAdmin:

      1. Зайти на главную страницу PHPMyAdmin.
      2. Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.

      Всё. Надеюсь, Вам стало понятно, как управлять таблицами в PHPMyAdmin, ведь это нужно уметь обязательно.

      Подробная работа с phpMyAdmin в новой версии разобрана в курсе «PHP и MySQL с Нуля до Гуру«: http://srs.myrusakov.ru/php

      P.S. Всех Вас с Рождеством!

      Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

      Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
      Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

      Если Вы не хотите пропустить новые материалы на сайте,
      то Вы можете подписаться на обновления: Подписаться на обновления

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

      Порекомендуйте эту статью друзьям:

      Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

      Она выглядит вот так:

      Комментарии ( 25 ):

      Михаил! В чём может быть причина? Создал на хостинге БД и таблицу для гостевой книги (идентично как у меня в Денвере). В Денвере всё работает, а на хостинге в таблицу из формы вместо русского текста попадает вот это: . и выводится то же самое. Числа и англисский текст записываются и выводятся правильно. Если текст (русский) вставляю в таблицу вручную, то он записывается правильно, но с таблицы выводится вот это: .

      Служба поддержки хостинга пишет: "Подключите mysql_query("SET NAMES cp1251"); после mysql_connect". Что-то я их не понял! Что это значит? Где его нужно подключать.

      Это значит что нужно добавить sql запрос с изменением кодировки сразу после подключения к базе, в Вашем коде.

      Михаил, подскажите пожалуйста удалил строки из таблици через php MyAdmin подскажите их как нибудь можно восстановить?

      Переустановить phpMyAdmin, либо денвер.

      а если это уже давно работающий сайт и я удалил кучу контента?

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

      Спасибо Вам, Михаил, за наше просвещение. И просьба к Вам. Расскажите, пожалуйста, как в PHPMyAdmin создавать запрос к БД.

      Михаил! У меня получается только создать новую базу данных и новую таблицу. При попытке редактировать или изменить чистый экран справа. Могу пользоваться только "Вставить." Внизу не которые строчки с копировал с экрана. ——————————— http://localhost/tools/phpMyAdmin/index.php?db=mysite_local&token=cc444300c25ab5054eb4962ed86d9f76#PMAURL:db=mysite_local&server=1&target=db_structure.php&token=cc444300c25ab5054eb4962ed86d9f76 phpMyAdmin К началу Окно запроса Документация phpMyAdminДокументация Обновить фрейм навигации (Недавние таблицы) . `mysite_local`.`articles«mysite-local`.`tablica«mysite-local`.`articles` (Базы данных) . information_schema mysite-local mysite_local mysql performance_schema phpmyadmin Структураarticles Создать таблицуСоздать таблицу ————————————-Очень буду благодарен.

      Попробуйте для начала через другой браузер.

      Михаил! Я перешел на браузет Firefox и редактировать базу данных у меня получается.Локальный сервер Denver создает у меня на компьютере логический диск "Z". В Вашем видеоуроке я вижу такую строчку: C:\MyServer\home\myside.local\www\lib\functions.php Большая просьба помочь мне начать создавать папки — где их создавать и где должны находиться основные файлы сайта. Буду очень благодарен за ответ.

      В видеоуроке показано, где нужно создавать. Z или C:\MyServer — неважно, это синонимы, о чём в курсе говорилось.

      Внимательно еще раз посмотрел видеоурок и понял. Спасибо. Я создал упрощенную первую страницу, когда я перехожу по ссылке "Читать дальше" у меня пояляется такая строчка http://mysite.local/article.php?id=1 Далее на экране такое сообщение: "Fatal error: Call to a member function fetch_assoc() on a non-object in Z:\home\mysite.local\www\lib\functions.php on line 22". Все переключают правильно и записи на своем месте и везде одинаковый ответ -Z:\home\mysite.local\www\lib\functions.php on line 22". Мой файл functions.php <?php $mysqli = false; function connectDB() < global $mysqli; $mysqli = new mysqli("localhost", "root", "", "mysite-local"); $mysqli->query("SET NAMES 'utf8'"); >function getAllArticles() < global $mysqli; connectDB(); $result_set = $mysqli->query("SELECT * FROM `table`"); closeDB(); return resultSetToArray($result_set); >function getArticle($id) < global $mysqli; connectDB(); $result_set = $mysqli->query("SELECT * FROM `table` WHERE `id`=`$id`"); closeDB(); return $result_set->fetch_assoc(); >function resultSetToArray($result_set) < $array = array(); while (($row = $result_set->fetch_assoc()) !=false) $array[] = $row; return $array; >function closeDB() < global $mysqli; $mysqli->close(); >?> Буду очень благодарен за помощь.

      Здравствуйте, Михаил. Меня интересует вопрос с языком на страницах phpMyAdmin. В данном уроке видно, что вы используете русифицированную версию phpMyAdmin. Подскажите как поставить именно её, может быть это другая версия дэнвера? Я поставил дэнвер и в нём phpMyAdmin на английском. За ранее спасибо.

      Как перейти с utf8 на utf8mb4 в MySQL

      Если ваша версия СУБД MySQL 5.5.3 и выше, то вам необходимо использовать кодировку utf8mb4, вместо utf8. Об этом упоминается здесь и здесь.

      Следовательно, больше нет необходимости использовать ни utf8_general_ci, ни utf8_unicode_ci.

      utf8mb4_general_ci или utf8mb4_unicode_ci

      В настоящее время для баз данных и таблиц MySQL рекомендуется использовать кодировку utf8mb4_unicode_ci.

      Настройка кодировки utf8mb4 для СУБД MySQL

      Исходя из вышеизложенного нам необходимо произвести настройку основных параметров кодировки СУБД MySQL.

      В конфигурационном файле MySQL ( my.ini (windows)/ my.cnf (Linux)) необходимо изменить кодировку на utf8mb4:

      Проверяем корректность работы применимых настроек:

      Кодировка и сравнение для базы данных, таблиц и столбцов в MySQL

      Запросы для измениния кодировки и сравнения для базы данных, таблиц и столбцов на utf8mb4 .

      Для базы данных:

      Для таблицы:

      Для столбцов:

      Восстановление и оптимизация всех таблиц

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

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

      База данных теперь latin1_general_ci , и я хочу изменить параметры сортировки на utf8mb4_general_ci .

      Есть ли в PhpMyAdmin какой-либо параметр для изменения сопоставления базы данных, таблицы, столбца? Вместо того, чтобы менять по одному?

      21 ответ

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

      (это также преобразует столбцы) или экспортирует базу данных с помощью latin1 и импортирует ее обратно с помощью utf8mb4 .

      Я делаю здесь свой вклад, как спросил ОП:

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

      Выбранный ответ просто указывает его на уровне таблицы.

      Изменение всего базы данных:

      Изменяя его в таблице:

      Хорошая практика — изменить его на уровне таблицы, так как это также изменит его для столбцов. Изменение для конкретного столбца происходит в каждом конкретном случае.

      Изменение параметров сортировки для определенного столбца:

      Вы можете запустить php-скрипт.

      Чтобы изменить сопоставление для таблиц по отдельности, вы можете использовать,

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

      Перейдите к PhpMyAdmin-> Операции-> Сортировка .

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

      Следующий запрос будет генерировать запросы ALTER, которые изменяют параметры сортировки для всех соответствующих столбцов во всех таблицах на определенный тип (utf8_general_ci в моем примере ниже).

      Если вы запустите phpMyAdmin >> выберите базу данных >> выберите таблицу >> перейдите на вкладку «Операции» >> в разделе «Параметры таблицы» >> вы можете выбрать «Сортировка» из раскрывающегося списка >> и после того, как вы нажмете <Перейти>в вверху экрана вы увидите сообщение:

      Ваш SQL-запрос был успешно выполнен

      Но это НЕ изменит сопоставления существующих столбцов. Для этого вы можете использовать этот скрипт (он также был получен от phpMyAdmin)

      Вы можете установить параметры сортировки по умолчанию на нескольких уровнях:

      1) клиент 2) сервер по умолчанию 3) база данных по умолчанию 4) таблица по умолчанию 5) столбец

      Просто запустите этот SQL, чтобы преобразовать сразу все таблицы базы данных. Измените COLLATION и databaseName на то, что вам нужно.

      Вы можете изменить CHARSET и COLLATION всех ваших таблиц с помощью скрипта PHP следующим образом. Мне нравится ответ hkasera, но проблема в том, что запрос выполняется дважды для каждой таблицы. Этот код почти такой же, за исключением использования MySqli вместо mysql и предотвращения двойных запросов. Если бы я мог проголосовать, я бы проголосовал за ответ hkasera.

      Вы можете просто добавить этот код в файл сценария

      Я был удивлен, узнав, и поэтому мне пришлось вернуться сюда и сообщить, что отличный и хорошо поддерживаемый скрипт Interconnect / it SAFE SEARCH AND REPLACE ON DATABASE имеет некоторые параметры для преобразования таблиц в utf8 / unicode и даже для преобразования в innodb. . Это сценарий, обычно используемый для переноса веб-сайта, управляемого базой данных (WordPress, Drupal, Joomla и т. Д.), Из одного домена в другой.

      interconnect script buttons

      Лучший вариант — сгенерировать SQL-скрипт по SQL-запросу. Это не испортит значения по умолчанию / нули.

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

      После создания процедуры вызовите ее просто:

      Подробнее читайте в блог.

      Мое решение — это комбинация @Dzintars и @Quassnoi Answer.

      Используя CONVERT TO , генерируется скрипт, который преобразует все таблицы <your-database> в запрошенную вами кодировку. Это также изменяет кодировку каждого столбца !

      Создает запрос для обновления каждой таблицы и столбца каждой таблицы. Я использовал это в некоторых своих проектах раньше и смог решить большинство моих проблем COLLATION. (особенно на JOINS)

      Чтобы использовать, просто экспортируйте результаты в текст с разделителями (возможно, новая строка ‘\ n’)

      КАЖДЫЙ СТОЛ

      КАЖДУЮ КОЛОНКУ

      Если вы хотите обновить кодировку по умолчанию в схеме:

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

      Быстрый способ — экспортируйте в файл SQL, используйте поиск и замену, чтобы изменить текст, который вам нужно изменить. Создайте новую базу данных, импортируйте данные, а затем переименуйте старую базу данных и новую в старое имя.

      Чтобы изменить параметры сортировки всех полей во всех таблицах базы данных сразу:

      Я просто добавлял еще один цикл для полей в таблицах в решение через Php, о котором упоминалось ранее. Это помогло, все поля в таблицах также конвертируются.

      Обратите внимание: после изменения кодировки для базы данных / таблицы / столбца вам может потребоваться преобразовать существующие данные (если вы видите, например, что-то вроде «Ù… Ø · Ù„ ˆØ¨ ØªÙˆØ ± يد ج٠») примерно так:

      Что касается преобразования базы данных, таблиц и полей, я бы предложил этот ответ из этого потока, который генерирует большой набор запросов, которые вы просто скопируете при вставке, здесь я пока не нашел автоматического решения. Также имейте в виду, что если вы дважды конвертируете одно и то же поле, вы получите неустранимые вопросительные знаки: «. ». Вы также получите этот вопросительный знак, если будете преобразовывать данные перед преобразованием полей / таблиц.

      Я только что написал сценарий bash, чтобы найти все таблицы в данной базе данных и скрыть их (и ее столбцы).

      Как поменять кодировку таблицы в phpMyAdmin?

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

      Полез в phpMyAdmin а там:

      9b5fae5c3fc3054a5d0d620c38b9e87b.png?136

      Может ли это быть корнем проблемы и если да, то как можно изменить latin_swedish на utf?

      • Вопрос задан более трёх лет назад
      • 27026 просмотров
      • Facebook
      • Вконтакте
      • Twitter

      L3n1n

      В редактировании поля:

      + в настройках самой таблицы:

      • Facebook
      • Вконтакте
      • Twitter

      У базы поменял вручную кодировку, а как у всех таблиц этой базы поменять кодировку, не залезая в каждую таблицу? Пробовал использовать вот этот запрос, но не получилось:

      SELECT CONCAT(‘ALTER TABLE `’, t.`TABLE_SCHEMA`, ‘`.`’, t.`TABLE_NAME`, ‘` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;’) as sqlcode
      FROM `information_schema`.`TABLES` t
      WHERE 1
      AND t.`TABLE_SCHEMA` = ‘db_name’
      ORDER BY 1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *