# параметры подключения к базе MySQL
$mysql="hostname"; // база mysql
$user_db="username"; // логин
$pass_db="password"; // пароль
$name_db="name"; // имя базы
$tabl="name_tabl"; //имя таблицы в базе
# подключение к базе MySQL
$db=mysql_connect($mysql,$user_db,$pass_db) or die (mysql_error()); // создаём соединение с базой mysql, указываем имя базы, логин и пароль
# закрыть соединение с базой MySQL
// mysql_close($db);
# устраняем проблемы с кодировкой
mysql_set_charset("utf8",$db); // указываем кодировку базы. Иногда этого достаточно, если нет, то:
mysql_query("set character_set_client", $db); // в какой кодировке приходят данные в базу
mysql_query("set character_set_results", $db); // в какой кодировке выдавать данные из базы
// или если эти кодировки совпадают, то можно писать один запрос:
mysql_query("SET NAMES utf8", $db);
# создаём базу в базе MySQL
mysql_query("CREATE DATABASE $name_db", $db) or die(mysql_error()); // $db можно нигде не указывать, если одно соединение
# удаляем базу $name_db из базы MySQL $db
// mysql_query("DROP DATABASE $name_db", $db) or die(mysql_error());
# выбираем базу с которой будем работать
mysql_select_db($name_db, $db) or die(mysql_error()); // выбор базы $name_db из базы MySQL $db
# создаём таблицу $tabl со столбцами id,stolbec1,stolbec2 в базы MySQL $db
mysql_query("CREATE TABLE $tabl (id INT AUTO_INCREMENT, stolbec1 VARCHAR(36) NOT NULL, stolbec2 TEXT DEFAULT 'Не указано', PRIMARY KEY (id))", $db)); // создаём таблицу со столбцами id и stolbec1 и stolbec2 имеющие модификаторы, которые задают "поведение" и те операции, которые можно (или, наоборот, запрещено) выполнять с соответствующими столбцами:
/*
NOT NULL - поле не может содержать неопределенное значение, т.е. поле обязательно должно быть инициализировано при вставке новой записи в таблицу (если не задано значение по умолчанию).
PRIMARY KEY - поле является первичным ключом, т.е. идентификатором записи, на который можно ссылаться.
AUTO_INCREMENT - при вставке новой записи поле получит уникальное значение, так что в таблице никогда не будут существовать два поля с одинаковыми номерами.
DEFAULT - задаёт значение по умолчанию для поля, которое будет использовано, если при вставке записи для этого поля не было явно указано значение.
# добавление текстовой колонки в таблице $tabl
mysql_query("ALTER TABLE `$tabl` ADD `nazvanie_kolonki` TEXT", $db);
# удаление таблицы из базы данных со всеми столбцами
// mysql_query("DROP TABLE $tabl", $db);
Типы данных:
Целые числа | |
Общий вид указания типа данных: префикс INT [UNSIGNED] Необязательный флаг UNSIGNED задает, что будет создано поле для хранения беззнаковых чисел (больших или равных 0). |
|
TINYINT | Может хранить числа от -128 до 127 |
SMALLINT | Диапазон от -32 768 до 32 767 |
MEDIUMINT | Диапазон от -8 388 608 до 8 388 607 |
INT | Диапазон от -2 147 483 648 до 2 147 483 647 |
BIGINT | Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 |
Дробные числа | |
Общий вид: ИмяТипа[(length, decimals)] [UNSIGNED] | |
Здесь length - количество знакомест (ширина поля), в которых будет размещено дробное число при его передаче. decimals - количество знаков после десятичной точки, которые будут учитываться. UNSIGNED - задает беззнаковые числа. |
|
FLOAT | Число с плавающей точкой небольшой точности. |
DOUBLE | Число с плавающей точкой двойной точности. |
REAL | Синоним для DOUBLE. |
DECIMAL | Дробное число, хранящееся в виде строки. |
NUMERIC | Синоним для DECIMAL. |
Строки | |
Строки представляют собой массивы символов. Обычно при поиске по текстовым полям по запросу SELECT не берется в рассмотрение регистр символов, т.е. строки "Вася" и "ВАСЯ" считаются одинаковыми. Кроме того, если база данных настроена на автоматическую перекодировку текста при его помещении и извлечении, эти поля будут храниться в указанной вами кодировке. Для начала ознакомимся с типом строки, которая может хранить не более length символов, где length принадлежит диапазону от 1 до 255. VARCHAR (length) [BINARY] При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы. Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра. |
|
VARCHAR | Может хранить не более 255 символов. |
TINYTEXT | Может хранить не более 255 символов. |
TEXT | Может хранить не более 65 535 символов. |
MEDIUMTEXT | Может хранить не более 16 777 215 символов. |
LONGTEXT | Может хранить не более 4 294 967 295 символов. |
Чаще всего применяется тип TEXT, но если вы не уверены, что данные не будут превышать 65 536 символов, используйте LONGTEXT. | |
Бинарные данные | |
Бинарные данные - это почти то же самое, что и данные в формате TEXT, но только при поиске в них учитывается регистр символов. | |
TINYBLOB | Может хранить не более 255 символов. |
BLOB | Может хранить не более 65 535 символов. |
MEDIUMBLOB | Может хранить не более 16 777 215 символов. |
LONGBLOB | Может хранить не более 4 294 967 295 символов. |
BLOD-данные не перекодируются автоматически, если при работе с установленным соединением включена возможность перекодирования текста "на лету". | |
Дата и время |
|
MySQL поддерживает несколько типов полей, специально приспособленных для хранения дат и времени в различных форматах. | |
DATE | Дата в формате ГГГГ-ММ-ДД |
TIME | Время в формате ЧЧ:ММ:СС |
DATETIME | Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
TIMESTAMP | Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГММДДЧЧММСС, что сильно умаляет преимущества его использования в PHP |