-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexercicios.sql
60 lines (34 loc) · 1.69 KB
/
exercicios.sql
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
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
Dono do banco
Imagine o cenário onde queremos criar um novo banco de dados onde o usuário “dono” seja o foo_bar.
Qual das alternativas a seguir NÃO possui a sintaxe correta?
*/
CREATE DATABASE name OWNER foo_bar
CREATE DATABASE name WITH OWNER = foo_bar
> CREATE DATABASE name OWNED BY foo_bar
/*
Adicionar coluna
Conferindo a documentação (https://www.postgresql.org/docs/12/sql-altertable.html) caso precise, monte o SQL necessário para adicionar uma coluna nome, que é um VARCHAR(128) na tabela pessoa.
*/
ALTER TABLE pessoa ADD COLUMN nome VARCHAR(128);
/*
Encontre o erro
Confira a seguinte query, levando em consideração que a tabela e os campos existem.
INSERT INTO pessoa (nome, data_nascimento) VALUES ("Vinicius Dias", "1997-15-10");
Quais os erros da query?
*/
"A query está utilizando aspas duplas para delimitar os campos."
"A data está no formato errado. O correto é ANO-MÊS-DIA. Corrigindo, ficaria 1997-10-15."
/*
SQL de importação
Ao importar um arquivo utilizando o pgAdmin, por baixo dos panos ele simplesmente executa uma instrução SQL.
Qual o comando SQL executado ao importar o arquivo /pasta/arquivo.CSV para a tabela pessoa?
*/
COPY pessoa FROM '/pasta/arquivo.csv';
/*
Para saber mais: DELETE
Assim como é possível fazer INSERT ou UPDATE a partir de um SELECT também podemos realizar junções para filtrar o que queremos excluir de nossas tabelas, mas a sintaxe é um pouco diferente.
Por exemplo, para excluir todos os cursos da categoria com nome “Teste”, podemos fazer:
*/
DELETE FROM curso USING categoria
WHERE categoria.id = curso.categoria_id AND categoria.nome = 'Teste';