Создания mysql таблиц php

Создание и удаление таблиц

CREATE TABLE name_table(
id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL ,
title VARCHAR(255) ,
message TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
age INT(11) DEFAULT 0 ,
price DOUBLE
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать каждую запись в таблице SQL.

Первичные ключи должны содержать уникальные значения.

Первичный ключ не может иметь значения NULL.

NOT NULL — означает, что каждая строка должна содержать значение для этого столбца, нулевые значения допускаться не будут.

AUTO_INCREMENT — автоматический инкремент.

CHARACTER SET utf8 COLLATE utf8_general_ci — кодировка для конкретного поля, ставится сразу после типа.

). — здесь кодировка задана для всех полей

DEFAULT — значение по умолчанию.

ENGINE=InnoDB — тип таблицы(используемый движок) — InnoDB

Пример запроса на удаление таблицы name_table :

$sql = «DROP TABLE name_table» ;

Удалить все данные из таблицы

— данная команда очистит полностью таблицу и приведет ее к первоначальному состоянию,

когда она только создалась ( CREATE TABLE ) и в ней не было никаких записей.

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

TRUNCATE TABLE name_table RESTART IDENTITY ;

— данный вариант вызова команды TRUNCATE позволит сбросить значение счётчика полей с AUTO_INCREMENT .

Поэтому значение поля первой добавленной записи после данного удаления будет 1 .

ПРИМЕРЫ создания таблиц

1 mysqli — объектно-ориентированный подход

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Устанавливаем соединение с сервером MySQL:
// создаем экземпляр класса new mysqli() и записываем, в качестве аргументов, наши переменные

$conn = new mysqli ( $servername , $username , $password , $dbname );

// Проверка соединения:
// если выполняется выражение $conn->connect_error , то останавливаем выполнение die
// и выводим «Не удалось подключиться»
// С помощью выражения $conn -> connect_error выведем информацию об ошибке .
// Иначе выведем: «Соединение успешно установлено»

if ( $conn -> connect_error ) die ( «Не удалось подключиться: » . $conn -> connect_error );
>
echo «Соединение успешно установлено» ;

// Запрос для создания таблицы users1

$sql = «CREATE TABLE users(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY,
password VARCHAR(30) NOT NULL )» ;

// Проверка выполнения создания таблицы:
// Если значение $conn -> query($sql) будет — TRUE,
// тогда выведем сообщение «Таблица users создана успешно».
// В противном случае выведем сообщение «Ошибка при создании таблицы»
// и выведем информацию об ошибке: $conn->error.

if ( $conn -> query ( $sql ) === TRUE ) echo «Таблица users создана успешно

» ;
> else <
echo «Ошибка при создании таблицы: » . $conn -> error ;
>

// закрываем соединение
$conn -> close ();
?>

— После перезагрузки страницы выведет в браузере:

Таблица users создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users «

bd-5-1

2 mysqli — процедурный подход

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Устанавливает соединение с сервером MySQL с помощью функции mysqli_connect()

$conn = mysqli_connect ( $servername , $username , $password , $dbname );

if (! $conn ) die ( «Не удалось подключиться: » . mysqli_connect_error ());
>
echo «Соединение успешно установлено» ;

// Запрос для создания таблицы:
// NOT NULL — означает, что каждая строка должна содержать значение для этого столбца,
// нулевые значения допускаться не будут.
// PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать
// каждую запись в таблице SQL.

$sql = «CREATE TABLE users2(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY, password VARCHAR(30) NOT NULL )» ;

// Проверка выполнения создания таблицы:
// Если запрос к базе данных — выполнен,
// тогда выведем сообщение «Таблица users2 создана успешно».
// В противном случае выведем сообщение «Ошибка при создании таблицы»
// и выведем информацию об ошибке mysqli_error($conn) ;

if ( mysqli_query ( $conn , $sql )) echo «Таблица users2 создана успешно

» ;
> else <
echo «Ошибка при создании таблицы: » . mysqli_error ( $conn ); >

// закрываем соединение
mysqli_close ( $conn );
?>

— После перезагрузки страницы выведет в браузере:

Таблица users2 создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users2 «

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Подключение к серверу MySQL
// Обработка ошибок подключения: используем блок try-catch :

try // Подключение к серверу MySQL
$conn = new PDO ( «mysql:host= $servername ; dbname= $dbname » , $username , $password );

echo «Соединение успешно установлено

» ;

// Устанавливаем режим ошибки PDO в исключение

$conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );

> catch ( PDOException $e ) <
echo «Ошибка при создании таблицы:
» . $e -> getMessage ();
>

// Созданние таблицы
try // Созданние SQL-запроса

$sql = «CREATE TABLE users3(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY,
password VARCHAR(30) NOT NULL )» ;

// Устанавливаем режим ошибки PDO в исключение

$conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );

$conn -> exec ( $sql );
echo «Таблица users3 создана успешно
» ;

> catch ( PDOException $e ) <
echo «Ошибка при создании таблицы:
» . $sql . $e -> getMessage ();
>

// Закрыть подключение
$conn = null ;
?>

— После перезагрузки страницы выведет в браузере:

Таблица users3 создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users3 «

Источник

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
)

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

В таблице выше используются следующие типы данных:

  1. VARCHAR: содержит строку переменной длины, которая может содержать буквы, числа и специальные символы. Максимальный размер указан в скобках.
  2. 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. Если мы щелкнем по нему, он откроется и покажет три созданных нами столбца.

Источник

Читайте также:  Цель javascript событие проверить
Оцените статью