Advertisement
S_Madanska

решения ден 1 зад

Sep 20th, 2022 (edited)
1,617
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.42 KB | None | 0 0
  1. --коментар
  2.  
  3. /*
  4. 1
  5. 2
  6. */
  7.  
  8. ----------------------------------
  9. ------------DDL-------------------
  10. ----------------------------------
  11. CREATE DATABASE MY_DB
  12. USE MY_DB
  13.  
  14. CREATE TABLE STUDENTS
  15. (
  16.     F_NUM VARCHAR(10) NOT NULL,
  17.     NAME VARCHAR(50) NOT NULL,
  18.     PHONE VARCHAR(15) NULL           --null is by DEFAULT
  19. )
  20.  
  21. --добави нова колона в таблица:
  22. ALTER TABLE STUDENTS
  23. ADD ADDRESS VARCHAR(50)
  24.  
  25. --промени типа на колона в таблица:
  26. ALTER TABLE STUDENTS
  27. ALTER COLUMN ADDRESS TEXT
  28.  
  29. --изтрий коона от таблица:
  30. ALTER TABLE STUDENTS
  31. DROP COLUMN PHONE
  32.  
  33. --изтрий таблица:
  34. DROP TABLE STUDENTS
  35.  
  36. --изтрий база данни:
  37. --DROP DATABASE MY_DB
  38.  
  39.  
  40. ----------------------------------
  41. ------------DML-------------------
  42. ----------------------------------
  43. CREATE TABLE STUDENTS
  44. (
  45.     F_NUM VARCHAR(10) NOT NULL,
  46.     NAME VARCHAR(50) NOT NULL,
  47.     PHONE VARCHAR(15) NULL,
  48.     GENDER CHAR(1) DEFAULT 'M'
  49.         CHECK(GENDER IS NULL OR (GENDER IN ('M','F')))
  50. )
  51.  
  52. ---въведи записи:
  53. INSERT INTO STUDENTS(F_NUM,  NAME, PHONE, GENDER)
  54. VALUES (1, 'IVAN IVANOV', '089898989', NULL)
  55.  
  56. INSERT INTO STUDENTS(F_NUM,  NAME)
  57. VALUES (1, 'MIRO ILIEV')
  58.  
  59. INSERT INTO STUDENTS
  60. VALUES (2, 'MIRA ILIEVA', '08956365', 'F')
  61.  
  62. INSERT INTO STUDENTS
  63. VALUES (3, 'ILIYA ILIEV', '089563658', 'M'),
  64.        (4, 'INA STOEVA', '089563658', 'F'),
  65.        (5, 'NORA IVANOVA', NULL, 'F')
  66.  
  67. SELECT * FROM STUDENTS
  68.  
  69. --промени пола при ф.номер 1
  70. UPDATE STUDENTS
  71. SET GENDER = 'M'
  72. WHERE F_NUM = 1
  73.  
  74. --изтрий студент с ф.номер 1
  75. DELETE FROM STUDENTS
  76. WHERE F_NUM = 1
  77.  
  78. --добави първичен ключ към таблица (за предпочитане се добавя още при създаването на таблицата)
  79. ALTER TABLE STUDENTS
  80. ADD CONSTRAINT PK_STUDENTS PRIMARY KEY (F_NUM)
  81.  
  82. --вече таблицата има
  83.  
  84. ----------------------------------
  85. -------TRADECOMPANY DATABASE------
  86. ----------------------------------
  87. ---СЪЗДАВАМЕ БАЗА ДАННИ:
  88. CREATE DATABASE TRADECOMPANY
  89.  
  90. --ДОСТЪПВАМЕ Я:
  91. USE TRADECOMPANY
  92.  
  93. --ПРОМЕНЯМЕ КОЛАЦИЯТА И (АКО ДАННИТЕ, КОИТО ЩЕ ВЪВЕЖДАМЕ ЩЕ БЪДАТ НА КИРИЛИЦА)
  94. ALTER DATABASE CURRENT COLLATE CYRILLIC_GENERAL_CI_AI
  95.  
  96. ---СЪЗДАВАМЕ ТАБЛИЦИТЕ В БАЗАТА ДАННИ:
  97.  
  98. CREATE TABLE REGIONS
  99. (
  100.     REGION_ID SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1),
  101.     NAME VARCHAR(25) NOT NULL UNIQUE
  102. )
  103.  
  104. CREATE TABLE COUNTRIES
  105. (
  106.     COUNTRY_ID CHAR(2) NOT NULL PRIMARY KEY,
  107.     NAME VARCHAR(40) NOT NULL,
  108.     REGION_ID SMALLINT NULL,
  109.     CONSTRAINT FK_COUNTRIES_REGIONS FOREIGN KEY (REGION_ID)
  110.         REFERENCES REGIONS(REGION_ID)
  111. )
  112.  
  113. CREATE TABLE CUSTOMERS
  114. (
  115.     CUSTOMER_ID NUMERIC(6) NOT NULL PRIMARY KEY,
  116.     COUNTRY_ID CHAR(2) NOT NULL,
  117.     FNAME VARCHAR(20) NOT NULL,
  118.     LNAME VARCHAR(20) NOT NULL,
  119.     ADDRESS TEXT NULL,
  120.     EMAIL VARCHAR(30) NULL,
  121.     GENDER CHAR(1) NULL DEFAULT 'M' CHECK (GENDER IS NULL OR (GENDER IN('M','F')))
  122. )
  123.  
  124. ALTER TABLE CUSTOMERS
  125. ADD CONSTRAINT FK_CUSTOMERS_COUNTRIES FOREIGN KEY (COUNTRY_ID)
  126.     REFERENCES COUNTRIES(COUNTRY_ID)
  127.  
  128. CREATE TABLE JOBS
  129. (
  130.     JOB_ID VARCHAR(10) NOT NULL PRIMARY KEY,
  131.     JOB_TITLE VARCHAR(35) NOT NULL,
  132.     MIN_SALARY NUMERIC(6) NULL,
  133.     MAX_SALARY NUMERIC(6) NULL
  134. )
  135.  
  136. CREATE TABLE EMPLOYEES  
  137. (
  138.     EMPLOYEE_ID INT NOT NULL PRIMARY KEY,
  139.     FNAME VARCHAR(20) NOT NULL,
  140.     LNAME VARCHAR(25) NOT NULL,
  141.     EMAIL VARCHAR(40)  NOT NULL UNIQUE,
  142.     PHONE VARCHAR(20)  NULL,
  143.     HIRE_DATE DATETIME  NOT NULL,
  144.     SALARY NUMERIC(8,2) NOT NULL CHECK(SALARY >0),
  145.     JOB_ID VARCHAR(10) NOT NULL,
  146.     MANAGER_ID INT NULL,
  147.     DEPARTMENT_ID INT NULL,
  148.  
  149.     CONSTRAINT FK_EMPL_JOB FOREIGN KEY (JOB_ID)
  150.         REFERENCES JOBS(JOB_ID),
  151.     CONSTRAINT FK_EMPL_MNG FOREIGN KEY (MANAGER_ID)
  152.         REFERENCES EMPLOYEES (EMPLOYEE_ID)
  153. )
  154.  
  155. CREATE TABLE DEPARTMENTS
  156. (
  157.     DEPARTMENT_ID INT NOT NULL,
  158.     NAME VARCHAR(30) NOT NULL,
  159.     MANAGER_ID INT NULL,
  160.     COUNTRY_ID CHAR(2) NOT NULL,
  161.     CITY VARCHAR(30) NOT NULL,
  162.     STATE VARCHAR(25),
  163.     ADDRESS VARCHAR(40),
  164.     POSTAL_CODE VARCHAR(12),
  165.  
  166.     CONSTRAINT PK_DEPT PRIMARY KEY (DEPARTMENT_ID),
  167.     CONSTRAINT FK_DEPT_COUNTRY FOREIGN KEY (COUNTRY_ID)
  168.         REFERENCES COUNTRIES(COUNTRY_ID),
  169.     CONSTRAINT FK_DEPT_MNG FOREIGN KEY (MANAGER_ID)
  170.         REFERENCES EMPLOYEES(EMPLOYEE_ID)
  171. )
  172.  
  173. ALTER TABLE EMPLOYEES
  174. ADD CONSTRAINT FK_EMPL_DEPT FOREIGN KEY (DEPARTMENT_ID)
  175.     REFERENCES DEPARTMENTS(DEPARTMENT_ID)
  176.  
  177. CREATE TABLE PRODUCTS
  178. (
  179.     PRODUCT_ID INT NOT NULL PRIMARY KEY,
  180.     NAME VARCHAR(70) NOT NULL,
  181.     PRICE NUMERIC(8,2) NOT NULL,
  182.     DESCR VARCHAR(2000) NULL
  183.  )
  184.  
  185. CREATE TABLE ORDERS
  186. (
  187.     ORDER_ID INT NOT NULL PRIMARY KEY,
  188.     ORDER_DATE DATETIME NOT NULL,
  189.     CUSTOMER_ID NUMERIC(6) NOT NULL FOREIGN KEY REFERENCES CUSTOMERS,
  190.     EMPLOYEE_ID INT NOT NULL FOREIGN KEY REFERENCES EMPLOYEES,
  191.     SHIP_ADDRESS VARCHAR(150) NULL,
  192.  
  193.     --CONSTRAINT FK_ORD_CUST FOREIGN KEY (CUSTOMER_ID)
  194.     --REFERENCES CUSTOMERS(CUSTOMER_ID),
  195.     --CONSTRAINT FK_ORD_EMP FOREIGN KEY (EMPLOYEE_ID)
  196.     --REFERENCES EMPLOYEES(EMPLOYEE_ID)
  197. )
  198.  
  199. CREATE TABLE ORDER_ITEMS
  200. (
  201.     ORDER_ID INT NOT NULL,
  202.     PRODUCT_ID INTEGER NOT NULL,
  203.     PRIMARY KEY(ORDER_ID, PRODUCT_ID),
  204.     UNIT_PRICE NUMERIC(8,2) NOT NULL,
  205.     QUANTITY NUMERIC(8) NOT NULL,
  206.  
  207.     CONSTRAINT FK_OI_PRODUCT FOREIGN KEY (PRODUCT_ID)
  208.         REFERENCES PRODUCTS(PRODUCT_ID),
  209.     CONSTRAINT FK_OI_ORDERS FOREIGN KEY (ORDER_ID)
  210.         REFERENCES ORDERS(ORDER_ID)
  211.             ON DELETE CASCADE ON UPDATE CASCADE
  212. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement