Как создать таблицу в бд mysql php

Как варианты концентрации информации, жизненно важны, и без них не обходится даже незначительный проект. Насколько эффективно продумана структура, правильно сконструированы таблицы, настроены связи - от этого зависит скорость выборки/записи информации, надежность хранения данных, гарантия невозможности случайно нанести ущерб, доступность отката, завершенность каждой транзакции - и успех в целом.

База данных, прежде всего, - концептуальная идея, представление информации и логики ее использования в конкретной задаче.

Простые отношения = эффективная реализация

Реляционные идеи организации данных однозначно не самые лучшие, но они уверенно держат свои позиции много десятков лет. Как фабрики по производству продуктов и товаров первой необходимости для народного потребления, они, безусловно, необходимы.

Революционные идеи в информационном деле много раз заявляли о своем праве на жизнь, но по сей день не смогли представить значимые свидетельства существования такого права. Как всегда, простота - залог успеха. Однако тема отношений и связей между информационными объектами - точками и системами в информационном пространстве - еще полна белых пятен и интересных неожиданностей.

Применение простой конструкции приводит к формированию простых и удобных в использовании десятков таблиц, формализующих область применения задачи. Начать использовать «мускул» очень просто, но после первого десятка таблиц реляционные отношения порождают другое отношение к информации, ее представлению, хранению и использованию.

Временное, контролируемое и постоянное

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

Помимо основных таблиц конструкция create temporary table MySQL предоставляет программисту создавать временные структуры данных, существующие в течение текущего сеанса, визита конкретного пользователя, появления определенного события.

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

Предоставляя инструмент создания временных таблиц create temporary table, MySQL дает возможность разделить базу данных на статичную и динамичную составляющие. Указав таблицы, программист может автоматически управлять правильностью ее формирования. Используя конструкцию MySQL create table check, разработчик может указать условия заполнения полей. Хотя этот вариант - скорее возможность облегчить миграцию SQL конструкций с других диалектов.

Информационное пространство: точки и системы

Каждый проект, будь то сайт целиком, одна страница или один простой алгоритм, располагается в определенном месте определенного информационного пространства. «Адрес» этого места - конкретная задача, условия существования алгоритма: информационная структура на входе и выходе, формы преобразования в процессе.

Однако не обязательно следовать правилам MySQL, create table может создать вовсе не то, что предусмотрено ее синтаксисом.

В этом примере поля code_back, owner_code и session_code определяют ключи соответственно по возврату, клиенту и сессии. Не только использование нестандартного варианта MySQL create table, key здесь не лежит в ее области компетенции, а расписан по смыслу: код возврата в случае незавершения транзакции, код активного клиента и код сессии, которых может быть несколько для данного клиента, но от него зависит, куда по коду возврата перейдет управление.

Здесь также нестандартно использование полей h_code, a_contents и a_surprise. Здесь в create table MySQL пример того, как одно поле может содержать не данные, а семантику. В любой ситуации, когда нужно иметь таблицу клиентов, вполне разумно создать кэш активной части этой таблицы. При этом вовсе не обязательно делать это адекватно исходной структуре данных. Так, например, поле a_contents получит содержание: имя;пароль;e-mail, а поле a_surprise - текущее состояние пользователя.

Идея a_contents и/или a_surprise

Такой вариант не потребует доступа к основной таблице, которая может быть большой и громоздкой, а позволит ограничиться маленькой, содержащей только актуальную информацию. Здесь create table MySQL - пример того, что можно сделать вход клиента по имени и паролю, или паролю и e-mail в простом условии: (a_contents like "{$cUserName};{$cUserPass}%") or (a_contents like "%{$cUserPass};{$cUserName}").

В этом примере используется собственная функция проверки наличия таблицы: scTableExists("rm_cache") поскольку если таблицы нет, нужно будет не только ее создать, но и записать, например, несколько начальных записей с данными администраторов ресурса.

