- •Введение
- •1. Основные понятия
- •1.1 Что такое реляционная база данных
- •1.2 Что такое sql
- •1.3 Что такое cms
- •1.4 Основные функции cms
- •1.5 Интернет-магазин
- •1.6 Что такое сервер MySql
- •1.7 Типы данных MySql
- •1.7.1 Числовые типы данных
- •1.7.2 Строковые типы данных
- •1.7.3 Календарные типы данных
- •2. Проектирование и создание базы данных
- •2.1 Таблица категорий товара
- •2.2 Таблица покупателей
- •2.3 Таблица способов доставки
- •2.4 Таблица товаров
- •2.5 Таблица заказов
- •2.6 Таблица заказанных товаров
- •2.7 Итоги создания базы данных
- •3. Разработка sql выборок данных из бд
- •3.1. Выборка таблицы категорий
- •3.2. Выборка всех товаров определенной категории
- •Заключение
- •Список литературы
2.2 Таблица покупателей
Теперь нам нужно создать таблицу покупателей. Назовем её customers. В таблице customers мы создадим 8 поле для хранение наших данных.
customers_id – порядковые номер или счетчик покупателей. Тип данных у customers_id мы сделаем mediumint(10), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента.
name – поля для имени покупателя. Тип данных varchar(30)
email – поля для email адреса покупателя. Тип данных varchar(25)
email – поля для номера телефона покупателя. Тип данных varchar(10)
address – поля для адреса доставки покупателя. Тип данных varchar(100)
login – поля для логина покупателя. Тип данных varchar(20)
password – поля для пароля покупателя. Тип данных varchar(32)
Первичный ключ: Поле customers_id
Теперь мы напишем код и создадим таблицу customers в нашей базе данных
Код:
CREATE TABLE IF NOT EXISTS `customers` (
`customer_id` mediumint(10), unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(25) NOT NULL,
`email` varchar(25) NOT NULL,
`address` varchar(100) NOT NULL,
`login` varchar(20) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`customer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Результат:
Мы создали таблицу покупателей в нашей базе данных.
Таблица покупателей
2.3 Таблица способов доставки
По идеи у покупателей при оформление заказа будет возможность выбрать способ доставки, так как способов доставки у нас будет несколько, то рациональней нам создать для способов доставки отдельную таблицу. Назовем мы её «dostavka» и у неё будет следующая структура:
dostavka_id – тип поля tinyint(2) unsigned
name – это имя варианта доставки тип поля varchar(32)
Теперь мы добавим эту таблицу в нашу базу данных написав следующий SQL код:
CREATE TABLE IF NOT EXISTS `dostavka` (
`dostavka_id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`dostavka_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Результат:
И так мы добавили таблицу «способов доставки» в нашу базу данных и теперь для наглядности мы добавим в ней несколько способов доставки, написал следующий SQL код:
INSERT INTO `dostavka` (`name`) VALUES
('Пересылка по почте'),
('Курьером'),
('Самовывоз'),
('Другое, по согласованию с менеджером');
Так как у нас на в таблице «dostavka» на поле «dostavka_id» стоит атрибут «AUTO_INCREMENT» в коде INSERT INTO нам не обязательно указывать ключ к каждой записи, достаточно только указать поле «name» для каждой записи, а ключ заполняется автоматически.
В результате мы получили, наполненную таблицу способов доставки.
Таблица «dostavka»
2.4 Таблица товаров
Таблицу категорий и таблицу покупателей мы уже создали теперь пора перейти к одной из главных таблиц, таблица товаров. Таблицу мы назовем её goods. В таблице goods мы создадим следующие поля:
goods_id – Счетчик товаров, тип данных int(10), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента счетчика.
name – Поле для имени товара, тип varchar(30)
keywords – Поле для ключевых слов используемых в мета-тегах товара. Тип поля varchar(255)
description – Поле для описание товара в мета-тегах, тип поля аналогичен полю keywords
img – Это поле будет хранить в себе имя главной картинки товара (обложки).
goods_catid – Это поле будет хранить в себе ключ категории к которой принадлежит данный товар
anons – Данное поле будет хранить в себе сокращенное описание товара. Тип поля text.
content – Поле будет хранить в себе полное описание товара, Тип поля text
visible – Это поле будет отвечать за состояние товара, (видимы-невидимый) 0 – невидимый, 1 – видимый. По умолчанию – 1. Тип поля enum('0','1')
hits – Если 1 – значит товар относится к «хитам продаж» иначе – 0 По умолчанию – 0. Тип поля enum('0','1')
new - Если 1 – значит товар относится к «новинкам» иначе – 0 По умолчанию – 0. Тип поля enum('0','1')
sale - Если 1 – значит товар относится к «товарам со скидкой» иначе – 0 По умолчанию – 0. Тип поля enum('0','1')
data – дата добавление товара, Тип поля date
images - varchar(255)
price – Цена, тип поля float
Первичный ключ: Поле goods_id
После того как мы закончили проектировать таблицу, теперь мы можем написать SQL код для добавления таблицы в нашу базу данных. Создаем таблицу goods в базе данных
SQL код:
CREATE TABLE IF NOT EXISTS `goods` (
`goods_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`keywords` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`img` varchar(30) NOT NULL,
`goods_catid ` tinyint(3) unsigned NOT NULL,
`anons` text NOT NULL,
`content` text NOT NULL,
`visible` enum('0','1') NOT NULL DEFAULT '1',
`hits` enum('0','1') NOT NULL DEFAULT '0',
`new` enum('0','1') NOT NULL DEFAULT '0',
`sale` enum('0','1') NOT NULL DEFAULT '0',
`price` float NOT NULL DEFAULT '0',
`date` date NOT NULL,
`img_slide` varchar(100) NOT NULL,
PRIMARY KEY (`goods_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Таблица товаров
