-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaula1.sql
More file actions
47 lines (38 loc) · 1.57 KB
/
aula1.sql
File metadata and controls
47 lines (38 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--exercicio
CREATE TABLE exercicio.aluno(
id_aluno int PRIMARY KEY,
nome TEXT NOT NULL,
num_grau INTEGER
);
CREATE TABLE exercicio.amigo(
idt_amigo1 INTEGER,
idt_amigo2 INTEGER,
FOREIGN KEY (idt_amigo1) REFERENCES exercicio.aluno(id_aluno),
FOREIGN KEY (idt_amigo2) REFERENCES exercicio.aluno(id_aluno)
);
CREATE TABLE exercicio.curtida(
idt_amigo1 INTEGER,
idt_amigo2 INTEGER,
FOREIGN KEY (idt_amigo1) REFERENCES exercicio.aluno(id_aluno),
FOREIGN KEY (idt_amigo2) REFERENCES exercicio.aluno(id_aluno)
);
INSERT INTO exercicio.aluno (nome, num_grau) VALUES ('Leandro', 3);
INSERT INTO exercicio.aluno (nome, num_grau) VALUES ('Carlos', 2);
INSERT INTO exercicio.aluno (nome, num_grau) VALUES ('Maria', 5);
-- Inserindo relacionamentos de amizade
INSERT INTO exercicio.amigo (idt_amigo1, idt_amigo2) VALUES (1, 2);
INSERT INTO exercicio.amigo (idt_amigo1, idt_amigo2) VALUES (2, 3);
-- Inserindo curtidas
INSERT INTO exercicio.curtida (id_aluno) VALUES (3);
-- INNER JOIN
SELECT * FROM exercicio.aluno
INNER JOIN exercicio.amigo ON exercicio.aluno.id_aluno = exercicio.amigo.idt_amigo1
OR exercicio.aluno.id_aluno = exercicio.amigo.idt_amigo2
INNER JOIN exercicio.curtida ON exercicio.aluno.id_aluno = exercicio.curtida.id_aluno;
-- LEFT JOIN
SELECT * FROM exercicio.aluno LEFT JOIN exercicio.curtida
ON exercicio.aluno.id_aluno = exercicio.curtida.id_aluno;
-- RIGHT JOIN
SELECT * FROM exercicio.aluno RIGHT JOIN exercicio.amigo
ON exercicio.aluno.id_aluno = exercicio.amigo.idt_amigo1
OR exercicio.aluno.id_aluno = exercicio.amigo.idt_amigo2;.