Стандартный вариант create table if not exists MySQL предлагает в ограниченном варианте проверку наличия таблицы и ее создания в случае отсутствия. Обычно этого недостаточно. Нужно не только проверить наличие таблицы, но и заполнить ее начальной информацией.

Ячейка простого типа

Специфика языков использования MySQL, в частности PHP, традиционно минимизирует объем популярных данных: прежде всего, нетипированностью своих переменных. Чаще всего используются строки, по мере необходимости - числа и даты, иногда логические данные. Более широкие возможности описания данных на MySQL create table редко содержит. Хотя последнее определяется решаемой задачей. Возможно использование всего ассортимента данных посредством create table MySQL, пример - любая современная система управления контентом сайта.

Что и как использовать - определяет разработчик. В настоящий момент времени, по данным википедии, объемные и скоростные возможности MySQL могут удовлетворить самые емкие фантазии заказчика с учетом опыта используемого разработчика. При использовании на MySQL create table default-конструкции позволяют создавать чистые (пустые таблицы) с ячейками переменной длины и формировать динамичное содержимое в процессе работы.

Сложные структуры данных

Ориентация на простые типы данных, в первую очередь строки, привела к росту интереса к конструированию сложных информационных объектов, что при работе с базой данных превращается в хранение в основном строк, чисел (индексы - чаще всего), дат и "больших данных" - картинки, звуки, другой емкий контент. Здесь диалект create table практически не ограничивает. При всей простоте и доступности «мускула» программист имеет в своем распоряжении всю мощь реального SQL языка.

Внешне простая с точки зрения базы данных ячейка типа char или varchar превращается в алгоритме при чтении в полноценный объект - сложную структуру данных (свойства и методы, синтаксис и семантика), а при записи вновь обращается в компактную форму, сущность которой определяется разработчиком.

Элементарная таблица

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

Программист, интерпретируя ячейку, может допустить в ней объект любого типа, обусловленного требованиями задачи. С точки зрения базы данных этот "любой тип" - всего-навсего строка.

Впрочем, неважно, что и как предпочитает использовать разработчик. Важно, что в настоящий момент времени (по данным википедии) объемные и скоростные параметры MySQL могут удовлетворить самые емкие фантазии заказчика с учетом опыта используемого разработчика.

«Живучими» оказываются самые простые таблицы, устроенные максимально простым способом. Если разработчик вкладывает в каждое поле надлежащий смысл, облекая его в тип char или varchar в рамках установленного MySQL create table syntax, то таблица будет работать.

Целочисленная таблица

Стоит отдельно поговорить об индексах в MySQL. Create table позволяет сразу их описать и использовать для доступа к большим объемам данных. Такой подход очень объясним, привычен и отработан до таких мелочей, что оптимизация упирается в скорость процессора, кеширование выборок, хитрые алгоритмы подсчета, часто выбираемых данных, правку php.ini, my.ini и httpd.conf.

Между тем никто не мешает разработчику создать свое собственное представление «о данных» - «ключах к данным», для простоты целочисленное - ни одной строки в таблице, только числа. Микропроект create table int MySQL обеспечит всем необходимым остальные таблицы: быстрый доступ, простые операции, полный функционал при идеальной скорости.

Целые числа, организованные как карта реальных данных, находящихся в больших и громоздких таблицах, без проблем позволят ускорить выборку и модификацию информации. Необязательно создавать такой вариант ключевого доступа на все время работы, можно использовать конструкцию create temporary table, MySQL создаст временную таблицу перед ее использованием. Или, например, для каждого пользователя - свою таблицу ключей.

В этом контексте синтаксисом не обозначенное использование create table if not exists MySQL позволяет создавать нужные таблицы даже при их непредвиденном отсутствии: например, был некорректный вход/выход или сбой компьютера, и индексирование нарушилось.

Реалии хостинга - MySQL+

