no-style

Создаём / Удаляем таблицы в SQL DB


База данных и таблица. В чём разница и как они устроены.

Приступая к работе с базами данных необходимо понять общую концепцию - база данных состоит из таблиц, например clients, product, users и т.д.

Наиболее просто описать таблицы можно сравнив их с таблицами которые большинство привыкло видеть в пакете инструментов office.

Тут тоже есть столбцы - например: страна, адрес, номер телефона, почта... и строки, которые содержат в себе информацию релевантную стобцам в таблице.

Столбцы таблицы имеют разный формат, который необходимо указать при создании таблицы - например INT, VARCHAR и другие.







Создание Базы Данных

Но перед тем как создавать все эти таблицы, конечно, необходимо создать саму базу данных. Например если хотим создать бд avito-netbook, используем данную команду


CREATE DATABASE `avito-netbook` /*!40100 COLLATE 'utf8mb4_general_ci' */






Удаление Базы Данных

Если необходимо удалить бд avito-netbook используем такую команду


DROP DATABASE `avito-netbook`;






Создание простой таблицы

Теперь создадим сначала простую таблицу с именем myfirst-db внутри базы данных avito-netbook.

Пускай у неё по всем канонам первым будет столбец id. Обычно его делают Primary ключом и с автоинкрементом. Это означает что П.О. само будет устанавливать числовой идентификатор id для каждого поля/записи, добавляя единицу к идентификатору id для каждой следующей записи.

Для примера также добавим столбец для числовых значений, который назовём value_INT. Его максимальная длина будет не более 10 цифр.

И столбец для текстовых / строковых значений, который назовём value_VC. Максимальную длину которого ограничим 50-десятью знаками.


CREATE TABLE `avito-netbook`.`myfirst-db` (
`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 которых находятся только уникальные значения.


CREATE TABLE IF NOT EXISTS `avito-parsing`.`rawproxy` (
`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';

В результате мы получаем такую картину:

create table with index uniq





Удаление таблицы

Тут всё просто


DROP TABLE `rawproxy`;






Очистка таблицы

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


TRUNCATE `rawproxy`;

Комментарии