Программная реализация базы данных интернет магазина для ооо «пмз» средствами 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

Наши рекомендации