Программная реализация базы данных интернет магазина для ооо «пмз» средствами sql server
Создание базы данных
Создадим новую базу данных при помощи универсальной среды для доступа, настройки и администрирования всех компонентов MS SQL Server. SQL Server Management Studio».
Для этого создаем новый запрос и выполняем соответствующую команду на создание БД и установки условия сортировки:
CREATE DATABASE InternetShopPMZ
COLLATE Cyrillic_General_CI_AS
GO
Запросы служат как для извлечения данных из таблиц и предоставления их пользователю в удобном виде, так и для выполнения таких операций как отбор данных, их сортировка и фильтрация.
С помощью запросов можно выполнять преобразования данных по заданному алгоритму, создавать новые таблицы, выполнять автоматическое наполнение таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
Особенность запросов состоит в том, что они черпают данные из базовых таблиц и создают на их основе временную результирующую таблицу.
Создадим таблицы при помощи оператора CREATE TABLE языка Transact‑SQL. CREATE TABLE создает новую таблицу, ее столбцы и ограничения целостности в базе данных.
1. Создание таблицы: «Покупатели».
CREATE TABLE ПОКУПАТЕЛИ
( ID int NOT NULL IDENTITY,
Фамилия nvarchar(20) NULL,
Имя nvarchar(20) NULL,
Отчество nvarchar(20) NULL,
Адрес nvarchar(50) NULL,
Город nvarchar(20) NULL,
Телефон char(12) NULL,
Дата_регистрации date DEFAULT GETDATE(), )
GO
Эта команда создаёт таблицу «Покупатели» и определяет значения полей: ID, Фамилия, Имя, Отчество, Адрес, Город, Телефон, Дата_регистрации.
2. Создание таблицы: «СОТРУДНИКИ».
CREATE TABLE СОТРУДНИКИ
( ID int NOT NULL IDENTITY,
ОтделID int NOT NULL,
Фамилия nvarchar(20) NOT NULL,
Имя nvarchar(20) NULL,
Отчество nvarchar(20) NOT NULL,
Должность nvarchar(25) NOT NULL,
Зарплата money NOT NULL,
Ппремия money NULL,
Датаприеманаработу date DEFAULT GETDATE(),
Семейноеположение varchar(10) NOT NULL,
Датарождения date NOT NULL,
Адрес nvarchar(50) NOT NULL,
Телефон char(12) NOT NULL )
GO
Эта команда создаёт таблицу «Сотрудники» и определяет значения полей: ID, ОтделID, Фамилия, Имя, Отчество, Должность, Зарплата, Премия, Датаприеманаработу, Семейноеположение, Датарождения, Адрес, Телефон.
3. Создание таблицы: «Отдел».
CREATE TABLE ОТДЕЛ
( ID int NOT NULL,
Названиеотдела nvarchar(20) NOT NULL,)
GO
Эта команда создаёт таблицу «Отдел» и определяет значения полей: ID, Названиеотдела.
4. Создание таблицы: «Товары».
CREATE TABLE ТОВАРЫ
( ID int NOT NULL IDENTITY,
НАЗВАНИЕ nvarchar(50) NOT NULL )
GO
Эта команда создаёт таблицу «Товары» и определяет значения полей: ID, Название.
5. Создание таблицы: «Детали товара».
CREATE TABLE ДЕТАЛИТОВАРА
( ID int NOT NULL,
Цвет nchar(20) NULL,
Материал nchar(20) NULL,
Текстовоеописание nvarchar(max) NULL )
GO
Эта команда создаёт таблицу «Деталитовара» и определяет значения полей: ID, Цвет, Материал.
6. Создание таблицы: «Склад».
CREATE TABLE СКЛАД
( ТоварID int NOT NULL,
Количество int DEFAULT 0)
GO
Эта команда создаёт таблицу «склад» и определяет значения полей: ID, Название.
7. Создание таблицы: «Заказы».
CREATE TABLE ЗАКАЗЫ
(ID int NOT NULL IDENTITY,
ПокупательID int NULL,
СотрудникID int NULL,
Датаоформления date DEFAULT GETDATE() )
GO
Эта команда создаёт таблицу «Заказы» и определяет значения полей: ID, ПокупательID, СотрудникID, Датаоформления.
8. Создание таблицы: «Детали заказы».
CREATE TABLE ДЕТАЛИЗАКАЗА
( ЗаказID int NOT NULL,
Количествопозиций int NOT NULL,
ТоварID int NULL,
Количествопродонного int NOT NULL,
Цена money NOT NULL,
Стоимостьзаказа AS CONVERT(money, Количествопродонного*Цена) )
GO
Эта команда создаёт таблицу «Детали заказа» с полями: ЗаказID, Количествопозиций, ТоварID, Количествопродонного, Цена, Стоимостьзаказа.
4.2 Установка связей между таблицами
Для обеспечения целостности необходимо установить связи между таблицами необходимо задать первичные и внешние ключи.
1. Создание первичного ключа в таблице: «Покупатели».
ALTER TABLE ПОКУПАТЕЛИ ADD
CONSTRAINT Первичный_ключ_покупатели PRIMARY KEY(ID)
GO
2. Создание первичного ключа в таблице: «Сотрудники».
ALTER TABLE СОТРУДНИКИ ADD
CONSTRAINT Первичный_ключ_сотрудники PRIMARY KEY(ID)
GO
3. Создание уникального ключа в таблице: «Отдел».
ALTER TABLE ОТДЕЛ ADD
CONSTRAINT Уникальный_ключ_отдел UNIQUE(ID)
GO
4. Создание внешнего ключа в таблице: «СОТРУДНИКИ».
ALTER TABLE СОТРУДНИКИ ADD
CONSTRAINT внешний_ключ_сотрудники_к_отдел_ FOREIGN KEY (ОтделID)
REFERENCES ОТДЕЛ(ID)
ON DELETE CASCADE
GO
5. Создание первичного ключа в таблице: «Товары».
ALTER TABLE ТОВАРЫ ADD
CONSTRAINT первичный_ключ_товары PRIMARY KEY (ID)
GO
6. Создание уникального ключа в таблице: «Детали товара».
ALTER TABLE ДЕТАЛИТОВАРА ADD
CONSTRAINT Уникальный_ключ_деталитовара UNIQUE(ID)
GO
7. Создание внешнего ключа в таблице: «Детали товара».
ALTER TABLE ДЕТАЛИТОВАРА ADD
CONSTRAINT внешнийключ_деталитовара_к_товары FOREIGN KEY (ID)
REFERENCES ТОВАРЫ(ID)
ON DELETE CASCADE
GO
8. Создание уникального ключа в таблице: «Склад».
ALTER TABLE СКЛАД ADD
CONSTRAINT Уникальный_ключ_склад UNIQUE(ТоварID)
GO
9. Создание внешнего ключа в таблице: «Склад».
ALTER TABLE СКЛАД ADD
CONSTRAINT внешний_ключ_склад_к_товары FOREIGN KEY (ТоварID)
REFERENCES ТОВАРЫ(ID)
ON DELETE CASCADE
GO
10. Создание первичного ключа в таблице: «Заказы».
ALTER TABLE ЗАКАЗЫ ADD
CONSTRAINT первичный_ключ_заказы PRIMARY KEY (ID)
GO
11. Создание внешнего ключа в таблице: «Заказы».
ALTER TABLE ЗАКАЗЫ ADD CONSTRAINT
внешний_ключ_заказы_к_покупателям FOREIGN KEY(ПокупательID)
REFERENCES ПОКУПАТЕЛИ(ID)
ON DELETE SET NULL
GO
12. Создание внешнего ключа в таблице: «Заказы».
ALTER TABLE ЗАКАЗЫ ADD CONSTRAINT
Внешний_ключ_заказы_к_сотрудники FOREIGN KEY(СотрудникID)
REFERENCES СОТРУДНИКИ(ID)
ON DELETE SET NULL
GO
13. Создание первичного ключа в таблице: «Детали заказа».
ALTER TABLE ДЕТАЛИЗАКАЗА ADD CONSTRAINT
первичныйключ_детализаказа PRIMARY KEY
(ЗаказID,Количествопозиций)
GO
14. Создание внешнего ключа в таблице: «Детали заказа».
ALTER TABLE ДЕТАЛИЗАКАЗА ADD CONSTRAINT
внешнийключ_детализаказа_к_заказам FOREIGN KEY(ЗаказID)
REFERENCES ЗАКАЗЫ(ID)
ON DELETE CASCADE
GO
15. Создание внешнего ключа в таблице: «Детали заказа».
ALTER TABLE ДЕТАЛИЗАКАЗА ADD CONSTRAINT
внешний_ключ_детализаказа_к_товары FOREIGN KEY(ТоварID)
REFERENCES ТОВАРЫ(ID)
ON DELETE SET NULL
GO