+7(983)178-57-68

Новые горизонты успешного бизнеса!

Главная Посчитать и заказатьОставить заявку Статьи Отзывы Контакты

Как создать таблицу в базе данных MySQL?

Для этого используем ранее рассмотренную функцию подключения к базе данных.
db_connect($serverMySql,$db_log,$db_pass);
mysql_select_db($database);
mysql_query("CREATE TABLE ИмяТаблицы(ИмяПоля тип,ИмяПоля тип)") or die(mysql_error());
Этой командой в базе данных создается новая таблица с колонками (полями), определяемыми своими именами (ИмяПоля) и указанными типами.

Типы полей
----------------+---------------------------------------------------------+
ТИП + ОПИСАНИЕ +
----------------+---------------------------------------------------------+
TINYINT + Может хранить числа от –128 до +127 +
----------------+---------------------------------------------------------+
SMALLINT + Диапазон от –32768 до 32767 +
----------------+---------------------------------------------------------+
MEDIUMINT + Диапазон от –8388608 до 8388607 +
----------------+---------------------------------------------------------+
INT + Диапазон от –2147483648 до 2147483647 +
----------------+---------------------------------------------------------+
BIGINT + Диапазон от –9223372036854775808 до 9223372036854775807 +
----------------+---------------------------------------------------------+
Дробные числа
Точно так же, как целые числа подразделяются в MySQL на несколько разновидностей, MySQL поддерживает и несколько типов дробных чисел.
В общем виде они записываются так:
ИмяТипа[(length,decimals)] [UNSIGNED] 
Здесь length — количество знакомест (ширина поля), в которых будет размещено дробное число при его передаче в PHP, а decimals — количество знаков после десятичной точки, которые будут учитываться. Как обычно, UNSIGNED задает беззнаковые числа. Строка ИмяТипа замещается на предопределенные значения, соответствующие возможным вариантам представления вещественных чисел
----------------+---------------------------------------------------------+
ТИП + ОПИСАНИЕ +
----------------+---------------------------------------------------------+
FLOAT + Число с плавающей точкой небольшой точности +
----------------+---------------------------------------------------------+
DOUBLE + Число с плавающей точкой двойной точности +
----------------+---------------------------------------------------------+
REAL + Синоним для DOUBLE +
----------------+---------------------------------------------------------+
DECIMAL + Дробное число, хранящееся в виде строки +
----------------+---------------------------------------------------------+
NUMERIC + Синоним для DECIMAL +
----------------+---------------------------------------------------------+
Строки
Для начала давайте ознакомимся с типом строки, которая может хранить не более length символов, где length принадлежит диапазону от 1 до 255.
VARCHAR(length) [BINARY]
При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы (как будто по вызову функции rtrim()). Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра. Тип VARCHAR неудобен тем, что может хранить не более 255 символов. Рассмотрим другие, более удобные типы

----------------+---------------------------------------------------------+
ТИП + ОПИСАНИЕ +
----------------+---------------------------------------------------------+
TINYTEXT + Может хранить максимум 255 символов +
----------------+---------------------------------------------------------+
TEXT + Может хранить не более 65535 символов +
----------------+---------------------------------------------------------+
MEDIUMTEXT + Может хранить максимум 16777215 символов +
----------------+---------------------------------------------------------+
LONGTEXT + Может хранить 4294967295 символов +
----------------+---------------------------------------------------------+
Бинарные данные
Бинарные данные — это почти то же самое, что и данные в формате TEXT, но только при поиске в них учитывается регистр символов ("abc" и "ABC" — разные строки). Вего имеется 4 типа бинарных данных
----------------+---------------------------------------------------------+
ТИП + ОПИСАНИЕ +
----------------+---------------------------------------------------------+
TINYBLOB + Может хранить максимум 255 символов +
----------------+---------------------------------------------------------+
BLOB + Может хранить не более 65535 символов +
----------------+---------------------------------------------------------+
MEDIUMBLOB + Может хранить максимум 16777215 символов +
----------------+---------------------------------------------------------+
LONGBLOB + Может хранить 4294967295 символов +
----------------+---------------------------------------------------------+
strong и время
MySQL поддерживает несколько типов полей, специально приспособленных для хранения дат и времени в различных форматах
----------------+---------------------------------------------------------+
ТИП + ОПИСАНИЕ +
----------------+---------------------------------------------------------+
DATE + Дата в формате ГГГГ-ММ-ДД +
----------------+---------------------------------------------------------+
TIME + Время в формате ЧЧ:ММ:СС +
----------------+---------------------------------------------------------+
DATETIME + Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС +
----------------+---------------------------------------------------------+
TIMESTAMP + Время и дата в формате timestamp. Однако при получении +
+ значения поля оно отображается не в формате +
+ timestamp, а в виде ГГГГММДДЧЧММСС, что сильно +
+ умаляет преимущества его использования в PHP +
----------------+---------------------------------------------------------+

Модификаторы и флаги типов


К типу можно также присоединять модификаторы, которые задают его "поведение" и те операции, которые можно (или, наоборот, запрещено) выполнять с соответствующими столбцами
---------------+---------------------------------------------------------------+
Модификатор + Описание +
---------------+---------------------------------------------------------------+
not null + Означает, что поле не может содержать неопределенное значение +
+ — в частности, поле обязательно должно быть инициализировано +
+ при вставке новой записи в таблицу +
+ (если не задано значение по умолчанию) +
---------------+---------------------------------------------------------------+
primary key + Отражает, что поле является первичным ключом, т.е. +
+ идентификатором записи, на который можно ссылаться +
---------------+---------------------------------------------------------------+
auto_increment + При вставке новой записи поле получит уникальное значение,так +
+ что в таблице никогда не будут существовать два поля с +
+ одинаковыми номерами +
---------------+---------------------------------------------------------------+
Default + Задает значение по умолчанию для поля, которое будет +
+ использовано, если при вставке записи поле не было +
+ проинициализировано явно +
---------------+---------------------------------------------------------------+
Для чего нужен auto_increment?
Все просто. В таблице обычно содержится очень много записей. При этом некоторые записи совпадают. Чтобы придать каждой записи уникальность нам нужен некий идентификатор (id). Как его сделать?

Как раз для решения этой проблемы и предназначена в MySQL возможность под названием AUTO_INCREMENT. А именно, при создании таблицы мы можем какое-нибудь ее поле (в нашем случае как раз id) объявить так:
ИмяПоля int auto_increment primary key 
Немного длинновато, но это стоит того! Теперь любая операция INSERT автоматически проставит у добавленной записи поле ИмяПоля так, чтобы оно было уникально во всей таблице — MySQL это гарантирует. В простейшем случае — просто увеличит на 1 некий внутренний счетчик, глобальный для всей таблицы, и занесет его новое значение в нужное поле записи. Причем гарантируется, что никакие проблемы с совместным доступом к таблице просто не могут возникнуть, как это произошло бы, используй мы "кустарные" способы.

Получить только что вставленный идентификатор можно при помощи функции
mysql_insert_id();
Итак,

создаем таблицу в MySQL


db_connect($serverMySql,$db_log,$db_pass);
mysql_select_db($database);
mysql_query("CREATE TABLE users(id int auto_increment primary key,
email TINYTEXT,
password VARCHAR(16),
name TINYTEXT,
daybirth VARCHAR(2),
monthbirth VARCHAR(40),
yearbirth VARCHAR (4))") or die(mysql_error());
mysql_close();
print "Таблица создана!<br>";


Остались вопросы? Спрашивайте!


Понравилась статья? Расскажи другим :)

Опубликовано: | Просмотров: 18949