home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 6_2008-2009.ISO / data / zips / Process_Ma214235212009.psc / Uploads / Database / dbECI.sql < prev   
Text File  |  2009-01-29  |  16KB  |  367 lines

  1.  
  2.  
  3. ---------------------------------RDSD Assignment--------------------------------
  4.  
  5.  
  6. --Here I am creating a database and establishing the logical filename 
  7. --that SQL Server will use to reference this database. I am also setting the file name
  8. --that the operating system will use. Then, I have established the starting size in MB 
  9. --and the rate of growth of the database when the server requests more room.
  10. CREATE DATABASE [dbECI]
  11. ON (NAME = N'dbECI_Data'
  12. ,FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\dbECI_Data.MDF' 
  13. ,SIZE = 2, FILEGROWTH = 10%) 
  14. LOG ON (NAME = N'dbECI_Log'
  15.  ,FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\dbECI_Log.LDF'
  16. ,SIZE = 2
  17. ,FILEGROWTH = 10%)   
  18.  
  19.  
  20. --Using the database.
  21. use dbECI
  22.  
  23.  
  24. ----- Create Table Statements -----
  25.  
  26. create table UserAccount(
  27.     UserID char(5) check(UserID between 'OP001' and 'OP999') primary key,
  28.     UserName varchar(50) check (UserName not like '%[0-9]%') not null,    
  29.     Password varchar(50) not null,
  30.     AccessLevel varchar(50) check (AccessLevel not like '%[0-9]%') not null,    
  31. )
  32.  
  33. create table ItemDetails(
  34.     Item_ID char(5) check(Item_ID between 'II001' and 'II999') primary key,
  35.     Item_Type varchar(50) check(Item_Type in('Television', 'Washing Machine', 'Refrigerator', 'Video Record Player')) not null,    
  36.     Item_Size varchar(10) check(Item_Size in('Small', 'Medium', 'Large')) not null,
  37.     Manufacturer varchar(50) check (Manufacturer not like '%[0-9]%') not null,    
  38.     Cost_Price  float check (Cost_Price  > 0 AND Cost_Price  < 999999) not null,
  39.     Retail_Price float check (Retail_Price  > 0 AND Retail_Price  < 999999) not null,
  40.     Stock_Count int not null,    
  41. )
  42.  
  43. create table CustomerDetails(
  44.     Customer_ID char(5) check(Customer_ID between 'CD001' and 'CD999') primary key,
  45.     Customer_First_Name varchar(30) check (Customer_First_Name not like '%[0-9]%') not null,    
  46.     Customer_Last_Name varchar(30) check (Customer_Last_Name not like '%[0-9]%') not null,    
  47.     Address varchar(100) check(len(Address)>0)not null,
  48.     Telephone_Number varchar(15) check (Telephone_Number not like '%[a-z]%')     
  49. )
  50.  
  51. create table WarehouseDetails(
  52.     Warehouse_Location varchar(30) primary key,
  53.     Address varchar(100) check(len(Address)>0) not null,
  54.     Telephone_Number varchar(15) check (Telephone_Number not like '%[a-z]%') 
  55. )
  56.  
  57. create table ServiceDepot(
  58.     Service_Depot_ID char(5) check(Service_Depot_ID between 'SD001' and 'SD999') primary key,
  59.     Service_Depot_Location varchar(30) check (Service_Depot_Location not like '%[0-9]%') not null,    
  60.     Address varchar(100) check(len(Address)>0) not null,
  61. )
  62.  
  63. create table Engineer(
  64.     Engineer_ID char(5) check(Engineer_ID between 'EN001' and 'EN999') primary key,
  65.     Engineer_Name varchar(60) check (Engineer_Name not like '%[0-9]%') not null,    
  66.     Address varchar(100) check(len(Address)>0) not null,
  67.     Telephone_Number varchar(15) check (Telephone_Number not like '%[a-z]%'), 
  68.     Service_Depot_ID char(5) not null,
  69.     foreign key(Service_Depot_ID) references ServiceDepot,    
  70. )
  71.  
  72. create table RetailStoreDetails(
  73.     Retail_Store_ID char(5) check(Retail_Store_ID between 'RS001' and 'RS999') primary key,
  74.     Retail_Store_Name varchar(30) check (Retail_Store_Name not like '%[0-9]%') not null,
  75.     Retail_Store_Location varchar(30) check (Retail_Store_Location not like '%[0-9]%') not null,
  76.     Address varchar(100) check(len(Address)>0) not null,
  77.     Telephone_Number varchar(15) check (Telephone_Number not like '%[a-z]%'), 
  78.     Service_Depot_ID char(5) not null,
  79.     Warehouse_Location varchar(30) check (Warehouse_Location not like '%[0-9]%') not null,    
  80.     foreign key(Service_Depot_ID) references ServiceDepot,    
  81.     foreign key(Warehouse_Location) references WarehouseDetails,    
  82. )
  83.  
  84. create table PurchaseDetails(
  85.     Purchase_ID char(5) check(Purchase_ID between 'PD001' and 'PD999') primary key,
  86.     Purchase_Date datetime check (Purchase_Date >= getDate()-1) not null,
  87.     Retail_Store_ID char(5) not null,    
  88.     Customer_ID char(5) not null,
  89.     Item_ID char(5) not null,    
  90.     Quantity smallint default 1 not null,
  91.     Total_Cost float check (Total_Cost  > 0 AND Total_Cost  < 999999) not null,
  92.     foreign key(Item_ID) references ItemDetails,    
  93.     foreign key(Customer_ID) references CustomerDetails on update cascade,    
  94.     foreign key(Retail_Store_ID) references RetailStoreDetails,    
  95. )
  96.  
  97. create table ServiceAgreementDetails(
  98.     Service_ID char(5) check(Service_ID between 'SA001' and 'SA999') primary key,
  99.     Service_Depot_ID char(5) not null,
  100.     Purchase_ID char(5) not null,
  101.     Customer_ID char(5) not null,
  102.     Purchase_Date datetime check (Purchase_Date >= getDate()-1) not null,
  103.     Duration smallint default 3 not null,
  104.     Quantity smallint default 1 not null,
  105.     Total_Cost float check (Total_Cost  > 0 AND Total_Cost  < 999999) not null,
  106.     foreign key(Purchase_ID) references PurchaseDetails,
  107.     foreign key(Customer_ID) references CustomerDetails,        
  108.     foreign key(Service_Depot_ID) references ServiceDepot,    
  109. )
  110.  
  111. create table MaintenanceRecord(
  112.     Maintenance_ID char(5) check(Maintenance_ID between 'MR001' and 'MR999') primary key,
  113.     Service_ID char(5) not null,
  114.     Service_Depot_ID char(5) not null,
  115.     Engineer_ID char(5) not null,    
  116.     Service_Date datetime check (Service_Date >= getDate()-1) not null,
  117.     Maintenance_Cost float check (Maintenance_Cost  > 0 AND Maintenance_Cost  < 999999) not null,
  118.     foreign key(Service_ID) references ServiceAgreementDetails,
  119.     foreign key(Service_Depot_ID) references ServiceDepot,
  120.     foreign key(Engineer_ID) references Engineer,    
  121. )
  122.  
  123.  
  124.  
  125.  
  126. ------------User Stored Procesdures----------
  127.  
  128. CREATE PROCEDURE usp_ItemSearch as
  129. SELECT Item_ID,Item_Type,Item_Size,Manufacturer,Retail_Price
  130. FROM ItemDetails
  131. ORDER BY Item_ID
  132.  
  133. CREATE PROCEDURE usp_CustomerSearch as
  134. SELECT Customer_ID,Customer_First_Name,Customer_Last_Name
  135. FROM CustomerDetails
  136. ORDER BY Customer_ID
  137.  
  138.  
  139. --------------------Views----------------------
  140. CREATE VIEW PurchasesView
  141. AS
  142. SELECT   Purchase_ID,Purchase_Date,Customer_ID,Item_ID
  143. FROM     PurchaseDetails
  144.  
  145.  
  146. CREATE VIEW RetailStoreView
  147. AS
  148. SELECT   Retail_Store_ID,Retail_Store_Name,Retail_Store_Location
  149. FROM     RetailStoreDetails
  150.  
  151.  
  152. -----------Purchases Insert Trigger-----------
  153. CREATE TABLE [dbo].[PurchasesTrigger] (
  154.     Purchase_Date datetime not null,
  155.     Total_Cost float not null,
  156. )
  157.  
  158. -- Start of command
  159. CREATE TRIGGER tr_InsertPurchases 
  160. -- The table name I want to affect
  161. ON PurchaseDetails 
  162. -- The type of trigger I want
  163. FOR INSERT 
  164. AS
  165. -- I'll set up two variables to hold the date
  166. -- and cost
  167. DECLARE @Purchase_Date datetime
  168. DECLARE @Total_Cost float
  169.  
  170. -- Now I'll make use of the inserted virtual table I mentioned, 
  171. -- setting the values of the variables to the data the user
  172. -- sends. 
  173. SELECT @Purchase_Date = (SELECT Purchase_Date FROM Inserted)
  174. SELECT @Total_Cost = (SELECT Total_Cost FROM Inserted)
  175. -- And now I'll use those variables to insert data into
  176. -- the TriggerTest Table I made earlier 
  177. INSERT PurchasesTrigger values (@Purchase_Date, @Total_Cost)
  178.  
  179.  
  180. ---- UserAccount Sample Data ----
  181.  
  182. insert into UserAccount(UserID,UserName,Password,AccessLevel)
  183. values('OP001','Imran Sheriff','operator','Operator')
  184.  
  185. insert into UserAccount(UserID,UserName,Password,AccessLevel)
  186. values('OP002','Dinithi Vithanage','operator','Operator')
  187.  
  188. insert into UserAccount(UserID,UserName,Password,AccessLevel)
  189. values('OP003','Salvin Saleh','operator','Operator')
  190.  
  191. insert into UserAccount(UserID,UserName,Password,AccessLevel)
  192. values('OP004','Imthiaz Sheriff','admin','Administrator')
  193.  
  194.  
  195.  
  196. ----ItemDetails Sample Data ----
  197.  
  198. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  199. values('II001','Television','Small','Samson Global',12000,16000,10)
  200.  
  201. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  202. values('II002','Television','Medium','Samson Global',16000,20000,10)
  203.  
  204. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  205. values('II003','Television','Large','Samson Global',20000,24000,10)
  206.  
  207. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  208. values('II004','Video Record Player','Small','AudioX Electronics',2000,4000,10)
  209.  
  210. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  211. values('II005','Video Record Player','Medium','AudioX Electronics',4000,6000,10)
  212.  
  213. insert into ItemDetails(Item_ID,Item_Type,Item_Size,Manufacturer,Cost_Price,Retail_Price,Stock_Count)
  214. values('II006','Video Record Player','Large','AudioX Electronics',6000,8000,10)
  215.  
  216.  
  217.  
  218. ----CustomerDetails Sample Data ----
  219.  
  220. insert into CustomerDetails(Customer_ID,Customer_First_Name,Customer_Last_Name,Address,Telephone_Number)
  221. values('CD001','Fazna','Hudah','100, Shrubbery Gardens, Colombo - 04.','011 2625691')
  222.  
  223. insert into CustomerDetails(Customer_ID,Customer_First_Name,Customer_Last_Name,Address,Telephone_Number)
  224. values('CD002','Vindu','Palihakkara','34, Dawson Street, Colombo - 03.','011 2696872')
  225.  
  226. insert into CustomerDetails(Customer_ID,Customer_First_Name,Customer_Last_Name,Address,Telephone_Number)
  227. values('CD003','Sarah','Sheriff','55/2, Davidson Road, Colombo - 04.','011 2593673')
  228.  
  229. insert into CustomerDetails(Customer_ID,Customer_First_Name,Customer_Last_Name,Address,Telephone_Number)
  230. values('CD004','Abheetha','Rathnayake','502/8, Baudhaloka Mawatha, Colombo - 06.','011 2596440')
  231.  
  232. insert into CustomerDetails(Customer_ID,Customer_First_Name,Customer_Last_Name,Address,Telephone_Number)
  233. values('CD005','Thivanka','Makalanda','400/7, Rexton Avenue, Colombo - 2.','011 2523568')
  234.  
  235.  
  236.  
  237. ----WarehouseDetails Sample Data----
  238. insert into WarehouseDetails(Warehouse_Location,Address,Telephone_Number)
  239. values ('Bambalapitiya','No 508/6, Golden Terrace','011 2659878')
  240.  
  241. insert into WarehouseDetails(Warehouse_Location,Address,Telephone_Number)
  242. values ('Wellawatta','No 98, 1st Lane','011 2969205')
  243.  
  244. insert into WarehouseDetails(Warehouse_Location,Address,Telephone_Number)
  245. values ('Jaffna','50, Shrewberry Avenue','011 2756489')
  246.  
  247. insert into WarehouseDetails(Warehouse_Location,Address,Telephone_Number)
  248. values ('Kandy','No 4, Red Wood Place','011 2654784')
  249.  
  250. insert into WarehouseDetails(Warehouse_Location,Address,Telephone_Number)
  251. values ('Anuradhapura','No 12, SandShell Rd','011 2487962')
  252.  
  253.  
  254. ---ServiceDepot Sample Data---
  255.  
  256. insert into ServiceDepot(Service_Depot_ID, Service_Depot_Location, Address)
  257. values('SD001','Kandy','No 2 , Sherwood Loc')
  258.  
  259. insert into ServiceDepot(Service_Depot_ID, Service_Depot_Location, Address)
  260. values('SD002','Anuradhapura','No 100 , Mile Avenue, Ration Road')
  261.  
  262. insert into ServiceDepot(Service_Depot_ID, Service_Depot_Location, Address)
  263. values('SD003','Jaffna','No 58 , Shelwood Place')
  264.  
  265. insert into ServiceDepot(Service_Depot_ID, Service_Depot_Location, Address)
  266. values('SD004','Bambalapitiya','No 81 , Railplace, Shelton Road')
  267.  
  268. insert into ServiceDepot(Service_Depot_ID, Service_Depot_Location, Address)
  269. values('SD005','Wellawatta','No 56 , Leyton Terrace')
  270.  
  271.  
  272.  
  273. ---Engineer Sample Data---
  274. insert into Engineer (Engineer_ID,Engineer_Name,Address,Telephone_Number, Service_Depot_ID)
  275. values ('EN001','Paul Perera','No 34, Jaded Terrace','011 2987456','SD001')
  276.  
  277. insert into Engineer (Engineer_ID,Engineer_Name,Address,Telephone_Number, Service_Depot_ID)
  278. values ('EN002','Shania Twain','No 69, Chubby Road','011 2552005','SD005')
  279.  
  280. insert into Engineer (Engineer_ID,Engineer_Name,Address,Telephone_Number, Service_Depot_ID)
  281. values ('EN003','James Lafferty','No 89/7, Wilson Place','011 2551551','SD003')
  282.  
  283. insert into Engineer (Engineer_ID,Engineer_Name,Address,Telephone_Number, Service_Depot_ID)
  284. values ('EN004','Shazna Mowlana','No 34, Mystique Grove','011 2290023','SD002')
  285.  
  286. insert into Engineer (Engineer_ID,Engineer_Name,Address,Telephone_Number, Service_Depot_ID)
  287. values ('EN005','Barack Obama','No 87, Pennsylvania Avenue','011 2444555','SD004')
  288.  
  289.  
  290.  
  291. ---RetailStoreDetails Sample Data---
  292. insert into RetailStoreDetails (Retail_Store_ID, Retail_Store_Name, Retail_Store_Location, Address, Telephone_Number, Service_Depot_ID, Warehouse_Location)
  293. values('RS001','Shamil and Brothers','Wellawatta','No 09, Calcutta Avenue','011 2723895','SD005','Wellawatta')
  294.  
  295. insert into RetailStoreDetails (Retail_Store_ID, Retail_Store_Name, Retail_Store_Location, Address, Telephone_Number, Service_Depot_ID, Warehouse_Location)
  296. values('RS002','Rushan Pvt Ltd','Kandy','No 55, ShineRay','011 2410710','SD001','Kandy')
  297.  
  298. insert into RetailStoreDetails (Retail_Store_ID, Retail_Store_Name, Retail_Store_Location, Address, Telephone_Number, Service_Depot_ID, Warehouse_Location)
  299. values('RS003','Pigtopus Traders','Jaffna','No 08,Lewis Road','011 2794007','SD003','Jaffna')
  300.  
  301. insert into RetailStoreDetails (Retail_Store_ID, Retail_Store_Name, Retail_Store_Location, Address, Telephone_Number, Service_Depot_ID, Warehouse_Location)
  302. values('RS004','Blue Ray Traders','Bambalapitiya','No 502/9,SweetLess Avenue','011 2248503','SD002','Bambalapitiya')
  303.  
  304. insert into RetailStoreDetails (Retail_Store_ID, Retail_Store_Name, Retail_Store_Location, Address, Telephone_Number, Service_Depot_ID, Warehouse_Location)
  305. values('RS005','Mushtak Limited','Anuradhapura','No 65,Shimmering Avenue','011 2520051','SD004','Anuradhapura')
  306.  
  307.  
  308.  
  309. ---PurchaseDetails Sample Data---
  310.  
  311. insert into PurchaseDetails (Purchase_ID,Purchase_Date,Retail_Store_ID,Customer_ID,Item_Id,Quantity,Total_Cost)
  312. values('PD001','05/25/2009','RS002','CD005','II005',2,16000)
  313.  
  314. insert into PurchaseDetails (Purchase_ID,Purchase_Date,Retail_Store_ID,Customer_ID,Item_Id,Quantity,Total_Cost)
  315. values('PD002','05/26/2009','RS004','CD003','II004',1,4000)
  316.  
  317. insert into PurchaseDetails (Purchase_ID,Purchase_Date,Retail_Store_ID,Customer_ID,Item_Id,Quantity,Total_Cost)
  318. values('PD003','05/28/2009','RS002','CD005','II006',2,32000)
  319.  
  320. insert into PurchaseDetails (Purchase_ID,Purchase_Date,Retail_Store_ID,Customer_ID,Item_Id,Quantity,Total_Cost)
  321. values('PD004','06/01/2009','RS001','CD004','II003',1,24000)
  322.  
  323. insert into PurchaseDetails (Purchase_ID,Purchase_Date,Retail_Store_ID,Customer_ID,Item_Id,Quantity,Total_Cost)
  324. values('PD005','06/04/2009','RS003','CD002','II002',4,80000)
  325.  
  326.  
  327.  
  328. ---ServiceAgreementDetails Sample Data---
  329. insert into ServiceAgreementDetails (Service_ID,Service_Depot_ID,Purchase_ID,Customer_ID,Purchase_Date,Duration,Quantity,Total_Cost)
  330. values('SA001','SD001','PD001','CD001','05/25/2009',3,2,6000)
  331.  
  332. insert into ServiceAgreementDetails (Service_ID,Service_Depot_ID,Purchase_ID,Customer_ID,Purchase_Date,Duration,Quantity,Total_Cost)
  333. values('SA002','SD002','PD002','CD002','05/26/2009',3,1,3000)
  334.  
  335. insert into ServiceAgreementDetails (Service_ID,Service_Depot_ID,Purchase_ID,Customer_ID,Purchase_Date,Duration,Quantity,Total_Cost)
  336. values('SA003','SD002','PD003','CD003','05/28/2009',3,2,6000)
  337.  
  338. insert into ServiceAgreementDetails (Service_ID,Service_Depot_ID,Purchase_ID,Customer_ID,Purchase_Date,Duration,Quantity,Total_Cost)
  339. values('SA004','SD003','PD004','CD004','06/01/2009',3,1,3000)
  340.  
  341. insert into ServiceAgreementDetails (Service_ID,Service_Depot_ID,Purchase_ID,Customer_ID,Purchase_Date,Duration,Quantity,Total_Cost)
  342. values('SA005','SD005','PD005','CD005','06/04/2009',3,4,12000)
  343.  
  344.  
  345.  
  346. ---MaintenanceRecord SampleData---
  347.  
  348. insert into MaintenanceRecord (Maintenance_ID,Service_ID,Service_Depot_ID,Engineer_ID,Service_Date,Maintenance_Cost)
  349. values ('MR001','SA001','SD001','EN001','06/10/2009',2000)
  350.  
  351. insert into MaintenanceRecord (Maintenance_ID,Service_ID,Service_Depot_ID,Engineer_ID,Service_Date,Maintenance_Cost)
  352. values ('MR002','SA002','SD001','EN001','07/10/2009',2000)
  353.  
  354. insert into MaintenanceRecord (Maintenance_ID,Service_ID,Service_Depot_ID,Engineer_ID,Service_Date,Maintenance_Cost)
  355. values ('MR003','SA003','SD001','EN002','08/10/2009',2000)
  356.  
  357. insert into MaintenanceRecord (Maintenance_ID,Service_ID,Service_Depot_ID,Engineer_ID,Service_Date,Maintenance_Cost)
  358. values ('MR004','SA004','SD001','EN003','09/10/2009',2000)
  359.  
  360. insert into MaintenanceRecord (Maintenance_ID,Service_ID,Service_Depot_ID,Engineer_ID,Service_Date,Maintenance_Cost)
  361. values ('MR005','SA005','SD001','EN004','10/10/2009',2000)
  362.  
  363.  
  364.  
  365.  
  366.  
  367.