Исторически база данных представляла собой осмысленное строение данных. Конструкция MySQL create table изначально придерживалась классических представлений о данных и их месте на дисковом пространстве. Интернет-программирование, и прежде всего варианты предоставления хостинга и логика популярных систем управления сайтами, сделали странное, на первый взгляд, смещение: одна база может представлять собой совокупность нескольких. Разделение идет по префиксам имен таблиц.

Некоторые поставщики хостинга наложили на имена баз данных свои требования, например, имя базы данных начинается с имени владельца хостинга.

По большому счету не важно, как назвать базу данных и как именовать ее таблицы. Однако сложившаяся ситуация стала представлять собой не просто синтаксис MySQL, а требования хостинга плюс синтаксис, то есть MySQL+.

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

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

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

Разнообразие версий Apache/MySQL/PHP

Зависимость от условий хостинга - не столько беда, сколько важное условие для современного безопасного программирования. Можно писать на PHP 7.0.13, использовать MySQL 5.7.16, но у заказчика окажется хостинг, допускающий только Perl и версию "мускула" 4.1.1 или устаревшую версию PHP.

В основном (что, впрочем, не факт) хостинги предоставляются на Linux, FreeBSD, UBUNTU и других вариациях юникосоподобных систем. Все они работают прекрасно, но у каждого из них свои особенности, свои варианты сборок AMP (Apache, MySQL, PHP). Далеко не всегда и не всякая команда сработает в очередной версии, хотя она работала в предыдущей.

Такую простую операцию как экспорт базы данных любая версия MySQL делает без проблем, как из phpMyAdmin, так и из командной строки. Обратная операция по импорту может не состояться. Чаще всего придется менять что-то в настройках PHP, сервера MySQL или Apache. Если изменения не помогают, придется искать альтернативные варианты.

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

База данных создание/проверка таблицы

Синтаксис MySQL create table редко применим в его стандартном варианте. Если его не рассматривать в контексте популярных систем управления сайтами: тут всегда будет классика жанра. В ежедневной работе проще всего его рассматривать в контексте практики: какие поля нужны в таблице, какой у них должен быть тип и размер. Остальное все равно придется дорабатывать в процессе разработки: набор символов, порядок сортировки, ключи.

Оптимальным является такой вариант алгоритма, при котором даже отсутствие базы данных не мешает сайту начать работу. Можно написать собственную функцию проверки наличия базы данных и/или таблицы, когда необходимо сформировать не только информационные структуры, но и заполнить их начальной информацией.

Часто достаточно использовать серию конструкций Create table if not exists, MySQL тогда не удивит владельца сайта или его посетителя тем, что неожиданно сообщит: базы данных нет, или структура таблиц нарушена.

В современном программировании общее правило «доверяй, но проверяй» не работает, вернее будет использовать логику «проверь и используй».

Create table: MySQL пример таблицы пользователей

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

Во многом вход/выход и регистрация определяются сферой компетенции сайта и/или используемой системой управления сайтом, но чаще - желанием разработать что-то более безопасное, защитить аккаунты пользователей, предотвратить взлом сайта.

Обычно база данных MySQL более защищена, чем сайт, но в случае сбоя не исключен вывод на экран браузера в сообщениях об ошибках конфигурационного кода сайта, содержащего имена и пароли к базе данных.

Хорошая практика - разделить данные на статичную и динамичную составляющие. На примере таблицы пользователей можно иметь объемную таблицу users и активную cache_users. Первая таблица содержит большое количество пользователей, вторая - только тех, кто работал в последние сутки (например). Всякий новый пользователь, который отсутствует во второй таблице, приходит туда после входа/регистрации и хранится некоторое время.

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

Память, информация и базы данных

В области информационных технологий как-то не сложилось представлять язык программирования с памятью. Язык - это переменные, константы и конструкции, позволяющие чем-то и как-то манипулировать. База данных - это что-то такое хранящее. Из нее всегда можно что-то выбрать в нее можно что-то записать.

Совмещается язык и база для целей работы с информацией, но логика взаимосвязей в этой триаде не столь совершенна, даже как в простой связке AMP: Apache, PHP, MySQL. Здесь все ясно: сервер, язык программирования и база данных - все, что нужно для подавляющего числа задач.

Язык SQL - тот же язык программирования, да и вообще в базе данных есть собственная логика операций, собственная концепция программирования. Здесь налицо стремление базы данных в сторону программирования. PHP - хороший инструмент, но сказать, что он адекватно стремится в сторону баз данных, пока трудно. Однако его конструкции и функции развиваются и совершенствуются.

Если же совместить PHP и MySQL в единое целое, то получится инструмент, обладающий памятью. Вариант совмещения дает идея объектно-ориентированного программирования: объект, описанный в языке, на время своей ненадобности находится в памяти (в базе данных) в компактном состоянии. Когда же в нем появляется необходимость, он восстанавливается в полноценный объект и действует в соответствии со своей компетенцией.

Откройте базу данных. Для создания таблицы вам необходимо иметь базу данных, которая будет ее содержать. Вы можете открыть базу данных, набрав USE database в командной строке MySQL.

  • Если вы не помните имя базы данных, наберите SHOW DATABASES , чтобы вывести список баз данных на сервере MySQL.
  • Если у вас пока нет базы данных, вы можете ее создать, набрав CREATE DATABASE . Имя базы данных не может содержать пробелы.

Изучите основные типы данных. Каждая запись в таблице сохраняется как определенный тип данных. Это позволяет MySQL взаимодействовать с ними различными способами. Типы данных, которые вы будете использовать, зависят от назначения вашей таблицы. Есть много типов кроме нижеперечисленных, но вы можете их использовать для создания базовой, пригодной для использования таблицы:

Создайте таблицу. Чтобы создать таблицу из командной строки, вам нужно создать все поля с помощью одной команды. Вы создаете таблицы, используя команду CREATE TABLE с последующей информацией о таблице. Чтобы создать базовую запись о сотруднике, вам нужно ввести следующую команду:

CREATE TABLE employees (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , lastname VARCHAR (20 ) , firstname VARCHAR (20 ) , phone VARCHAR (20 ) , dateofbirth DATE )

  • INT NOT NULL PRIMARY KEY AUTO_INCREMENT создает числовой идентификатор для каждого работника, который добавляется в запись. Это число каждый раз автоматически увеличивается. Это позволяет вам легко ссылаться на сотрудников с помощью других функций.
  • Хотя VARCHAR позволяет уменьшать размер в зависимости от введенных данных, вы можете установить максимум для него, чтобы пользователь не мог ввести слишком длинные строки. В приведенном выше примере имя и фамилия ограничены 20-ю символами.
  • Заметьте, что запись о телефонном номере хранится как VARCHAR, поэтому символы тоже обрабатываются корректно.
  • Проверьте, что ваша таблица была создана правильно. Как только вы создадите таблицу, вы получите сообщение, что она была успешно создана. Теперь вы можете использовать команду DESCRIBE , чтобы убедиться, что вы включили все поля, что хотели, и что у них правильные типы данных. Наберите DESCRIBE database; и посмотрите на появившийся график, чтобы проверить структуру вашей таблицы.

    Создайте таблицу с использованием PHP. Если вы используете PHP для администрирования вашей базы данных MySQL через веб-сервер, вы можете создать таблицу, используя простой PHP-файл. Предполагается, что база данных уже существует на сервере MySQL. Для создания такой же таблицы, как и в Шаге 3, введите следующий код, заменив информацию о соединении на актуальную для вас:

    "Failed to connect to MySQL: " . mysqli_connect_error () ; } $sql = "CREATE TABLE employees (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, lastname VARCHAR(20), firstname VARCHAR(20), phone VARCHAR(20), dateofbirth DATE)" ; if (mysqli_query ($connection , $sql ) ) { echo "Table employees created successfully" ; } else { echo "Error creating table: " . mysqli_error ($connection ) ; } ?>

    Вот универсальный синтаксис SQL для создания таблиц MySQL:

    CREATE TABLE table_name (column_name column_type);

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

    Tutorials_tbl(tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY (tutorial_id));

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

    • Поле атрибута не равно NULL , используется потому что мы не хотим, чтобы она была нулем. Поэтому если пользователь попытается создать запись со значением NULL, то MySQL будет вызвана ошибка.
    • Поле атрибута auto_increment в MySQL не говорит, чтобы идти вперед и добавить следующий доступный номер в поле ID.
    • Ключевое слово первичный ключ используется для определения столбца в качестве первичного ключа. Вы можете использовать несколько столбцов, разделенных запятыми, чтобы определить первичный ключ.

    Создание таблиц из командной строки:

    Это легко создать MySQL таблицу из MySQL> подсказка. Вы будете использовать команды SQL создать таблицу чтобы создать таблицу.

    Пример:

    Вот пример, который создает tutorials_tbl:

    Root@host# mysql -u root -p Enter password:******* mysql> use TUTORIALS; Database changed mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY (tutorial_id) ->); Query OK, 0 rows affected (0.16 sec) mysql>

    Создание таблиц с помощью PHP скрипта:

    Чтобы создать новую таблицу в любой существующей базы данных необходимо использовать функции PHP функции mysql_query(). Вы будете проходить свой второй аргумент при правильной команды SQL для создания таблицы.

    Пример:

    Вот пример создания таблицы с помощью PHP скрипта:

    Creating MySQL Tables "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, ". "tutorial_title VARCHAR(100) NOT NULL, ". "tutorial_author VARCHAR(40) NOT NULL, ". "submission_date DATE, ". "PRIMARY KEY (tutorial_id)); "; mysql_select_db("TUTORIALS"); $retval = mysql_query($sql, $conn); if(! $retval) { die("Could not create table: " . mysql_error()); } echo "Table created successfullyn"; mysql_close($conn); ?>

    Еще примеры:

    CREATE TABLE IF NOT EXISTS `users` (`id` int(11) NOT NULL auto_increment, `role_id` int(11) NOT NULL default "1", `username` varchar(25) collate utf8_bin NOT NULL, `password` varchar(34) collate utf8_bin NOT NULL, `email` varchar(100) collate utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL default "0", `ban_reason` varchar(255) collate utf8_bin default NULL, `newpass` varchar(34) collate utf8_bin default NULL, `newpass_key` varchar(32) collate utf8_bin default NULL, `newpass_time` datetime default NULL, `last_ip` varchar(40) collate utf8_bin NOT NULL, `last_login` datetime NOT NULL default "0000-00-00 00:00:00", `created` datetime NOT NULL default "0000-00-00 00:00:00", `modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //С двумя ключами: CREATE TABLE IF NOT EXISTS `ci_sessions` (session_id varchar(40) DEFAULT "0" NOT NULL, ip_address varchar(16) DEFAULT "0" NOT NULL, user_agent varchar(120) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id), KEY `last_activity_idx` (`last_activity`));

    Создание таблиц данных MySQL требуется следующая информация:

    • название таблицы
    • Имя поля таблицы
    • Определение каждого поля таблицы

    грамматика

    Ниже приведена таблица данных SQL, чтобы создать общий синтаксис MySQL:

    CREATE TABLE table_name (column_name column_type);

    В следующем примере мы создадим таблицу данных в базе данных w3big w3big_tbl:

    W3big_tbl(w3big_id INT NOT NULL AUTO_INCREMENT, w3big_title VARCHAR(100) NOT NULL, w3big_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY (w3big_id));

    Примеры анализа:

    • Если вы не хотите, чтобы поле NULL может установить поле атрибута NOT NULL, когда функционирование базы данных, если поле данных ввода является NULL, ошибка.
    • AUTO_INCREMENT определяется как самовозбуждение свойства, как правило, используются для первичного ключа автоматически увеличивается на единицу.
    • PRIMARY KEY ключевое слово используется для определения столбца первичного ключа. Вы можете использовать несколько столбцов, чтобы определить столбцы первичного ключа, разделенных запятой между ними.

    Создание таблицы из командной строки

    По MySQL> окно командной строки может быть очень простой, чтобы создать таблицу MySQL. Вы можете использовать SQL TABLE оператор CREATE , чтобы создать таблицу данных.

    примеров

    Root@host# mysql -u root -p Enter password:******* mysql> use w3big; Database changed mysql> CREATE TABLE w3big_tbl(-> w3big_id INT NOT NULL AUTO_INCREMENT, -> w3big_title VARCHAR(100) NOT NULL, -> w3big_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY (w3big_id) ->); Query OK, 0 rows affected (0.16 sec) mysql>

    Примечание: MySQL команда терминатора является точкой с запятой (;).

    Создание таблицы данных с помощью PHP-скрипта

    Вы можете использовать функцию в PHP mysql_query () для создания таблицы базы данных данных уже существует.

    Эта функция имеет два параметра, в реализации успешных возвращается TRUE, в противном случае возвращает FALSE.

    грамматика

    bool mysql_query(sql, connection);

    примеров

    В следующем примере используется PHP скрипт для создания таблицы данных:

    创建 MySQL 数据表 "; $sql = "CREATE TABLE w3big_tbl(". "w3big_id INT NOT NULL AUTO_INCREMENT, ". "w3big_title VARCHAR(100) NOT NULL, ". "w3big_author VARCHAR(40) NOT NULL, ". "submission_date DATE, ". "PRIMARY KEY (w3big_id)); "; mysql_select_db("w3big"); $retval = mysql_query($sql, $conn); if(! $retval) { die("数据表创建失败: " . mysql_error()); } echo "数据表创建成功\n"; mysql_close($conn); ?>

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

    Создание новой базы данных MySQL

    Новая база данных создается с помощью оператора SQL CREATE DATABASE, за которым следует имя создаваемой базы данных. Для этой цели также используется оператор CREATE SCHEMA. Например, для создания новой базы данных под названием MySampleDB в командной строке mysql нужно ввести следующий запрос:

    CREATE DATABASE MySampleDB;

    Если все прошло нормально, команда сгенерирует следующий вывод:

    Query OK, 1 row affected (0.00 sec)

    Если указанное имя базы данных конфликтует с существующей базой данных MySQL, будет выведено сообщение об ошибке:

    ERROR 1007 (HY000): Can"t create database "MySampleDB"; database exists

    В этой ситуации следует выбрать другое имя базы данных или использовать опцию IF NOT EXISTS. Она создает базу данных только в том случае, если она еще не существует:

    CREATE DATABASE IF NOT EXISTS MySampleDB;

    Создание таблиц с помощью SQL

    Новые таблицы добавляются в существующую базу данных с помощью оператора SQL CREATE TABLE. За оператором CREATE TABLE следует имя создаваемой таблицы, а далее через запятые список имен и определений каждого столбца таблицы:

    CREATE TABLE имя_таблицы (определение имени_столбца, определение имени_таблицы …, PRIMARY KEY = (имя_столбца)) ENGINE = тип_движка;

    В определении столбца ​​задается тип данных, может ли столбец быть NULL, AUTO_INCREMENT. Оператор CREATE TABLE также позволяет указать столбец (или группу столбцов) в качестве первичного ключа.
    Прежде чем будет создавать таблицу, нужно выбрать базу данных. Это делается с помощью оператора SQL USE:

    Создадим таблицу, состоящую из трех столбцов: customer_id , customer_name и customer_address . Столбцы customer_id и customer_name не должны быть пустыми (то есть NOT NULL). customer_id содержит целочисленное значение, которое будет автоматически увеличиваться при добавлении новых строк. Остальные столбцы будут содержать строки длиной до 20 символов. Первичный ключ определяется как customer_id.

    CREATE TABLE customer (customer_id int NOT NULL AUTO_INCREMENT, customer_name char(20) NOT NULL, customer_address char(20) NULL, PRIMARY KEY (customer_id)) ENGINE=InnoDB;

    Значения NULL и NOT NULL

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

    Первичные ключи

    Первичный ключ — это столбец, используемый для идентификации записей в таблице. Значение столбца первичного ключа должно быть уникальным. Если несколько столбцов объединены в первичный ключ, то комбинация значений ключей должна быть уникальной для каждой строки.

    Первичный ключ определяется с помощью оператора PRIMARY KEY во время создания таблицы. Если используется несколько столбцов, они разделяются запятой:

    PRIMARY KEY (имя_столбца, имя_столбца...)

    В следующем примере создается таблица с использованием двух столбцов в качестве первичного ключа:

    CREATE TABLE product (prod_code INT NOT NULL AUTO_INCREMENT, prod_name char(30) NOT NULL, prod_desc char(60) NULL, PRIMARY KEY (prod_code, prod_name)) ENGINE=InnoDB;

    AUTO_INCREMENT

    Когда столбец определяется с помощью AUTO_INCREMENT, его значение автоматически увеличивается каждый раз, когда в таблицу добавляется новая запись. Это удобно при использовании столбца в качестве первичного ключа. Благодаря AUTO_INCREMENTне нужно писать инструкции SQL для вычисления уникального идентификатора для каждой строки.

    AUTO_INCREMENT может быть присвоен только одному столбцу в таблице. И он должен быть проиндексирован (например, объявлен в качестве первичного ключа).

    Значение AUTO_INCREMENT для столбца можно переопределить, указав новое при выполнении инструкции INSERT.

    Можно запросить у MySQL самое последнее значение AUTO_INCREMENT, используя функцию last_insert_id() следующим образом:

    SELECT last_insert_value();

    Определение значений по умолчанию при создании таблицы

    Значения по умолчанию используются, когда значение не определено при вставке в базу данных.
    Значения по умолчанию задаются с помощью ключевого слова DEFAULT в операторе CREATE TABLE. Например, приведенный ниже запрос SQL задает значение по умолчанию для столбца sales_quantity:

    CREATE TABLE sales { sales_number int NOT_NULL, sales_quantity int NOT_NULL DEFAULT 1, sales_desc char(20) NOT_NULL, PRIMARY KEY (sales_number)) ENGINE=MyISAM;

    Типы движков баз данных MySQL

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

    • InnoDB — был представлен вMySQL версии 4.0 и классифицирован как безопасная среда для транзакций.Ее механизм гарантирует, что все транзакции будут завершены на 100%. При этом частично завершенные транзакции (например, в результате отказа сервера или сбоя питания) не будут записаны. Недостатком InnoDB является отсутствие поддержки полнотекстового поиска.
    • MyISAM — высокопроизводительный движок с поддержкой полнотекстового поиска. Эта производительность и функциональность обеспечивается за счет отсутствия безопасности транзакций.
    • MEMORY — с точки зрения функционала эквивалентен MyISAM, за исключением того, что все данные хранятся в оперативной памяти, а не на жестком диске. Это обеспечивает высокую скорость обработки. Временный характер данных, сохраняемых в оперативной памяти, делает движок MEMORY более подходящим для временного хранения таблиц.

    Движки различных типов могут сочетаться в одной базе данных. Например, некоторые таблицы могут использовать движок InnoDB, а другие — MyISAM. Если во время создания таблицы движок не указывается, то по умолчанию MySQL будет использовать MyISAM.

    Чтобы указать тип движка, который будет использоваться для таблицы, о поместите соответствующее определение ENGINE= после определения столбцов таблицы:

    CREATE TABLE tmp_orders { tmp_number int NOT_NULL, tmp_quantity int NOT_NULL, tmp_desc char(20) NOT_NULL, PRIMARY KEY (tmp_number)) ENGINE=MEMORY;

    Перевод статьи «Creating Databases and Tables Using SQL Commands» был подготовлен дружной командой проекта