Advertisement
YavorGrancharov

Table Relations - Exercise

Oct 21st, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.88 KB | None | 0 0
  1. 01. One-To-One Relationship
  2. create table persons(
  3.     person_id INT NOT NULL AUTO_INCREMENT,
  4.     first_name VARCHAR(50),
  5.     salary DECIMAL(10 , 2 ),
  6.     passport_id INT UNIQUE NOT NULL,
  7.     constraint pk_persons primary key (person_id)    
  8. );
  9. create table passports(
  10.   passport_id INT not null,
  11.   passport_number varchar(8),
  12.   constraint pk_passports primary key (passport_id)
  13. );
  14.  
  15. ALTER TABLE persons ADD CONSTRAINT fk_persons_passports
  16. FOREIGN KEY (passport_id)
  17. REFERENCES passports(passport_id);
  18.  
  19. insert into passports values(101,'N34FG21B'),(102,'K65LO4R7'),(103,'ZE657QP2');
  20. insert into persons values(1,'Roberto',43300,102),(2,'Tom',56100,103),(3,'Yana',60200,101);
  21. -------------------
  22. 02. One-To-Many Relationship
  23. CREATE TABLE `manufacturers`(
  24.     manufacturer_id INT PRIMARY KEY AUTO_INCREMENT,
  25.     name VARCHAR(20),
  26.     established_on DATETIME
  27. );
  28. CREATE TABLE `models`(
  29.     model_id INT PRIMARY KEY AUTO_INCREMENT,
  30.     name VARCHAR(20),
  31.     manufacturer_id INT
  32. );
  33.  
  34. ALTER TABLE `models`
  35. ADD CONSTRAINT fk_manufacturer_model
  36. FOREIGN KEY (manufacturer_id) REFERENCES `manufacturers`(manufacturer_id);
  37.  
  38. INSERT INTO `manufacturers`(manufacturer_id,name,established_on)
  39. VALUES (1,'BMW','1916-03-01'),(2,'Tesla','2003-01-01'),(3,'Lada','1966-05-01');
  40. INSERT INTO `models`(model_id,name,manufacturer_id)
  41. VALUES (101,'X1',1),(102,'i6',1),(103,'Model S',2),(104,'Model X',2),
  42. (105,'Model 3',2),(106,'Nova',3);
  43. ------------------
  44. 03. Many-To-Many Relationship
  45. CREATE TABLE `students`(
  46.     student_id INT PRIMARY KEY AUTO_INCREMENT,
  47.     name VARCHAR(20)
  48. );
  49. INSERT INTO `students`(student_id,name)
  50. VALUES (1,'Mila'),(2,'Toni'),(3,'Ron');
  51.  
  52. CREATE TABLE `exams`(
  53.     exam_id INT PRIMARY KEY AUTO_INCREMENT,
  54.     name VARCHAR(30)
  55. );
  56. INSERT INTO `exams`(exam_id,name)
  57. VALUES (101,'Spring MVC'),(102,'Neo4j'),(103,'Oracle 11g');
  58.  
  59. CREATE TABLE `students_exams`(
  60.     student_id INT,
  61.     exam_id INT
  62. );
  63. INSERT INTO `students_exams`(student_id,exam_id)
  64. VALUES (1,101),(1,102),(2,101),(3,103),(2,102),(2,103);
  65.  
  66. ALTER TABLE `students_exams`
  67. ADD CONSTRAINT pk_student_exams
  68. PRIMARY KEY (student_id,exam_id),
  69. ADD CONSTRAINT fk_student
  70. FOREIGN KEY (student_id) REFERENCES `students`(student_id),
  71. ADD CONSTRAINT fk_exam
  72. FOREIGN KEY (exam_id) REFERENCES `exams`(exam_id);
  73. --------------
  74. 04. Self-Referencing
  75. CREATE TABLE `teachers`(
  76.     teacher_id INT PRIMARY KEY AUTO_INCREMENT,
  77.     name VARCHAR(20),
  78.     manager_id INT
  79. );
  80. INSERT INTO `teachers`(teacher_id,name,manager_id)
  81. VALUES (101,'John',NULL),(102,'Maya',106),(103,'Silvia',106),
  82. (104,'Ted',105),(105,'Mark',101),(106,'Greta',101);
  83.  
  84. ALTER TABLE `teachers`
  85. ADD CONSTRAINT fk_teachers_managers
  86. FOREIGN KEY (manager_id) REFERENCES `teachers`(teacher_id);
  87. ---------------
  88. 09. Peaks in Rila
  89. SELECT mountain_range,peak_name,elevation
  90. AS `peak_elevation` FROM peaks AS p JOIN mountains AS m ON
  91. p.mountain_id=m.id WHERE mountain_range='Rila' ORDER BY `peak_elevation`
  92. DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement