суббота, 18 ноября 2017 г.

MySQL. Урок 6. Создадим таблицы, задаим PRIMARY KEY, AUTO_INCREMENT. Задаем кодировки и коллейшены для всей таблицы и для отдельных столбцов командами CHARACTER SET и COLLATE. Задаем движок для таблицы оператором ENGINE.

-- Если в таблице мы создаем PRIMARY KEY, то мы можем задать AUTO INCREMENT, т.е увеличение на единицу.
-- PRIMARY KEY - индекс, который помогает БД искать информацию.

/*
PRIMARY KEY (Первичный ключ) является полем в таблице, которое однозначно идентифицирует каждую строку/запись в таблице базы данных. Первичные ключи должны содержать уникальные значения. Первичный ключ столбец не может иметь значения NULL.
Если таблица имеет первичный ключ, определенный на любом поле, то вы не можете иметь две записи, имеющие одинаковое значение этого поля.
*/
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) COMMENT 'Таблица товаров';

-- Для просмотра структуры таблицы используем команду DESCRIBE или DESC.
DESC table2;

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- PRIMARY KEY мы можем задать для нескольких полей, например, для id и name.
-- Перезапишем таблицу.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id, name)
) COMMENT 'Таблица товаров';

-- Для просмотра структуры таблицы используем команду DESCRIBE или DESC.
DESC table2;

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Если мы задаем PRIMARY KEY для одного поля, то можно написать так:
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара'
) COMMENT 'Таблица товаров';

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Более правильный подход задавать PRIMARY KEY, как свойства свей таблицы.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) COMMENT 'Таблица товаров';

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Мы можем создавать свою кодировку для каждой таблицы.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) CHARACTER SET cp1251 COMMENT 'Таблица товаров';

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Мы можем задать COLLATE, который отвечает за учет регистра строк.
-- Создадим COLLATION без учета регистра.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) CHARACTER SET cp1251 COLLATE cp1251_general_ci COMMENT 'Таблица товаров';

-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Мы можем создать таблицу на движке MyISAM.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) CHARACTER SET cp1251 COLLATE cp1251_general_ci ENGINE=MyISAM COMMENT 'Таблица товаров';

-- Мы можем задать кодировку для каждого отдельного столбца.
-- Удалим таблицу.
DROP TABLE IF EXISTS table2;

-- Создадим кодировку и COLLATION для столбца name с учетом регистра.
-- Допустим, что в поле name будет лежать регистрозависимый логин.
CREATE TABLE IF NOT EXISTS table2
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Название товара',
price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY KEY(id)
) CHARACTER SET cp1251 COLLATE cp1251_general_ci ENGINE=MyISAM COMMENT 'Таблица товаров';

-- Таблицы можно связывать.
-- RESTRICT - запрет удаления | CASCADE - каскадное удаление таблиц.

DROP TABLE IF EXISTS table2;

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html