PHP Создание таблиц MySQL
В этом уроке вы узнаете, как создавать таблицы в базе данных MySQL с помощью PHP.
Создание таблиц с помощью SQL
В предыдущем уроке мы узнали, как создать базу данных на сервере MySQL. Шаги по созданию таблицы аналогичны созданию баз данных. Разница в том, что вместо создания новой базы данных мы подключимся к существующей базе данных и создадим таблицу в этой базе данных. Для подключения к существующей базе данных мы можем передать дополнительную переменную «имя базы данных» при подключении к MySQL.
Теперь пришло время создать таблицу внутри базы данных, которые фактически будут хранить данные. Информация в таблице организована в строки и столбцы.
Новые таблицы добавляются в существующую базу данных с помощью оператора SQL CREATE TABLE .
За оператором CREATE TABLE следует имя создаваемой таблицы, за которым следует список имен и определений каждого столбца таблицы, разделенный запятыми.
Мы создадим таблицу с именем «persons» и столбцами: «id», «first_name», «last_name» и «email»:
После выбора базы данных в следующем примере создается таблица с именем «persons» и столбцами: «id», «first_name», «last_name» и «email». В first_name, last_name и email столбцы должны содержать значение (т.е. NOT NULL). Столбец id имеет целочисленное значение, которое имеет автоматическое приращение (AUTO_INCREMENT):
CREATE TABLE persons (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(30) NOT NULL,
last_name VARCHAR(30) NOT NULL,
email VARCHAR(70) NOT NULL UNIQUE
)
Обратите внимание, что за каждым именем поля следует объявление типа данных — это объявление указывает, какой тип данных может содержать столбец, будь то целое число, строка, дата и т.д.
В таблице выше используются следующие типы данных:
- VARCHAR: содержит строку переменной длины, которая может содержать буквы, числа и специальные символы. Максимальный размер указан в скобках.
- INT: тип данных INTEGER принимает числовые значения с подразумеваемой шкалой нуля. Он хранит любое целое число от -2147483648 до 2147483647.
После типа данных вы можете указать другие необязательные атрибуты для каждого столбца:
- NOT NULL — каждая строка должна содержать значение для этого столбца, нулевые значения не допускаются.
- DEFAULT — установите значение по умолчанию, которое добавляется, когда не передается никакое другое значение.
- UNSIGNED — используется для числовых типов, ограничивает хранимые данные положительными числами и нулем.
- AUTO INCREMENT — MySQL автоматически увеличивает значение поля на 1 каждый раз, когда добавляется новая запись.
- PRIMARY KEY — используется для однозначной идентификации строк в таблице. Столбец с настройкой PRIMARY KEY часто является идентификационным номером и часто используется с AUTO_INCREMENT.
Каждая таблица должна иметь столбец первичного ключа (в данном случае столбец «id»). Его значение должно быть уникальным для каждой записи в таблице.
Понимание значений NULL и NOT NULL
Если для столбца указано значение NULL, то в базу данных можно добавить строку, если этому столбцу не присвоено значение. И наоборот, если столбец определен как NOT NULL, то перед добавлением строки в таблицу ему должно быть присвоено значение.
Первичный ключ PRIMARY KEY
Первичный ключ — это столбец, используемый для идентификации отдельных записей в таблице. Значение столбца первичного ключа должно быть уникальным в контексте таблицы, в которой он существует, или, если несколько столбцов объединены, чтобы составить первичный ключ, комбинация значений ключа должна быть уникальной для каждой строки.
Первичный ключ определяется с помощью оператора PRIMARY KEY во время создания таблицы. Если используется несколько столбцов, они разделяются запятыми:
Автоматическое приращение AUTO_INCREMENT
AUTO_INCREMENT — одно из самых простых, но наиболее полезных определений столбцов в языке SQL. По сути, когда столбец определяется с помощью AUTO_INCREMENT, значение столбца автоматически увеличивается каждый раз, когда в таблицу добавляется новая строка. Это особенно полезно при использовании столбца в качестве первичного ключа. Используя AUTO_INCREMENT, нет необходимости писать операторы SQL для вычисления нового уникального идентификатора для каждой строки. Все это обрабатывается сервером MySQL при добавлении строки.
При использовании AUTO_INCREMENT необходимо соблюдать два правила. Во-первых, статус AUTO_INCREMENT может быть присвоен только одному столбцу в таблице. Во-вторых, столбец AUTO_INCREMENT должен быть проиндексирован (например, объявлен как первичный ключ).
Можно переопределить значение AUTO_INCREMENT столбца, просто указав значение при выполнении оператора INSERT. Пока указанное значение является уникальным, предоставленное значение будет использоваться в новой строке, а последующие приращения начнутся с вновь вставленного значения.
MySQL может быть запрошен для получения самого последнего значения приращения, используя функцию last_insert_id() следующим образом:
Создание таблиц БД в трех различных версиях
Теперь, когда мы понимаем SQL-запрос, давайте воспользуемся PHP для его выполнения.
Ниже описано создание таблиц в трех различных версиях: с использованием синтаксиса объектно-ориентированной процедуры MySQLi, процедурный MySQLi и процедуры PDO.
Пример
// Попытка выполнить запрос на создание таблицы $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; if(mysqli_query($link, $sql)) < echo "Таблица успешно создана."; >else < echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link); >// Закрыть соединение mysqli_close($link); ?>
connect_error); > // Попытка выполнить запрос на создание таблицы $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; if($mysqli->query($sql) === true) < echo "Таблица успешно создана."; >else< echo "ERROR: Не удалось выполнить $sql. " . $mysqli->error; > // Закрыть соединение $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); > catch(PDOException $e)< die("ERROR: Нет подключения. " . $e->getMessage()); > // Попытка выполнить запрос на создание таблицы try< $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; $pdo->exec($sql); echo "Таблица успешно создана."; > catch(PDOException $e)< die("ERROR: Не удалось выполнить $sql. " . $e->getMessage()); > // Закрыть соединение unset($pdo); ?>
Примечание: В операторе SQL может быть любое количество разрывов строки при условии, что любой разрыв строки не прерывает ключевые слова, значения, выражения и т.д.
Если мы видим сообщение «Таблица успешно создана» на странице, мы можем перейти в область phpMyAdmin, чтобы увидеть, была ли создана таблица.
Чтобы получить доступ к phpMyAdmin WAMP сборки OpenServer и MySQL, перейдите по адресу http://127.0.0.1/openserver/ phpmyadmin/index.php в своем браузере.
На панели меню слева нажмите на demo, чтобы открыть базу данных. В правой части панели БД будет таблица под названием persons. Если мы щелкнем по нему, он откроется и покажет три созданных нами столбца.
Управление таблицами в PHPMyAdmin
В этой статье я научу Вас управлять таблицами в PHPMyAdmin, то есть создавать, редактировать и удалять таблицы в базе данных. Эта статья очень важная, и Вам надо обязательно её изучить.
Начнём с создания таблицы в PHPMyAdmin:
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, в которую Вы хотите добавить таблицу.
- Ввести имя новой таблицы, указать количество полей (столбцов) и нажать на кнопку «Пошёл«.
- Укажите соответствующие настройки для каждого поля, потом для таблицы, а затем нажмите на кнопку «Пошёл«.
Тут есть о чём поговорить. Начнём с настроек для полей таблицы:
- Имя, думаю, задать сможете. Единственное, не нарвитесь на зарезервинованное слово. То есть нельзя давать полю, например, такое имя «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:
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, где находится требуемая таблица.
- Кликнуть по имени таблицы, которую Вы хотите отредактировать.
- Перейти в пункт «Операции«.
- Задать необходимые настройки и нажать на соответствующую настройке кнопку «Пошёл«.
Теперь о том, как отредактировать поле в таблице:
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.
- Кликнуть по имени таблицы, поле в которой Вы хотите отредактировать.
- Щёлкнуть на значок «Карандаша» напротив поля, которое Вы хотите отредактировать.
- Изменить необходимые настройки и нажать на кнопку «Сохранить«.
Чтобы удалить таблицу в PHPMyAdmin надо сделать следующее:
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.
- Кликнуть по имени таблицы, поле в которой Вы хотите отредактировать.
- Перейти по ссылке «Уничтожить«.
- Подтвердить удаление.
И последнее — это удаление полей из таблиц в PHPMyAdmin:
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, в которой находится искомая таблица.
- Кликнуть по имени таблицы, в которой Вы хотите удалить поле.
- Щёлкнуть на значок «Крестик» напротив того поля, которое Вы хотите удалить.
- Подтвердить удаление.
Всё. Надеюсь, Вам стало понятно, как управлять таблицами в PHPMyAdmin, ведь это нужно уметь обязательно.
Подробная работа с phpMyAdmin в новой версии разобрана в курсе «PHP и MySQL с Нуля до Гуру«: http://srs.myrusakov.ru/php
P.S. Всех Вас с Рождеством!
Создано 07.01.2011 11:50:14
- Михаил Русаков