имя_столбца тип [NOT NULL | NULL] [DEFAULT значение_по_умолчанию] [AUTO_INCREMENT][PRIMARY KEY] [reference_definition]
Тип столбца (тип в выражении определение_столбца) может быть одним из следующих:
Полный список типов смотрите в документации MySQL.
Вместо перечисления столбцов и их свойств в определении_столбца можно задавать списки ключевых и индексных полей, ограничения и проверки:
PRIMARY KEY (имя_индексируемого_столбца, ...)
или
KEY [имя_индекса] (имя_индексируемого_столбца,...)
или
INDEX [имя_индекса] (имя_индексируемого_столбца,...)
или
UNIQUE [INDEX] [имя_индекса] (имя_индексируемого_столбца,...)
или
FULLTEXT [INDEX] [имя_индекса] (имя_индексируемого_столбца,...)
или
[CONSTRAINT symbol] FOREIGN KEY [имя_индекса] (имя_индексируемого_столбца,...) [reference_definition]
или
CHECK (expr)
При задании всех этих элементов указывается список полей (столбцов), которые будут входить в индекс, ключ или ограничение, имя_индексируемого_столбца записывается следующим образом:
имя_столбца [(длина_индекса)]
FOREIGN KEY, CHECK и REFERENCES на самом деле ничего не делают в MySQL. Они добавлены только для совместимости с другими SQL-серверами. Поэтому на них мы останавливаться не будем.
Кроме всего перечисленного, при создании таблицы можно указать некоторые ее свойства (опции_таблицы), например такие: