Advertisement
madanska

pctrade

Oct 14th, 2019
582
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 4.59 KB | None | 0 0
  1. CREATE DATABASE PCTrade
  2.  
  3. USE PCTrade
  4.  
  5. create table REGIONS
  6. (
  7.     REGION_ID smallint not null,              
  8.     NAME varchar(25) not null,                      
  9.     constraint PK_REGIONS primary key (REGION_ID)
  10. )
  11.  
  12. create table COUNTRIES
  13. (
  14.     COUNTRY_ID char(2) not null,
  15.     NAME varchar(40) not null,
  16.     REGION_ID smallint null,                                                        
  17.     constraint PK_COUNTRY primary key (COUNTRY_ID),          
  18.     constraint FK_COUNTRIES_REGIONS foreign key (REGION_ID)    
  19.         references REGIONS(REGION_ID)                        
  20. )
  21.  
  22.  
  23. create table CUSTOMERS
  24. (
  25.     CUSTOMER_ID numeric(6) not null,  
  26.     COUNTRY_ID char(2) not null,                      
  27.     FNAME varchar(20) not null,
  28.     LNAME varchar(20) not null,
  29.     ADDRESS text null,
  30.     EMAIL varchar(30) null,
  31.     GENDER char(1) null default 'M'
  32.         constraint CUST_GENDER check (GENDER is null or GENDER in('M', 'F')), -- Ограничение cust_gender за проверка на въвеждани стойности в поле gender. Допустимите стойности са ‘M’ и ‘F’.
  33.     constraint PK_CUSTOMERS primary key (CUSTOMER_ID)                        
  34. )
  35.  
  36. -- Промяна на структурата на създадена вече таблица става с ALTER TABLE.
  37. alter table CUSTOMERS
  38. ADD constraint FK_CUSTOMER_COUNTRY foreign key (COUNTRY_ID)
  39.     references COUNTRIES(COUNTRY_ID)
  40.  
  41.  
  42. create table PRODUCTS
  43. (
  44.     PRODUCT_ID int not null,          
  45.     NAME varchar(50) not null,          
  46.     PRICE numeric(8,2) not null,      
  47.     DESCR varchar(2000) null,                        
  48.     constraint PK_PRODUCTS primary key (PRODUCT_ID)
  49. )
  50.  
  51.  
  52. create table JOBS
  53. (
  54.     JOB_ID varchar(10) not null,        
  55.     JOB_TITLE varchar(35) not null,    
  56.     MIN_SALARY numeric(6),
  57.     MAX_SALARY numeric(6),
  58.     constraint PK_JOB primary key (JOB_ID)
  59. )
  60.  
  61.  
  62. create table DEPARTMENTS
  63. (
  64.     DEPARTMENT_ID int not null,
  65.     NAME varchar(30) not null,
  66.     MANAGER_ID int null,                
  67.     COUNTRY_ID char(2) not null,        
  68.     CITY varchar(30),                  
  69.     STATE varchar(25),                  
  70.     ADDRESS varchar(40),                
  71.     POSTAL_CODE varchar(12) null,
  72.     constraint PK_DEPT primary key (DEPARTMENT_ID)
  73. )
  74.  
  75. alter table DEPARTMENTS
  76. add constraint FK_DEPT_COUNTR foreign key (COUNTRY_ID)
  77.     references COUNTRIES (COUNTRY_ID)
  78.  
  79.  
  80.  
  81.  
  82. create table EMPLOYEES
  83. (
  84.     EMPLOYEE_ID int not null,
  85.     FNAME varchar(20) not null,
  86.     LNAME varchar(25) not null,
  87.     EMAIL varchar(25) not null,
  88.     PHONE varchar(20),
  89.     HIRE_DATE datetime not null,                      
  90.     SALARY numeric(8,2) not null                      
  91.         constraint EMP_SALARY_MIN check (SALARY > 0),  
  92.                                                
  93.     JOB_ID varchar(10) not null,
  94.     MANAGER_ID int null,                              
  95.     DEPARTMENT_ID int null,                        
  96.      
  97.     constraint PK_EMP primary key (EMPLOYEE_ID),
  98.     constraint UK_EMP unique (EMAIL),           -- UK_EMP върху EMAIL, гарантиращо въвеждането на уникални стойности в колоната
  99.    
  100.     constraint EMP_DEPT_FK foreign key (DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID),    
  101.     constraint EMP_JOB_FK foreign key (JOB_ID) references JOBS(JOB_ID),                          
  102.     constraint EMP_MANAGER_FK foreign key (MANAGER_ID) references EMPLOYEES(EMPLOYEE_ID)        
  103. )
  104.  
  105.  
  106. alter table DEPARTMENTS
  107. add constraint FK_DEPT_MGR foreign key (MANAGER_ID)
  108.     references EMPLOYEES(EMPLOYEE_ID)        
  109.  
  110. --За информацията за поръчките на клиентите      
  111. create table  ORDERS
  112. (
  113.     ORDER_ID int not null,
  114.     ORDER_DATE datetime not null,
  115.     CUSTOMER_ID numeric(6) not null,
  116.     EMPLOYEE_ID int not null,
  117.     SHIP_ADDRESS varchar(150) null,
  118.  
  119.     constraint PK_ORDER primary key (ORDER_ID),
  120.     constraint FK_ORDERS_CUSTOMER foreign key (CUSTOMER_ID)
  121.         references CUSTOMERS(CUSTOMER_ID),
  122.     constraint FK_ORDERS_REFERENCE_EMPLOYEE foreign key (EMPLOYEE_ID)
  123.         references EMPLOYEES(EMPLOYEE_ID)
  124. )
  125.  
  126.  
  127. --За информацията за продуктите, поръчани във всяка една от поръчките
  128. create table ORDER_ITEMS
  129. (
  130.     ORDER_ID int not null,
  131.     PRODUCT_ID integer not null,
  132.     UNIT_PRICE numeric(8,2) not null,    
  133.     QUANTITY numeric(8),                  
  134.  
  135.     constraint PK_ORDER_ITEMS primary key (ORDER_ID, PRODUCT_ID),  
  136.     constraint FK_ORDER_ITEMS_ORDER_ID foreign key (ORDER_ID)
  137.         references ORDERS(ORDER_ID)
  138.              on delete cascade,                                                      
  139.     constraint ORDER_ITEMS_PRODUCT_ID_FK foreign key (PRODUCT_ID)
  140.         references PRODUCTS(PRODUCT_ID)
  141. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement