Advertisement
bookishwyrm

SQL exercise

Feb 18th, 2020
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. CREATE TABLE `instructor` (
  2. `id` INTEGER,
  3. `first_name` VARCHAR(50),
  4. `last_name` VARCHAR(50),
  5. `email` VARCHAR(50),
  6. `zip_code` VARCHAR(20),
  7. CONSTRAINT `pk_instructor_id`
  8. PRIMARY KEY(`id`)
  9. );
  10.  
  11.  
  12. CREATE TABLE `research` (
  13. `id` INTEGER,
  14. `name` VARCHAR(50),
  15. `description` VARCHAR(500),
  16. `instructor_id` INTEGER,
  17.  
  18. CONSTRAINT `pk_research_id`
  19. PRIMARY KEY(`id`),
  20. CONSTRAINT `fk_research_instructor_id`
  21. FOREIGN KEY(`instructor_id`)
  22. REFERENCES `instructor`(`id`)
  23. );
  24.  
  25.  
  26. CREATE TABLE `teaching_team` (
  27. `id` INTEGER,
  28. `name` VARCHAR(50),
  29.  
  30. CONSTRAINT `pk_teaching_team_id`
  31. PRIMARY KEY(`id`)
  32. );
  33.  
  34.  
  35.  
  36. CREATE TABLE `teaching_team_instructor` (
  37. `teaching_team_id` INTEGER,
  38. `instructor_id` INTEGER,
  39.  
  40. CONSTRAINT `pk_teaching_team_id_instructor_id`
  41. PRIMARY KEY (`teaching_team_id`, `instructor_id`),
  42. CONSTRAINT `fk_teaching_team_instructor_teaching_team_id`
  43. FOREIGN KEY (`teaching_team_id`)
  44. REFERENCES `teaching_team`(`id`),
  45. CONSTRAINT `fk_teaching_team_insructor_instructor_id`
  46. FOREIGN KEY (`instructor_id`)
  47. REFERENCES `instructor`(`id`)
  48. );
  49.  
  50.  
  51. CREATE TABLE `advanced_technology_course` (
  52. `id` INTEGER,
  53. `name` VARCHAR(50),
  54. `description` VARCHAR(500),
  55. `teaching_team` INTEGER,
  56.  
  57. CONSTRAINT `pk_advanced_technology_course`
  58. PRIMARY KEY(`id`),
  59. CONSTRAINT `fk_advanced_technology_course_teaching_team`
  60. FOREIGN KEY(`teaching_team`)
  61. REFERENCES `teaching_team`(`id`)
  62. );
  63.  
  64.  
  65.  
  66. CREATE TABLE `training_session` (
  67. `id` INTEGER,
  68. `course_id` INTEGER,
  69. `start_time` TIME,
  70. `date` DATE,
  71.  
  72. CONSTRAINT `pk_training_session_id`
  73. PRIMARY KEY(`id`),
  74. CONSTRAINT `fk_training_session_course_id`
  75. FOREIGN KEY(`course_id`)
  76. REFERENCES `advanced_technology_course`(`id`)
  77. );
  78.  
  79.  
  80.  
  81. REATE TABLE `trainee`(
  82. `id` INTEGER,
  83. `first_name` VARCHAR(50),
  84. `last_name` VARCHAR(50),
  85. `email` VARCHAR(50),
  86. `zip_code` VARCHAR(20),
  87. `enrolled` DATETIME,
  88. CONSTRAINT `pk_trainee_id`
  89. PRIMARY KEY(`id`)
  90. );
  91.  
  92.  
  93.  
  94. CREATE TABLE `training_session_trainee` (
  95. `trainee_id` INTEGER,
  96. `training_session_id` INTEGER,
  97.  
  98. CONSTRAINT `pk_training_session_trainee_trainee_id_training_session_id`
  99. PRIMARY KEY(`trainee_id`,`training_session_id`),
  100. CONSTRAINT `fk_training_session_trainee_trainee_id`
  101. FOREIGN KEY(`trainee_id`)
  102. REFERENCES `trainee`(`id`),
  103. CONSTRAINT `fk_training_session_trainee_training_session_id`
  104. FOREIGN KEY(`training_session_id`)
  105. REFERENCES `training_session`(`id`)
  106. );
  107.  
  108.  
  109.  
  110. ALTER TABLE `instructor`
  111. MODIFY COLUMN `email` VARCHAR(50) NOT NULL;
  112.  
  113. ALTER TABLE `trainee`
  114. MODIFY COLUMN `email` VARCHAR(50) NOT NULL;
  115.  
  116.  
  117.  
  118. ALTER TABLE `research`
  119. MODIFY COLUMN `description` VARCHAR(500) DEFAULT 'N/A';
  120.  
  121. ALTER TABLE `advanced_technology_course`
  122. MODIFY COLUMN `description` VARCHAR(500) DEFAULT 'N/A';
  123.  
  124.  
  125.  
  126. ALTER TABLE `training_session`
  127. MODIFY COLUMN `start_time` TIME NOT NULL;
  128. ADD CONSTRAINT `chk_training_session_start_time`
  129. CHECK (`start_time` BETWEEN 9:00:00 AND 17:00:00);
  130.  
  131.  
  132.  
  133. ALTER TABLE `instructor`
  134. ADD CONSTRAINT `chk_instructor_zip_code`
  135. CHECK (`zip_code` LIKE '??? ???');
  136.  
  137. ALTER TABLE `trainee`
  138. ADD CONSTRAINT `chk_trainee_zip_code`
  139. CHECK (`zip_code` LIKE '?#? #?#');
  140.  
  141.  
  142.  
  143.  
  144.  
  145. ALTER TABLE `trainee`
  146. MODIFY COLUMN `enrolled` DATETIME DEFAULT NOW();
  147.  
  148.  
  149.  
  150.  
  151.  
  152. SELECT COUNT(*) FROM `research`
  153. GROUP BY `instructor_id`;
  154.  
  155. SELECT R.`instructor_id` FROM `research` R INNER JOIN `teaching_team_instructor` T
  156. ON R.`instructor_id` = T.`instructor_id`;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement