You are on page 1of 5

SET NOCOUNT ON

GO

set nocount on
set dateformat dmy

USE master

declare @dttm varchar(55)


select @dttm=convert(varchar,getdate(),113)
raiserror('Beginning InstStore.SQL at %s ....',1,1,@dttm) with nowait

GO

if exists (select * from sysdatabases where name='Store')


begin
DROP database Store
end
GO

CHECKPOINT
go

CREATE DATABASE Store


GO

CHECKPOINT

GO

USE Store

GO

if db_name() <> 'Store'


raiserror('Error in InstStore.SQL, ''USE Store'' failed! Killing the SPID now.'
,22,127) with log
GO

-- -----------------------------------------------------
-- Table Membership
-- -----------------------------------------------------
CREATE TABLE Membership (
Membership_id VARCHAR(10) NOT NULL,
Membership_name VARCHAR(45) NOT NULL,
Discount_percentage TINYINT NOT NULL,
PRIMARY KEY (Membership_id))

-- -----------------------------------------------------
-- Table Clients
-- -----------------------------------------------------
CREATE TABLE Clients (
Clients_id VARCHAR(10) NOT NULL,
F_name NCHAR(30) NOT NULL DEFAULT 'Ivan',
L_name NCHAR(30) NOT NULL DEFAULT 'Ivanov',
Membership_id VARCHAR(10) NULL,
Email VARCHAR(50) NULL DEFAULT 'user@email.com',
PRIMARY KEY (Clients_id),
CONSTRAINT Membership_id
FOREIGN KEY (Membership_id)
REFERENCES Membership (Membership_id)
)

-- -----------------------------------------------------
-- Table Department
-- -----------------------------------------------------
CREATE TABLE Department (
Department_id VARCHAR(10) NOT NULL,
Department_name VARCHAR(45) NOT NULL,
Manager_id VARCHAR(10) NULL,
PRIMARY KEY (Department_id))

-- -----------------------------------------------------
-- Table Employee
-- -----------------------------------------------------
CREATE TABLE Employee (
Employee_id VARCHAR(10) NOT NULL,
F_name NCHAR(30) NOT NULL,
L_name NCHAR(30) NOT NULL,
Manager_id VARCHAR(10) NULL,
Position VARCHAR(30) NOT NULL,
Salary MONEY NOT NULL,
Phone_number VARCHAR(15) NOT NULL,
Email VARCHAR(50) NULL DEFAULT 'user@email.com',
Employ_date DATE NOT NULL,
PRIMARY KEY (Employee_id),
CONSTRAINT Manager_id
FOREIGN KEY (Manager_id)
REFERENCES Employee (Employee_id)
)

-- -----------------------------------------------------
-- Table Manager
-- -----------------------------------------------------
CREATE TABLE Manager (
Manager_id VARCHAR(10) NOT NULL,
Department_id VARCHAR(10) NOT NULL,
PRIMARY KEY (Manager_id),
CONSTRAINT mng_dep
FOREIGN KEY (Department_id)
REFERENCES Department (Department_id)
,
CONSTRAINT mng_emp
FOREIGN KEY (Manager_id)
REFERENCES Employee (Employee_id)
)

-- -----------------------------------------------------
-- Table Product
-- -----------------------------------------------------
CREATE TABLE Product (
Product_id VARCHAR(10) NOT NULL,
Product_name VARCHAR(45) NOT NULL,
Price MONEY NOT NULL,
Quantity INT NOT NULL,
Department_id VARCHAR(10) NOT NULL,
PRIMARY KEY (Product_id),
CONSTRAINT Department_id
FOREIGN KEY (Department_id)
REFERENCES Department (Department_id)
)

-- -----------------------------------------------------
-- Table Product_Department
-- -----------------------------------------------------
/* - otpada
CREATE TABLE Product_Department (
Product_id VARCHAR(10) NOT NULL,
Department_id VARCHAR(10) NOT NULL,
PRIMARY KEY (Product_id),
CONSTRAINT Department_Prod
FOREIGN KEY (Department_id)
REFERENCES Department (Department_id)
,
CONSTRAINT Product_Dept
FOREIGN KEY (Product_id)
REFERENCES Product (Product_id)
)

*/

-- -----------------------------------------------------
-- Table Sale
-- -----------------------------------------------------
CREATE TABLE Sale (
Sale_id VARCHAR(10) NOT NULL,
Product_id VARCHAR(10) NOT NULL,
Product_qty TINYINT NOT NULL,
Client_id VARCHAR(10) NOT NULL,
Employee_id VARCHAR(10) NOT NULL,
Sale_date DATE NOT NULL,
PRIMARY KEY (Sale_id),
CONSTRAINT Sale_emp_id
FOREIGN KEY (Employee_id)
REFERENCES Employee (Employee_id)
/*CHECK (Department_id = '1831101001' )*/
,
CONSTRAINT Sale_cl_id
FOREIGN KEY (Client_id)
REFERENCES Clients (Clients_id)
,
CONSTRAINT Sale_prod_id
FOREIGN KEY (Product_id)
REFERENCES Product (Product_id)
)
insert Membership values('00000000M', 'Member', 0)
insert Membership values('00000000B', 'Bronze', 5)
insert Membership values('00000000S', 'Silver', 10)
insert Membership values('00000000G', 'Gold', 15)

insert Clients values ('123456789a','gosho','madjarov','00000000G',NULL)


insert Clients values ('123456789b','kala','totev','00000000G',NULL)
insert Clients values ('123456789c','ico','zvezdov','00000000G',NULL)

insert Department values ('1831101001','cashiers','987654321')


insert Department values ('1831101002','stor�ge','987654322')
insert Department values ('1831101003','office products','987654323')
insert Department values ('1831101004','dairy products','987654324')
insert Department values ('1831101005','vegetables','987654321')
insert Department values ('1831101006','meat products','987654321')
insert Department values ('1831101007','home and garden','987654321')
insert Department values ('1831101008','information','987654321')

insert Employee values ('987654320','Stoyan','Ivanov','987654320' ,'cashier',


800, '0878930760','palqn@abv.bg','18.12.2004')
insert Employee values
('987654321','Petkan','Kavadarov','987654321' ,'storage worker', 800,
'0878930761','kotak@abv.bg','18.12.2010')
insert Employee values
('987654322','Ivan','Palyakov','987654322' ,'consultant', 800,
'0878930762','mogatata@abv.bg','18.12.2006')
insert Employee values
('987654323','Mitko','Ceesa','987654323' ,'consultant', 800,
'0878930763','brugh@abv.bg','18.12.2011')
insert Employee values
('987654324','Rumyan','Shmirgelov','987654324' ,'consultant', 800,
'0878930764','dmqn@abv.bg','18.12.2005')

insert Manager values ('987654321','1831101001') /* petkan is manager of


storage*/
insert Manager values ('987654322','1831101002')
insert Manager values ('987654323','1831101003')
insert Manager values ('987654324','1831101004')
/*
insert Manager values ('kordinat-5','1831101005')
insert Manager values ('kordinat-6','1831101006')
insert Manager values ('kordinat-7','1831101007')
insert Manager values ('kordinat-8','1831101008')

*/

insert Product values ('0000000001', 'pork meat', 10, 3000,'1831101006')


insert Product values ('0000000002', 'beef meat', 10, 3056,'1831101006')

insert Product values ('0000000003', 'tomato', 10, 2000,'1831101005')


insert Product values ('0000000004', 'cucumber', 10, 1000,'1831101005')
insert Product values ('0000000005', 'onion', 10, 5000,'1831101005')

insert Product values ('0000000006', 'sovel', 10, 567,'1831101007')


insert Product values ('0000000007', 'ryegrass', 10, 1324,'1831101007')

insert Product values ('0000000008', 'office chair', 10, 567,'1831101003')


insert Product values ('0000000009', 'office paper', 10, 3230,'1831101003')
insert Product values ('0000000010', 'notebook', 10, 2344,'1831101003')

/*
dep-prod - otpada
insert Product_Department values ('0000000001','1831101006')
insert Product_Department values ('0000000002','1831101006')

insert Product_Department values ('0000000003','1831101005')


insert Product_Department values ('0000000004','1831101005')
insert Product_Department values ('0000000005','1831101005')

insert Product_Department values ('0000000006','1831101007')


insert Product_Department values ('0000000007','1831101007')

insert Product_Department values ('0000000008','1831101003')


insert Product_Department values ('0000000009','1831101003')
insert Product_Department values ('0000000010','1831101003')
*/
insert Sale values
('0','0000000001',20,'123456789c','987654320','06.12.2020')
insert Sale values
('1','0000000002',18,'123456789c','987654320','06.12.2020')
insert Sale values
('2','0000000003',30,'123456789b','987654320','06.12.2020')
insert Sale values ('3','0000000004',4,'123456789b','987654320','06.12.2020')
insert Sale values ('4','0000000005',3,'123456789b','987654320','06.12.2020')
/*
TODO

1. MadJar - Add more inserts later

More TODO -
2. check Relationships
3. Make Constraints
4. Check WTF Index are, how do we make them and do what we need and why do we
even need them?!?
5. Check the foreign keys, are they build like the ones in pubs.txt
6. �� ����� � ���� �������� ����, ��������� ������ � ����� ������
7. �� �� ������ ��� ������� � ���������! - ok
*/

select L_name,Department_name from Employee,Department where


Employee.Manager_id = Department.Manager_id

You might also like