(PHPMyAdmin) Как добавить столбец?
Имеется столбец с именем пользователя, паролем, датой регистрации и идентификатором. Как мне добавить ещё один столбик с записью "О себе" и с путём к аватарке? Неужели мне придётся удалить таблицу и переделать его?
Я нашёл ответ на свой вопрос. Эту проблему можно осуществить благодаря SQL запросу:
ALTER TABLE <Название таблицы> ADD <Название столбца> VARCHAR (20);
Сначала необходимо найти из списка таблиц искомую и в её строке нажать на кнопку структура
Далее необходимо задать количество добавляемых столбцов и место их расположения в списке. После нажатия кнопки вперед сделать тоже самое, что и при создании таблицы(заполнить параметры поля)
Как добавить новый столбец в таблицу между существующими столбцами?
Уже не впервые на форумах встречаю вопрос о том, как добавить новый столбец в определенное место существующей таблицы, скажем, между первым и вторым столбцом. Этот наивный с точки зрения реляционной модели вопрос, тем не менее, имеет некоторый смысл с точки зрения языка SQL.
Я говорю «наивный», поскольку по определению атрибуты отношения не упорядочены, и обращение к значениям атрибута выполняется по его имени, но не по позиции. Что же касается языка SQL, то столбцы в таблице имеют порядок, который задается в операторе CREATE TABLE. Новый же столбец, который добавляется с помощью оператора ALTER TABLE, становится последним в таблице. Т.е. стандарт языка SQL не предусматривает возможности непосредственно добавить столбец в определенную позицию в списке столбцов.
Справедливости ради следует сказать, что некоторые реализации языка SQL расширяют стандарт в этом плане. Например, в MySQL в операторе ALTER TABLE вы можете указать позицию добавляемого столбца (новый столбец может стать первым или после указанного столбца).
Другой вопрос, а зачем это нужно? Мне приходит в голову такой вариант. Скажем, в клиентском приложении для генерации отчетов используется запрос типа
Если потребовалось добавить в таблицу Employees дополнительную информацию о сотрудниках, которая логически должна находиться в определенном месте (например, отчество непосредственно между именем и фамилией), то вместо того, чтобы вносить изменения в клиентские приложения, может оказаться проще изменить структуру таблицы Employees.
Итак, имеется таблица Employees, которая создается следующим оператором:
Теперь нам требуется добавить столбец middle_name (отчество) между столбцами first_name и last_name.
В MySQL это можно сделать просто:
В SQL Server так поступить нельзя, но можно использовать следующий алгоритм:
» создание новой таблицы требуемой структуры;
» копирование данных из таблицы Employees в эту новую таблицу;
» удаление таблицы Employees;
» переименование новой таблицы в таблицу с именем Employees.
Ниже приводятся операторы T-SQL, которые реализуют этот алгоритм.
Обратите внимание, что столбец middle_name допускает NULL-значения. Мы не можем добавить столбец в существующую таблицу (или, как в нашем случае, не задавая значения для этого столбца при копировании данных из таблицы Employees в таблицу Emp_temp), если он не имеет значения по умолчанию. Здесь мы принимаем по умолчанию значение NULL.
Мы можем выполнить два первых шага за одно действие с помощью оператора SELECT INTO, который «на лету» создает новую таблицу:
Оператор CAST позволяет нам тут же задать требуемый тип добавляемого столбца. Остальные столбцы наследуют типы из таблицы-источника.
Если вы хотите проверить работу последнего скрипта, приведите таблицу в исходное состояние, удалив добавленный ранее столбец:
Заметим, что при использовании оператора SELECT INTO теряются ключи. Поэтому нам придется добавить ограничение PRIMARY KEY (первичный ключ) либо во временную таблицу, либо уже в переименованную, чтобы получить в точности требуемую структуру:
Аналогичный алгоритм можно применить и для перестановки уже существующих столбцов. Помимо указанной причины такая перестановка может повысить производительность, связанную с сокращением объема данных, записываемых в журнал транзакций в некоторых реализациях. Это связано со спецификой обработки строк фиксированной и переменной длины. Вот какие рекомендации по этому поводу дает Джо Селко * :
» помещайте первыми нечасто обновляемые столбцы постоянной длины;
» затем помещайте нечасто обновляемые столбцы переменной длины;
» последними помещайте часто обновляемые столбцы;
» ставьте рядом столбцы, которые, как правило, обновляются одновременно.
* Селко Д. Стиль программирования Джо Селко на SQL. — М.: Изд-во «Русская редакция»; СПб.: Питер, 2006
Как добавить автоинкремент в столбец в базе данных mysql с помощью phpmyadmin?
Я пытался добавить auto-increment в один из моих столбцов (в основном ID), но я не могу найти опцию auto-increment для моего столбца. Есть идеи, где это?
4 ответов
вы можете добавить его так
для использования GUI:
выберите STRUCTURE вкладка для просмотра списка существующих полей
установить поле как PRIMARY FIELD , нажмите золотой ключ — он превратится в серебро.
чтобы установить поле (обычно то же самое поле) как auto-increment:
a. Нажмите CHANGE для этого поля
b. Посмотрите в крайнем правом углу и отметьте AI box
c. Нажмите
пару очков, основываясь на недавнем опыте:
к исходному вопросу, Как выбрать автоматическое приращение с помощью phpmyadmin, это небольшой флажок AI на экране изменения для имени Поля.
когда я попробовал » ALTER TABLE tablew_name CHANGE id id BIGINT(20) NOT NULL AUTO_INCREMENT;» решение выше, phpmyadmin дал мне сообщение об ошибке, сказав, что поле должно иметь ключ. Я выбрал уникальный ключ и сообщение об ошибке пошел прочь и поле теперь автоматически увеличивается.
Это не будет работать, если есть какие-либо внешние ключи, определенные, и это очень вероятно для полей id.
Добавление столбца в импортированную электронную таблицу — PHPmyadmin
Я импортировал данные в phpmyadmin, и мне нужно добавить столбец для создания первичного ключа (называемого companyID). Как мне это сделать?
1 ответ 1
Вы можете выбрать таблицу базы данных в PHPMyAdmin.
Отсюда у вас будет опция выше «Browse» под названием «Structure».
Находясь в представлении «Структура», внизу под списком столбцов вы увидите столбцы «Добавить [1] (текстовое поле)» с тремя вариантами переключателей: «В конце таблицы», «В начале таблицы» и «После» [поле выбора имен столбцов] с «Go».
Вы захотите добавить 1 столбец и использовать «Перейти», что позволит вам настроить дополнительный столбец вручную.