Создание таблицы в mysql на php.

В этой статье мы расскажем, как создавать новые базы данных и таблицы, используя команды 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» был подготовлен дружной командой проекта

Создание таблиц данных 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 数据表

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

Рассмотрим два способа создания БД и таблиц. Первый, как это делается в PHP, второй - с помощью более дружественной утилиты PhpMyAdmin, которая является стандартной на большинстве вэб-хостов и в XAMPP.

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

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

Функция mysql_query используется для отправки запроса БД MySQL. Запросы записываются на языке S tructured Q uery L anguage (SQL). SQL - наиболее широко распространённый язык запросов БД - не только для БД MySQL - он очень логичен и прост для изучения. В этом и следующем уроках вы узнаете всё самое важное о SQL-запросах.

При создании БД используется SQL-запрос CREATE DATABASE с таким синтаксисом:

CREATE DATABASE имя БД

Легко и просто, не так ли!? Попробуем вставить это в PHP-скрипт:

Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_query("CREATE DATABASE mydatabase") or die(mysql_error()); mysql_close();

Сначала соединяемся с MySQL-сервером. Затем создаём БД "mydatabase". И наконец - закрываем соединение с MySQL-сервером.

Пока неплохо... но всё несколько усложняется, когда мы хотим создать таблицы в PHP. При создании таблиц мы используем SQL-запрос CREATE TABLE с таким синтаксисом:

CREATE TABLE имя таблицы (имя_столбца1 ТИП_ДАННЫХ, имя_столбца2 ТИП_ДАННЫХ, имя_столбца3 ТИП_ДАННЫХ, ...)

имя_таблицы и имя_столбца это, понятное дело, соответствующие имена. ТИП_ДАННЫХ используется для специфицирования типа данных, вставляемых в столбец. Вот наиболее распространённые типы:

Целые числа Десятичные числа Краткий текст до 255 символов длиной Обычный текст до 65,535 символов Длинные куски текста до 4,294,967,295 символов Даты в формате ГГГГ-MM-ДД Время в формате ЧЧ:MM:СС Время и дата в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС

В целом логично и относительно просто. Попробуем вставить это в наш пример:

Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_select_db("people") or die(mysql_error()); mysql_query("CREATE TABLE MyTable (id INT AUTO_INCREMENT, FirstName CHAR, LastName CHAR, Phone INT, BirthDate DATE PRIMARY KEY(id))") Or die(mysql_error()); mysql_close ();

В этом примере мы начинаем с соединения с MySQL-сервером. Затем используем функцию для выбора БД "people". Далее создаём таблицу "persons" из 5 столбцов.

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

В конце мы используем для установки столбца "id" как первичного ключа/primary key. Первичный ключ уникально идентифицирует каждую запись (/ряд) в таблице, что особенно пригодится при последующих обновлениях БД.

Создание БД и таблиц с использованием phpMyAdmin

Бывает полезно иметь возможность создавать БД и таблицы напрямую в PHP. Но часто проще использовать phpMyAdmin (или любую иную утилиту администрирования MySQL), которая является стандартной на большинстве вэб-хостов и в XAMPP. Скриншот ниже показывает, как создавать БД и таблицы с применением phpMyAdmin.

Steps for Create Database Mysql

Create Database in two ways

1) By executing a simple SQL query

2) By using forward engineering in MySQL Workbench

In this tutorial, you will learn-

As SQL beginner , let"s look into the query method first.

Create Database

CREATE DATABASE is the SQL command for creating a database.

Imagine you need to create a database with name "movies". You can do it by executing following SQL command.

CREATE DATABASE movies;

Note: you can also use the command CREATE SCHEMA instead of CREATE DATABASE

Now let"s improve our SQL query adding more parameters and specifications.

IF NOT EXISTS

A single MySQL server could have multiple databases. If you are not the only one accessing the same MySQL server or if you have to deal with multiple databases there is a probability of attempting to create a new database with name of an existing database . IF NOT EXISTS let you to instruct MySQL server to check the existence of a database with a similar name prior to creating database.

When IF NOT EXISTS is used database is created only if given name does not conflict with an existing database"s name. Without the use of IF NOT EXISTS MySQL throws an error.

CREATE DATABASEIF NOT EXISTS movies;

Collation and Character Set

Collation is set of rules used in comparison. Many people use MySQL to store data other than English. Data is stored in MySQL using a specific character set. The character set can be defined at different levels viz, server , database , table and columns.

You need to select the rules of collation which in turn depend on the character set chosen.

For instance, the Latine1 character set uses the latin1_swedish_ci collation which is the Swedish case insensitive order.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci

The best practice while using local languages like Arabic , Chinese etc is to select Unicode (utf-8) character set which has several collations or just stick to default collation utf8-general-ci.

You can find the list of all collations and character sets here

You can see list of existing databases by running following SQL command.

SHOW DATABASES

Creating Tables MySQL

Tables can be created using CREATE TABLE statement and it actually has the following syntax.

CREATE TABLE `TableName` (`fieldname` dataType ) ENGINE = storage Engine;

  • "CREATE TABLE" is the one responsible for the creation of the table in the database.
  • "" is optional and only create the table if no matching table name is found.
  • "`fieldName`" is the name of the field and "data Type" defines the nature of the data to be stored in the field.
  • "" additional information about a field such as " AUTO_INCREMENT" , NOT NULL etcCreate Table Example:- CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (`membership_number` INT AUTOINCREMENT , `full_names` VARCHAR(150) NOT NULL , `gender` VARCHAR(6) , `date_of_birth` DATE , `physical_address` VARCHAR(255) , `postal_address` VARCHAR(255) , `contact_number` VARCHAR(75) , `email` VARCHAR(255) , PRIMARY KEY (`membership_number`)) ENGINE = InnoDB;

Now let"s see what the MySQL"s data types are. You can use any of them depending on your need. You should always try to not to underestimate or overestimate potential range of data when creating a database.

DATA TYPES

Data types define the nature of the data that can be stored in a particular column of a table

MySQL has 3 main categories of data types namely

  • Numeric,
  • Date/time.
  • Numeric Data types

    Numeric data types are used to store numeric values. It is very important to make sure range of your data is between lower and upper boundaries of numeric data types.

    TINYINT() -128 to 127 normal
    0 to 255 UNSIGNED.
    SMALLINT() -32768 to 32767 normal
    0 to 65535 UNSIGNED.
    MEDIUMINT() -8388608 to 8388607 normal
    0 to 16777215 UNSIGNED.
    INT() -2147483648 to 2147483647 normal
    0 to 4294967295 UNSIGNED.
    BIGINT() -9223372036854775808 to 9223372036854775807 normal
    0 to 18446744073709551615 UNSIGNED.
    FLOAT A small approximate number with a floating decimal point.
    DOUBLE(,) A large number with a floating decimal point.
    DECIMAL(,) A DOUBLE stored as a string , allowing for a fixed decimal point. Choice for storing currency values.
    Text Data Types

    As data type category name implies these are used to store text values. Always make sure you length of your textual data do not exceed maximum lengths.

    CHAR() A fixed section from 0 to 255 characters long.
    VARCHAR() A variable section from 0 to 255 characters long.
    TINYTEXT A string with a maximum length of 255 characters.
    TEXT
    BLOB A string with a maximum length of 65535 characters.
    MEDIUMTEXT
    MEDIUMBLOB A string with a maximum length of 16777215 characters.
    LONGTEXT
    LONGBLOB A string with a maximum length of 4294967295 characters.

    Date / Time

    DATE YYYY-MM-DD
    DATETIME YYYY-MM-DD HH:MM:SS
    TIMESTAMP YYYYMMDDHHMMSS
    TIME HH:MM:SS

    Apart from above there are some other data types in MySQL.

    ENUM To store text value chosen from a list of predefined text values
    SET This is also used for storing text values chosen from a list of predefined text values. It can have multiple values.
    BOOL Synonym for TINYINT(1), used to store Boolean values
    BINARY Similar to CHAR, difference is texts are stored in binary format.
    VARBINARY Similar to VARCHAR, difference is texts are stored in binary format.

    Now let"s see a sample SQL query for creating a table which has data of all data types. Study it and identify how each data type is defined.

    CREATE TABLE`all_data_types` (`varchar` VARCHAR(20) , `tinyint` TINYINT , `text` TEXT , `date` DATE , `smallint` SMALLINT , `mediumint` MEDIUMINT , `int` INT , `bigint` BIGINT , `float` FLOAT(10, 2) , `double` DOUBLE , `decimal` DECIMAL(10, 2) , `datetime` DATETIME , `timestamp` TIMESTAMP , `time` TIME , `year` YEAR , `char` CHAR(10) , `tinyblob` TINYBLOB , `tinytext` TINYTEXT , `blob` BLOB , `mediumblob` MEDIUMBLOB , `mediumtext` MEDIUMTEXT , `longblob` LONGBLOB , `longtext` LONGTEXT , `enum` ENUM("1", "2", "3") , `set` SET("1", "2", "3") , `bool` BOOL , `binary` BINARY(20) , `varbinary` VARBINARY(20)) ENGINE= MYISAM ;

    • Use upper case letters for SQL keywords i.e. "DROP SCHEMA IF EXISTS `MyFlixDB`;"
    • End all your SQL commands using semi colons.
    • Avoid using spaces in schema, table and field names. Use underscores instead to separate schema, table or field names.
    MySQL workbench ER diagram forward engineering

    MySQL workbench has utilities that support forward engineering. Forward engineering is a technical term is to describe the process of translating a logical model into a physical implement automatically .

    We created an ER diagram on our ER modeling tutorial. We will now use that ER model to generate the SQL scripts that will create our database.

    Creating the MyFlix database from the MyFlix ER model

    1. Open the ER model of MyFlix database that you created in earlier tutorial.

    2. Click on the database menu. Select forward engineer

    3. The next window, allows you to connect to an instance of MySQL server. Click on the stored connection drop down list and select local host. Click Execute

    4. Select the options shown below in the wizard that appears. Click next

    5. The next screen shows the summary of objects in our EER diagram. Our MyFlix DB has 5 tables. Keep the selections default and click Next.

    6.. The window shown below appears. This window allows you to preview the SQL script to create our database. We can save the scripts to a *.sql" file or copy the scripts to the clipboard. Click on next button

    7. The window shown below appears after successfully creating the database on the selected MySQL server instance.


    Summary
    • Creating a database involves translating the logical database design model into the physical database.
    • MySQL supports a number of data types for numeric, dates and strings values.
    • CREATE DATABSE command is used to create a database
    • CREATE TABLE command is used to create tables in a database
    • MySQL workbench supports forward engineering which involves automatically generating SQL scripts from the logical database model that can be executed to create the physical database

    The Database along with Dummy Data is attached. We will be using this DB for all our further tutorials. Simple import the DB in MySQL Workbench to get started

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

    Сначала я пытаюсь вызвать код PHP, который существует в отдельном файле в HTML через JavaScript. Я думаю, что у меня это работает правильно, но я не уверен на 100% (потому что таблица не будет отображаться). Я думаю, что он работает правильно, потому что в FireBug отображается some кода таблицы (который находится в файле PHP).

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

    $query = "SELECT * FROM employees"; $result = mysql_query($query); $num = mysql_num_rows($result); echo "

    "; for ($i = 0; $i < $num; $i++){ $row = mysql_fetch_array($result); $id = $row["id"]; $l_name = $row["l_name"]; $f_name = $row["f_name"]; $ssn = $row["ssn"]; $class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
    $wrap_id$wrap_l_name$wrap_f_name$wrap_ssn
    "; mysql_close($link); }

    ИЗМЕНИТЬ

    Чтобы ответить на несколько вопросов:

    @controlfreak123, я не уверен, что вы подразумеваете под "include ("filename_with_php_in_it")". Поскольку страница не вызывается для анализа, я думаю, что она вызывается и делается контакт. Я указал в своем первоначальном вопросе, что считаю, что это верно, потому что FireBug показывает код для таблицы, и этот код находится в отдельном файле PHP, поэтому связь между файлом HTML и файлом PHP должна иметь место. Вот как я вызываю файл PHP из HTML файла, если вы хотите знать:

    @Matt S, я не получаю много информации о выходе, на самом деле я не знал, что вообще что-то получаю, пока не посмотрю на FireBug и не увидел, что код PHP (или его часть) действительно передается в файл HTML. Конкретный вопрос заключается в том, как получить данные из базы данных MySQL и заполнить их в HTML-таблицу через PHP. Я также могу подтвердить, что employees имеет в нем данные, две записи, которые я вводил для тестирования. Я могу попытаться поместить код в свой собственный файл без JavaScript, как вы предложили, но это победит мою цель, так как я хочу, чтобы мои файлы HTML и PHP были отдельными, но я могу попробовать, чтобы проверить, хорош ли PHP-код и убедитесь, что JavaScript не нарушает его.

    @Аарон, я не уверен, что вы просите (извините). Код предназначен для заполнения и создания таблицы на HTML-странице.

    3 ответов

    Вот полный пример того, что вы ищете:

    • вытащите некоторые данные из mysql, используя php
    • помещает эти данные в таблицу html
    • применять переменные цветные строки к таблице

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

    Кроме того, помните, что $row чувствителен к регистру. Итак, $row != $Row .

    Надеюсь, что это поможет:

    tr.header { font-weight:bold; } tr.alt { background-color: #777777; } $(document).ready(function(){ $(".striped tr:even").addClass("alt"); });

    Id Name Title

    Здесь код таблицы использует только PHP, чтобы чередовать стили, как вы пытаетесь сделать в своем примере:

    Id Title Date

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