PHP без БД и MySQL

Переменные:

Массивы:

Функции:

Передача переменных

Глобальный массив

Инструкция INCLUDE

Создание SQL-оператора

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

Ниже показан пример оператора, созданного на основе синтаксиса определения таблицы. Этот оператор CREATE TABLE создает таблицу под названием Parts (Части):

/* Создает таблицу Parts */
CREATE TABLE Parts (
(
PartID INT NOT NULL,
PartName VARCHAR(40) NOT NULL,
CatID INT NOT NULL,
PRIMARY KEY (PartID)
)
ENGINE=MYISAM;

Рассмотрим этот код:

Операторе CREATE TABLE представляет собой одиночный SQL-оператор. Он заканчивается символом точки с запятой, который еще иногда называют терминатором. Когда доступ к базе данных MySQL получается напрямую (например, при помощи клиентской утилиты mysql), все SQL-операторы обязательно должны завершаться точкой с запятой.
Как уже упоминалось ранее, язык SQL не чувствителен к лишним пробелам, символам табуляции и символам разрыва строки. Однако SQL-операторы обычно пишутся так, чтобы их было легко читать, и чтобы было легко понять, какие элементы они содержат. Например, элементы таблицы отделяются отступами, а открывающая и закрывающая скобки размещаются на отдельных строках.
Первая строка кода в данном операторе CREATE TABLE выглядит так:
/* Создает таблицу Parts */
Эта строка представляет собой всего-навсего комментарий и MySQL не обрабатывается. Добавление комментариев, объясняющих роль той или иной части кода или содержащих другую важную информацию, никогда не бывает лишним, могут значительно упрощать отладку кода.

Следующая строка кода - это фактически первая строка самого оператора CREATE TABLE:
CREATE TABLE Parts
Эта строка состоит из ключевых слов CREATE TABLE и имени новой таблицы (Parts). Если вы посмотрите на соответствующую строку в синтаксисе, то сможете увидеть, как формируется конструкция CREATE TABLE:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] <имя_таблицы>

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


PartID INT NOT NULL,
PartName VARCHAR(40) NOT NULL,
CatID INT NOT NULL,
PRIMARY KEY (PartID)
)

В этой части оператора CREATE TABLE содержатся целых четыре компонента <элемент_таблицы>.

Первые три из их представляют собой определения столбцов, а последний - определение первичного ключа.
Все они заключены в круглые скобки и отделены друг от друга запятой. Если вы сравните эту часть оператора CREATE TABLE с синтаксисом, вы сможете увидеть, как заполнители представляют каждый компонент:
(<элемент_таблицы>, <элемент_таблицы>, <элемент_таблицы>, <элемент_таблицы>) Однако, как вы наверняка помните, это еще не все, потому что согласно синтаксису каждый заполнитель может включать три опции, а именно: определение столбца, определение первичного ключа и определение индекса.
Чтобы понять, о чем идет речь, возьмем одно из определений столбцов в рассматриваемом операторе CREATE TABLE и сравним его с синтаксисом:
PartID INT NOT NULL,
В данном случае столбцу присваивается имя PartID, назначается тип данных INT (чтобы он мог содержать до четырех цифр) и запрещается хранить нулевые (NULL) значения. Если вы сравните эту строку с синтаксисом, то поймете, почему определение столбца имеет следующую структуру:
<имя_столбца> <тип> [NOT NULL | NULL] [DEFAULT <значение>] [AUTO_INCREMENT]
Как видите, PartID - это значение, используемое вместо заполнителя <имя_ столбца>, INT - это значение, используемое вместо заполнителя <тип>, a NOT NULL - единственный используемый здесь необязательный элемент. Заполнитель <тип> ссылается на тип данных столбца, который в данном случае является INT. Также обратите внимание на то, что данное определение <элемент_таблицы> заканчивается запятой, потому что за ним следует еще одно определение <элемент_таблицы>.
Теперь посмотрим на определение первичного ключа:
PRIMARY KEY (PartID)
Эта строка содержит только ключевые слова PRIMARY KEY и одно имя столбца. Поскольку указано только одно имя столбца, запятая после него не нужна. Однако в круглые скобки это имя столбца все равно должно быть заключено обязательно. Также поскольку данное определение <элемент_таблицы> является последним, ставить запятую после определения первичного ключа не нужно. Сравните его с синтаксисом:
PRIMARY KEY (<имя_столбца> [{, <имя_столбца>}...])
Никаких необязательных элементов в определении первичного ключа быть не может; здесь могут присутствовать только те элементы, которые имеют существенное значение для определения первичного ключа.
Теперь посмотрим на последнюю строку в нашем операторе CREATE TABLE:
ENGINE=MYISAM;

В этой части оператора определяется тип создаваемой таблицы. Если вы сравните ее с синтаксисом, то увидите, что была просто выбрана одна из доступных опций:
[ENGINE = {BDB | MEMORY | ISAM | INNODB | MERGE | MRG_MYISAM | MYISAM}]

Как показывает синтаксис, вся эта строка кода является необязательной. Однако если она все-таки добавляется к оператору, она обязательно должна включать конструкцию ENGINE= и одну из перечисленных опций (никакие другие опции после ENGINE= указывать нельзя).


Как видно из этого примера, создавая SQL-оператор, следует просто придерживаться структуры, определенной для таких операторов в синтаксисе. После выполнения показанного выше оператора CREATE TABLE в вашу базу данных будет добавлена таблица Parts. Дальше вы сможете добавлять в эту таблицу данные, получать к ним доступ и изменять их, если будет необходимо.