Você está na página 1de 4

//////FUNÇÕES DE AGREGAÇÃO

SELECT
COUNT (id),
SUM (id),
MAX (id),
MIN (id),
AVG (id),
ROUND(AVG(ID),2)
FROM alunos
-----------------------------------------------------------------------------------
--------------------
SELECT * FROM alunos
SELECT * FROM cursos

SELECT *
FROM alunos
WHERE nome LIKE 'A%'

SELECT *
FROM alunos
WHERE nome LIKE '%P%'

SELECT *
FROM alunos
WHERE nome LIKE '_na'

SELECT *
FROM alunos
WHERE id IN(2,5)

SELECT *
FROM alunos
JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
JOIN cursos ON cursos.id = aluno_curso.curso_id

SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS


"COD_CURSO"
FROM alunos
JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
JOIN cursos ON cursos.id = aluno_curso.curso_id

SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS


"COD_CURSO"
FROM alunos
JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
JOIN cursos ON cursos.id = aluno_curso.curso_id
WHERE cursos.nome = 'PHP'

//////////Consulta com LEFT JOIN


SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS
"COD_CURSO"
FROM alunos
LEFT JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
LEFT JOIN cursos ON cursos.id = aluno_curso.curso_id

//////////Consulta com RIGHT JOIN


SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS
"COD_CURSO"
FROM alunos
RIGHT JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
RIGHT JOIN cursos ON cursos.id = aluno_curso.curso_id

//////////Consulta com FULL JOIN


SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS
"COD_CURSO"
FROM alunos
FULL JOIN aluno_curso ON aluno_curso.aluno_id = alunos.id
FULL JOIN cursos ON cursos.id = aluno_curso.curso_id

//////////Consulta com CROSS JOIN -> Produto Cartesiano


SELECT alunos.id AS "MATRÍCULA", alunos.nome AS "ALUNOS", cursos.nome AS
"COD_CURSO"
FROM alunos
CROSS JOIN cursos

88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888
Outras opçõs de criação de tabelas usando RESTRICT e CASCADE

O Método RESTRICT - poíbe a deleção


O Método CASCADE - deleta o dado em cascata, atingindo as demais relações também

CREATE TABLE aluno_curso(


aluno_id INTEGER,
curso_id INTEGER,

PRIMARY KEY(aluno_id, curso_id),

FOREIGN KEY (aluno_id)


REFERENCES alunos(id)
ON DELETE RESTRICT,

FOREIGN KEY (curso_id)


REFERENCES cursos(id)
ON DELETE RESTRICT,
);

Outras opçõs de criação de tabelas usando RESTRICT e CASCADE

CREATE TABLE aluno_curso(


aluno_id INTEGER,
curso_id INTEGER,

PRIMARY KEY(aluno_id, curso_id),

FOREIGN KEY (aluno_id)


REFERENCES alunos(id)
ON DELETE CASCADE,
FOREIGN KEY (curso_id)
REFERENCES cursos(id)
ON DELETE CASCADE,
);

CREATE TABLE aluno_curso(


aluno_id INTEGER,
curso_id INTEGER,

PRIMARY KEY(aluno_id, curso_id),

FOREIGN KEY (aluno_id)


REFERENCES alunos(id),

FOREIGN KEY (curso_id)


REFERENCES cursos(id)
);

CREATE TABLE alunos(


id SERIAL PRIMARY KEY,
nome VARCHAR(200) NOT NULL
);

CREATE TABLE cursos(


id SERIAL PRIMARY KEY,
nome VARCHAR(50) NOT NULL
);

INSERT INTO aluno_curso (aluno_id, curso_id) VALUES (1,1);


INSERT INTO aluno_curso (aluno_id, curso_id) VALUES (2,2);
INSERT INTO aluno_curso (aluno_id, curso_id) VALUES (3,3);
INSERT INTO aluno_curso (aluno_id, curso_id) VALUES (1,2);
INSERT INTO aluno_curso (aluno_id, curso_id) VALUES (1,3);

INSERT INTO alunos(nome) VALUES('Louro José');


INSERT INTO alunos(nome) VALUES('Ana Maria Braga');
INSERT INTO alunos(nome) VALUES('Patricia Pillar');
INSERT INTO alunos(nome) VALUES('Ana Paula Arósio');
INSERT INTO alunos(nome) VALUES('Andréia Beltão');
INSERT INTO alunos(nome) VALUES('Tarcísio Meira');

INSERT INTO cursos (nome) VALUES('HTML');


INSERT INTO cursos (nome) VALUES('JavaScript');
INSERT INTO cursos (nome) VALUES('PHP');
INSERT INTO cursos (nome) VALUES('Angular');
INSERT INTO cursos (nome) VALUES('CSS');

88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888
UPDATE COM CASCADE

CREATE TABLE aluno_curso(


aluno_id INTEGER,
curso_id INTEGER,

PRIMARY KEY(aluno_id, curso_id),

FOREIGN KEY (aluno_id)


REFERENCES alunos(id)
ON DELETE CASCADE
ON UPDATE CASCADE,

FOREIGN KEY (curso_id)


REFERENCES cursos(id)
ON DELETE CASCADE,
);

88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888
CREATE TABLE aluno_curso(
aluno_id INTEGER,
curso_id INTEGER,

PRIMARY KEY (aluno_id, curso_id),

FOREIGN KEY (aluno_id)


REFERENCES alunos(id)
ON DELETE RESTRICT
ON UPDATE CASCADE,

FOREIGN KEY (curso_id)


REFERENCES cursos(id)
ON DELETE RESTRICT
ON UPDATE CASCADE

);
88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888888888888888888888888888888888888888888888888888888---------------------------
----------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------
-----------------------------------------------------------------------------------
--------------------

Você também pode gostar