Advertisement
Coolcap5

2nd text

Mar 19th, 2024 (edited)
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.20 KB | Source Code | 0 0
  1. CREATE TABLE SALESMAN (
  2.     SALESMAN_ID NUMBER(4) PRIMARY KEY,
  3.     NAME VARCHAR(20),
  4.     CITY VARCHAR(20),
  5.     COMMISSION VARCHAR(20)
  6. );
  7.  
  8. CREATE TABLE CUSTOMER (
  9.     CUSTOMER_ID NUMBER(4) PRIMARY KEY,
  10.     CUST_NAME VARCHAR(20),
  11.     CITY VARCHAR(20),
  12.     GRADE NUMBER(3),
  13.     SALESMAN_ID NUMBER(4) REFERENCES SALESMAN(SALESMAN_ID) ON DELETE SET NULL
  14. );
  15.  
  16. CREATE TABLE ORDERS (
  17.     ORD_NO NUMBER(5) PRIMARY KEY,
  18.     PURCHASE_AMT NUMBER(10, 2),
  19.     ORD_DATE DATE,
  20.     CUSTOMER_ID NUMBER(4) REFERENCES CUSTOMER(CUSTOMER_ID) ON DELETE CASCADE,
  21.     SALESMAN_ID NUMBER(4) REFERENCES SALESMAN(SALESMAN_ID) ON DELETE CASCADE
  22. );
  23.  
  24. INSERT INTO SALESMAN VALUES (1000, 'JOHN', 'BANGALORE', '25%');
  25. INSERT INTO SALESMAN VALUES (2000, 'RAVI', 'BANGALORE', '20%');
  26. INSERT INTO SALESMAN VALUES (3000, 'KUMAR', 'MYSORE', '15%');
  27. INSERT INTO SALESMAN VALUES (4000, 'SMITH', 'DELHI', '30%');
  28. INSERT INTO SALESMAN VALUES (5000, 'HARSHA', 'HYDERABAD', '15%');
  29.  
  30. INSERT INTO CUSTOMER VALUES (10, 'PREETHI', 'BANGALORE', 100, 1000);
  31. INSERT INTO CUSTOMER VALUES (11, 'VIVEK', 'MANGALORE', 300, 1000);
  32. INSERT INTO CUSTOMER VALUES (12, 'BHASKAR', 'CHENNAI', 400, 2000);
  33. INSERT INTO CUSTOMER VALUES (13, 'CHETHAN', 'BANGALORE', 200, 2000);
  34. INSERT INTO CUSTOMER VALUES (14, 'MAMATHA', 'BANGALORE', 400, 3000);
  35.  
  36. INSERT INTO ORDERS VALUES (50, 5000, '2017-05-04', 10, 1000);
  37. INSERT INTO ORDERS VALUES (51, 450, '2017-01-20', 10, 2000);
  38. INSERT INTO ORDERS VALUES (52, 1000, '2017-02-24', 13, 2000);
  39. INSERT INTO ORDERS VALUES (53, 3500, '2017-04-13', 14, 3000);
  40. INSERT INTO ORDERS VALUES (54, 550, '2017-03-09', 12, 2000);
  41.  
  42.  
  43. 1. COUNT the customers WITH grades above Bangalore’s average.
  44. SELECT GRADE, COUNT (DISTINCT CUSTOMER_ID)
  45. FROM CUSTOMER1
  46. GROUP BY GRADE
  47. HAVING GRADE > (SELECT AVG(GRADE)
  48. FROM CUSTOMER1
  49. WHERE CITY='BANGALORE');
  50. 18CSL58:DBMS Lab Manual 2022-23
  51.  
  52. 2. Find the name AND numbers OF ALL salesmen who had more than one customer.
  53. SELECT SALESMAN_ID, NAME
  54. FROM SALESMAN A
  55. WHERE 1 < (SELECT COUNT (*)
  56. FROM CUSTOMER1
  57. WHERE SALESMAN_ID=A.SALESMAN_ID);
  58.  
  59. 3. List ALL salesmen AND indicate those who have AND don’t have customers IN their
  60. cities (USE UNION operation.)
  61. SELECT SALESMAN.SALESMAN_ID, NAME, CUST_NAME, COMMISSION
  62. FROM SALESMAN, CUSTOMER1
  63. WHERE SALESMAN.CITY = CUSTOMER1.CITY
  64. UNION
  65. SELECT SALESMAN_ID, NAME, 'NO MATCH', COMMISSION
  66. FROM SALESMAN
  67. WHERE NOT CITY = ANY
  68. (SELECT CITY
  69. FROM CUSTOMER1)
  70. ORDER BY 2 DESC;
  71.  
  72. 4. CREATE a VIEW that finds the salesman who has the customer WITH the highest ORDER
  73. OF a DAY.
  74. CREATE VIEW ELITSALESMANAS
  75. SELECT B.ORD_DATE, A.SALESMAN_ID, A.NAME
  76. FROM SALESMAN A, ORDERS B
  77. 18CSL58:DBMS Lab Manual 2022-23
  78. RNSIT, Bangalore Page 31
  79. WHERE A.SALESMAN_ID = B.SALESMAN_ID
  80. AND B.PURCHASE_AMT=(SELECT MAX (PURCHASE_AMT)
  81. FROM ORDERS C
  82. WHERE C.ORD_DATE = B.ORD_DATE);
  83.  
  84.  
  85. 5. Demonstrate the DELETE operation BY removing salesman WITH id 1000. ALL his orders
  86. must also be deleted.
  87. USE ON DELETE CASCADE at the END OF FOREIGN KEY definitions while creating child TABLE
  88. orders AND THEN EXECUTE the following:
  89. USE ON DELETE SET NULL at the END OF FOREIGN KEY definitions while creating child TABLE
  90. customers AND THEN executes the following:
  91.  
  92. DELETE FROM SALESMAN
  93. WHERE SALESMAN_ID=1000;
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement