Вот универсальный синтаксис 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. Я пытаюсь сделать пару вещей, которые затрудняют мне.
Сначала я пытаюсь вызвать код PHP, который существует в отдельном файле в HTML через JavaScript. Я думаю, что у меня это работает правильно, но я не уверен на 100% (потому что таблица не будет отображаться). Я думаю, что он работает правильно, потому что в FireBug отображается some кода таблицы (который находится в файле PHP).
Во-вторых, я пытаюсь сделать так, чтобы ряды чередуют цвета для удобства просмотра. До сих пор мой PHP-код приведен ниже. Таблица не отображается вообще ни в одном браузере.
$query = "SELECT * FROM employees"; $result = mysql_query($query); $num = mysql_num_rows($result); echo "
$wrap_id | "; echo "$wrap_l_name | "; echo "$wrap_f_name | "; echo "$wrap_ssn | "; echo "
ИЗМЕНИТЬ
Чтобы ответить на несколько вопросов:
@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.
В этой статье мы расскажем, как создавать новые базы данных и таблицы, используя команды 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.