Как создать таблицу в бд mysql php. Вот несколько пунктов, которые нуждаются в пояснении

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

  • Если вы не помните имя базы данных, наберите SHOW DATABASES; , чтобы вывести список баз данных на сервере MySQL.
  • Если у вас пока нет базы данных, вы можете ее создать, набрав CREATE DATABASE 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 ); } ?>

    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 Latin1 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 etc

      Create 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

    1. Numeric,
    2. 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 DATABASE 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

    Вот универсальный синтаксис 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:

    [email protected]# 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`));

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

    Последнее обновление: 04.05.2018

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

    Для создания таблиц используется команда CREATE TABLE . Эта команды применяет ряд операторов, которые определяют столбцы таблицы и их атрибуты. Общий формальный синтаксис команды CREATE TABLE:

    CREATE TABLE название_таблицы (название_столбца1 тип_данных атрибуты_столбца1, название_столбца2 тип_данных атрибуты_столбца2, ................................................ название_столбцаN тип_данных атрибуты_столбцаN, атрибуты_уровня_таблицы)

    После команды CREATE TABLE идет название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Затем в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.

    Создадим простейшую таблицу. Для этого выполним следующий скрипт:

    CREATE DATABASE productsdb; USE productsdb; CREATE TABLE Customers (Id INT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20));

    Таблица не может создаваться сама по себе. Она всегда создается в определенной базе данных. Вначале здесь создается база данных productsdb. И затем, чтобы указать, что все дальнейшие операции, в том числе создание таблицы, будут производиться с этой базой данных, применяется команда USE .

    Далее собственно идет создание таблицы, которая называется Customers. Она определяет четыре столбца: Id, Age, FirstName, LastName. Первые два столбца представляют идентификатор клиента и его возраст и имеют тип INT , то есть будут хранить числовые значения. Следующие столбцы представляют имя и фамилию клиента и имеют тип VARCHAR(20) , то есть представляют строку длиной не более 20 символов. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.

    И в результате выполнения этой команды будет создана база данных productsdb, в которой будет создана таблица Customers.

    Переименование таблиц

    Если после создания таблицы мы захотим ее переименовать, то для этого нужно использовать команду RENAME TABLE , которая имеет следующий синтаксис:

    RENAME TABLE старое_название TO новое_название;

    Например, переименуем таблицу Customers в Clients:

    RENAME TABLE Customers TO Clients;

    Полное удаление данных

    Для полного удаления данных, очистки таблицы применяется команда TRUNCATE TABLE . Например, очистим таблицу Clients:

    TRUNCATE TABLE Clients;

    Удаление таблиц

    Для удаления таблицы из БД применяется команда DROP TABLE , после которой указывается название удаляемой таблицы. Например, удалим таблицу Clients.