Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.86 KB | None | 0 0
  1. CREATE DATABASE trens;
  2.  
  3. USE trens;
  4.  
  5. CREATE TABLE Engenheiro (
  6.     codigo INTEGER NOT NULL AUTO_INCREMENT,
  7.     nome VARCHAR(30) NOT NULL,
  8.     PRIMARY KEY(codigo)
  9. );
  10.  
  11. CREATE TABLE TremLocal (
  12.     id INTEGER NOT NULL AUTO_INCREMENT,
  13.     engenheiro INTEGER NOT NULL,
  14.     PRIMARY KEY(id),
  15.     FOREIGN KEY(engenheiro) REFERENCES Engenheiro(codigo)
  16. );
  17.  
  18. CREATE TABLE TremExpresso (
  19.     id INTEGER NOT NULL AUTO_INCREMENT,
  20.     engenheiro INTEGER NOT NULL,
  21.     PRIMARY KEY(id),
  22.     FOREIGN KEY(engenheiro) REFERENCES Engenheiro(codigo)
  23. );
  24.  
  25. CREATE TABLE Estacao (
  26.     nome VARCHAR(30) NOT NULL,
  27.     endereco VARCHAR(30) NOT NULL,
  28.     tipo ENUM('L', 'E'),
  29.     PRIMARY KEY(nome)
  30. );
  31.  
  32. CREATE TABLE EstacaoLocal (
  33.     nome VARCHAR(30) NOT NULL,
  34.     PRIMARY KEY(nome),
  35.     FOREIGN KEY(nome) REFERENCES Estacao(nome)
  36. );
  37.  
  38. CREATE TABLE EstacaoExpressa (
  39.     nome VARCHAR(30) NOT NULL,
  40.     PRIMARY KEY(nome),
  41.     FOREIGN KEY(nome) REFERENCES Estacao(nome)
  42. );
  43.  
  44. CREATE TABLE ParadaTremLocal (
  45.     trem INTEGER NOT NULL,
  46.     estacao VARCHAR(30) NOT NULL,
  47.     HoraIda TIME NOT NULL,
  48.     HoraVolta TIME NOT NULL,
  49.     PRIMARY KEY(trem, estacao),
  50.     FOREIGN KEY(trem) REFERENCES TremLocal(id),
  51.     FOREIGN KEY(estacao) REFERENCES Estacao(nome)
  52. );
  53.  
  54. CREATE TABLE ParadaTremExpresso (
  55.     trem INTEGER NOT NULL,
  56.     estacao VARCHAR(30) NOT NULL,
  57.     horaida TIME NOT NULL,
  58.     horavolta TIME NOT NULL,
  59.     PRIMARY KEY(trem, estacao),
  60.     FOREIGN KEY(trem) REFERENCES TremExpresso(id),
  61.     FOREIGN KEY(estacao) REFERENCES EstacaoExpressa(nome)
  62. );
  63.  
  64. -- POPULANDO AS TABELAS
  65.  
  66. INSERT INTO Engenheiro(nome) VALUES
  67. ('Rafael Vales'),
  68. ('Gustavo Felix'),
  69. ('Bill Gates');
  70.  
  71. INSERT INTO TremLocal(engenheiro) VALUES
  72. ('2'), ('1'), ('2'), ('3'), ('2');
  73.  
  74. INSERT INTO TremExpresso(engenheiro) VALUES
  75. ('3'), ('1'), ('2'), ('1');
  76.  
  77. INSERT INTO Estacao(nome, endereco, tipo) VALUES
  78. ('Estacao Local Um', 'Rua Vermelha', 'L'),
  79. ('Estacao Local Dois', 'Rua Branca', 'L'),
  80. ('Estacao Expressa Um', 'Rua Verde', 'E'),
  81. ('Estacao Local Tres', 'Rua Amarela', 'L'),
  82. ('Estacao Expressa Dois', 'Rua Laranja', 'E');
  83.  
  84. INSERT INTO EstacaoLocal(nome) VALUES
  85. ('Estacao Local Um'),
  86. ('Estacao Local Dois'),
  87. ('Estacao Local Tres');
  88.  
  89. INSERT INTO EstacaoExpressa(nome) VALUES
  90. ('Estacao Expressa Um'),
  91. ('Estacao Expressa Dois');
  92.  
  93. INSERT INTO ParadaTremLocal(trem, estacao, horaida, horavolta) VALUES
  94. ('1', 'Estacao Local Tres', '08:00', '10:30'),
  95. ('2', 'Estacao Local Dois', '10:00', '12:00'),
  96. ('3', 'Estacao Expressa Dois', '14:30', '16:15'),
  97. ('1', 'Estacao Expressa Um', '16:00', '18:30'),
  98. ('5', 'Estacao Local Um', '17:15', '19:45');
  99.  
  100. INSERT INTO ParadaTremExpresso(trem, estacao, horaida, horavolta) VALUES
  101. ('2', 'Estacao Expressa Um', '04:30', '11:00'),
  102. ('4', 'Estacao Expressa Dois', '12:26', '14:00'),
  103. ('1', 'Estacao Expressa Um', '18:00', '23:00');
  104.  
  105. SELECT * FROM ParadaTremExpresso;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement