База данных и таблица. В чём разница и как они устроены.
Приступая к работе с базами данных необходимо понять общую концепцию - база данных состоит из таблиц, например clients, product, users и т.д.
Наиболее просто описать таблицы можно сравнив их с таблицами которые большинство привыкло видеть в пакете инструментов office.
Тут тоже есть столбцы - например: страна, адрес, номер телефона, почта... и строки, которые содержат в себе информацию релевантную стобцам в таблице.
Столбцы таблицы имеют разный формат, который необходимо указать при создании таблицы - например INT, VARCHAR и другие.
Создание Базы Данных
Но перед тем как создавать все эти таблицы, конечно, необходимо создать саму базу данных. Например если хотим создать бд avito-netbook, используем данную команду
Удаление Базы Данных
Если необходимо удалить бд avito-netbook используем такую команду
Создание простой таблицы
Теперь создадим сначала простую таблицу с именем myfirst-db внутри базы данных avito-netbook.
Пускай у неё по всем канонам первым будет столбец id. Обычно его делают Primary ключом и с автоинкрементом. Это означает что П.О. само будет устанавливать числовой идентификатор id для каждого поля/записи, добавляя единицу к идентификатору id для каждой следующей записи.
Для примера также добавим столбец для числовых значений, который назовём value_INT. Его максимальная длина будет не более 10 цифр.
И столбец для текстовых / строковых значений, который назовём value_VC. Максимальную длину которого ограничим 50-десятью знаками.
`id` INT NOT NULL AUTO_INCREMENT,
`value_INT` INT(10) NOT NULL DEFAULT '0',
`value_VC` VARCHAR(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_general_ci';
Создание таблицы с индексом UNIQ
Предположим что мы хотим создать таблицу rawproxy с такими полями:
id [BIGINT 13]
ip [vc 15]
port [int 5]
protocol [vc 10]
status [vc 15]
date [int 24]
Вдобавок мы хотим чтобы столбец id был primary и auto_increment. А к столбцам ip и port применялся индекс uniq.
Установив индекс uniq, для полей ip и port мы говорим что хотим записывать в базу rawproxy только те строки, в полях ip и port которых находятся только уникальные значения.
`id` BIGINT(13) NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(15) NOT NULL DEFAULT '0',
`port` INT(5) NOT NULL DEFAULT 0,
`protocol` VARCHAR(10) NOT NULL DEFAULT '0',
`status` VARCHAR(15) NOT NULL DEFAULT '0',
`date` INT(24) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE INDEX `ip_port` (`ip`, `port`)
)
COLLATE='utf8mb4_general_ci';
В результате мы получаем такую картину:

Удаление таблицы
Тут всё просто
Очистка таблицы
Если мы хотим только удалить всю информацию из таблицы, но не удалять при этом саму таблицу. Используем такую команду.
Отправить комментарий