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):
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() следующим образом:
SELECT last_insert_value();
Создание таблиц БД в трех различных версиях
Теперь, когда мы понимаем SQL-запрос, давайте воспользуемся PHP для его выполнения.
Ниже описано создание таблиц в трех различных версиях: с использованием синтаксиса объектно-ориентированной процедуры MySQLi, процедурный MySQLi и процедуры PDO.
<?php
/* Попытка подключения к серверу MySQL. Предполагая, что вы используете MySQL сервер с настройкой по умолчанию (пользователь root без пароля) */
$link = mysqli_connect("localhost", "root", "", "demo");
// Проверка подключения
if($link === false){
die("ERROR: Ошибка подключения. " . mysqli_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($link, $sql)){
echo "Таблица успешно создана.";
} else{
echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link);
}
// Закрыть соединение
mysqli_close($link);
?>
Примечание: В операторе SQL может быть любое количество разрывов строки при условии, что любой разрыв строки не прерывает ключевые слова, значения, выражения и т.д.
Если мы видим сообщение "Таблица успешно создана" на странице, мы можем перейти в область phpMyAdmin, чтобы увидеть, была ли создана таблица.
Чтобы получить доступ к phpMyAdmin WAMP сборки OpenServer и MySQL, перейдите по адресу http://127.0.0.1/openserver/ phpmyadmin/index.php в своем браузере.
На панели меню слева нажмите на demo, чтобы открыть базу данных. В правой части панели БД будет таблица под названием persons. Если мы щелкнем по нему, он откроется и покажет три созданных нами столбца.