Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 17 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,22 @@
"screencastMode.onlyKeyboardShortcuts": true,
"terminal.integrated.fontSize": 18,
"window.zoomLevel": 3,
"workbench.activityBar.visible": true,
"workbench.colorTheme": "Visual Studio Dark",
"workbench.fontAliasing": "antialiased",
"workbench.statusBar.visible": true
}
"workbench.statusBar.visible": true,
"sqltools.connections": [
{
"previewLimit": 50,
"driver": "SQLite",
"name": "chinookConnection",
"group": "chinookGroup",
"database": "chinook.db"
}
],
"sqltools.useNodeRuntime": true,
"sqltools.results.pageSize": 50,
"sqltools.results.limit": 50,
"githubPullRequests.ignoredPullRequestBranches": [
"main"
]
}
Binary file modified chinook.db
Binary file not shown.
Empty file added chinookConnection.session.sql
Empty file.
5 changes: 5 additions & 0 deletions exercicios/1-CRUD/1-criar-tabela.sql
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
-- Crie uma nova tabela no banco de dados
CREATE TABLE salario_classe (
id_salario INTEGER PRIMARY KEY AUTOINCREMENT,
salario INTEGER,
nivel VARCHAR(50)
);
5 changes: 4 additions & 1 deletion exercicios/1-CRUD/2-alterar-tabelas.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
-- Na tabela salario_classe altere o atributo "nivel" para que seu tipo de dado seja varchar, com tamanho máximo de 50 caracteres

alter table salario_classe
add nivel varchar(50);
-- Na tabela employees, adicione uma coluna para receber o id_salario
ALTER TABLE employees
ADD id_salario INTEGER;
11 changes: 11 additions & 0 deletions exercicios/1-CRUD/3-inserir-dados.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
-- Insira 3 classes salariais na tabela salario_classe
INSERT INTO salario_classe (id_salario, salario, nivel)
VALUES
(1, 3500, 'estagiaria'),
(2, 4700, 'iniciante - grade 1'),
(3, 5300, 'iniciante - grade 2');

SELECT * FROM salario_classe;


-- Insira 1 nova classe salarial, sem declarar o atributo id_salario
INSERT INTO salario_classe (salario, nivel)
VALUES
(8500, 'gerencia'),
(10700, 'coordenação de area');
14 changes: 14 additions & 0 deletions exercicios/1-CRUD/4-consultar-dados.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
-- Crie uma consulta que retorne apenas as colunas "Name", "Composer" e "AlbumId" da tabela "tracks"
SELECT
Name,
Composer,
AlbumId
From
tracks;


-- Repita a consulta anterior e dessa vez filtre os registros para que retornem apenas as tracks com o atributo "AlbumId" igual a 1
SELECT
Name,
Composer,
AlbumId
From
tracks
where
AlbumId=1;
12 changes: 10 additions & 2 deletions exercicios/1-CRUD/5-atualizar-dados.sql
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
-- Atualize a classe salarial para a pessoa cujo EmployeeId é igual a 6. Lembre-se que a classe salarial deve corresponder o id_salario da tabela salario_classe

update employees
set id_salario = 3
where EmployeeId = 6;

-- Atualize a classe salarial e o LastName da pessoa cujo EmployeeId é igual a 2. Lembre-se que a classe salarial deve corresponder o id_salario da tabela salario_classe

update employees
set id_salario = 4,
LastName = 'Silva'
where EmployeeId = 2;

-- Atualize a classe salarial 1 para as pessoas cuja coluna id_salario continua NULL. Lembre-se que a classe salarial deve corresponder o id_salario da tabela salario_classe
update employees
set id_salario = 1
where id_salario is null;
5 changes: 4 additions & 1 deletion exercicios/1-CRUD/6-remover-dados.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
-- Da tabela invoice, remova o invoice cujo o InvoiceID corresponda ao valor 33

delete from invoices
where invoiceid = 33;

-- Da tabela invoice, remova todos os invoices cujo o Total seja menor do que 1
delete from invoices
where total < 1;
29 changes: 26 additions & 3 deletions exercicios/2-construindo-consultas/1-operadores.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
-- Construa uma consulta para a tabela "invoice_items" que retorne apenas as colunas InvoiceId, TrackId e UnitPrice.

SELECT
invoiceId,
trackId,
UnitPrice
from
invoice_items;
-- Inclua nessa consulta mais três colunas, cada uma como resultado de uma operação aritmética diferente

SELECT
invoiceId,
trackId,
UnitPrice,
unitPrice + 1.00,
unitPrice * 3,
unitPrice / 2
from
invoice_items;
-- Incremente essa consulta utilizando a cláusula WHERE, a qual restringirá o resultado apenas para linhas cujo o InvoiceId seja maior do que 20 e menor ou igual a 30

SELECT
invoiceId,
trackId,
UnitPrice,
unitPrice + 1.00,
unitPrice * 3,
unitPrice / 2
from
invoice_items
where
invoiceId >20 and invoiceId <= 30;
16 changes: 14 additions & 2 deletions exercicios/2-construindo-consultas/2-valores-unicos-alias.sql
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
-- Para a tabela "customers" crie uma consulta que retorne apenas os valores únicos da coluna Country

SELECT DISTINCT
COUNTRY
FROM
customers;

-- Na consulta anterior, adicione a coluna Company para verificar as combinações únicas entre empresas e países

SELECT DISTINCT
COUNTRY,
COMPANY
FROM
customers;

-- Nesta mesma consulta, atribua um alias com título em português para cada coluna
SELECT DISTINCT
COUNTRY as 'País',
COMPANY as 'Companhia'
FROM
customers;
13 changes: 12 additions & 1 deletion exercicios/2-construindo-consultas/3-condicional.sql
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
-- Escreva uma consulta que retorne o nome por extenso dos estados brasileiros

SELECT DISTINCT
COUNTRY,
STATE,
CASE
WHEN STATE = 'SP' THEN 'SÃO PAULO'
WHEN STATE = 'RJ' THEN 'RIO DE JANEIRO'
ELSE 'NÃO IDENTIFICADO'
END AS 'estado'
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';
Original file line number Diff line number Diff line change
@@ -1,16 +1,68 @@
-- Crie uma consulta que retorne as colunas CustomerId, FirstName, LastName e Address das pessoas consumidoras brasileiras

SELECT
CUSTOMERID AS id,
FIRSTNAME AS NOME,
LASTNAME AS SOBRENOME,
ADDRESS AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';

-- Na consulta anterior, converta o sobrenome para letras maiúsculas


SELECT
CUSTOMERID AS id,
FIRSTNAME AS NOME,
UPPER(LASTNAME) AS SOBRENOME,
ADDRESS AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';
-- Na consulta anterior, converta o nome para letras minúsculas

SELECT
CUSTOMERID AS id,
LOWER(FIRSTNAME) AS NOME,
UPPER(LASTNAME) AS SOBRENOME,
ADDRESS AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';

-- Na consulta anterior, adicione uma coluna cujos os dados seja o resultado da concatenação das colunas de nome e sobrenome

SELECT
CUSTOMERID AS id,
LOWER(FIRSTNAME) AS NOME,
UPPER(LASTNAME) AS SOBRENOME,
FIRSTNAME || ' ' || LASTNAME AS NOME_COMPLETO,
ADDRESS AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';

-- Na consulta anterior, substitua "Av." por "Avenida" na coluna endereço

SELECT
CUSTOMERID AS id,
LOWER(FIRSTNAME) AS NOME,
UPPER(LASTNAME) AS SOBRENOME,
FIRSTNAME || ' ' || LASTNAME AS NOME_COMPLETO,
REPLACE(ADDRESS, 'Av.','AVENIDA') AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Brazil';

-- Na consulta anterior, utilize o símbolo de coringa para construir padrões textuais
SELECT DISTINCT
CUSTOMERID AS id,
SUBSTR(FIRSTNAME,1,3) AS APELIDO,
LOWER(FIRSTNAME) AS NOME,
UPPER(LASTNAME) AS SOBRENOME,
FIRSTNAME || ' ' || LASTNAME AS NOME_COMPLETO,
REPLACE(ADDRESS, 'Av.','AVENIDA') AS ENDEREÇO
FROM
CUSTOMERS
WHERE
COUNTRY LIKE 'Bra%';
11 changes: 11 additions & 0 deletions exercicios/2-construindo-consultas/5-funcoes-agregadoras.sql
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
-- Para a tabela "invoices", crie uma consulta que retorne o país e a soma das compras realizadas nele, bem como o valor da compra mínima e máxima, a quantidade de compras realizadas e o ticket médio de cada compra.
SELECT
BILLINGCOUNTRY AS PAIS,
SUM(TOTAL) AS TOTAL_COMPRAS,
MIN(TOTAL) AS VALOR_MINIMO,
MAX(TOTAL) AS VALOR_MAXIMO,
ROUND(AVG(TOTAL),2) AS TICKET_MEDIO,
COUNT(TOTAL) AS QUANTIDADE_DE_COMPRAS
FROM INVOICES
WHERE BILLINGCOUNTRY = 'Brazil';


4 changes: 2 additions & 2 deletions gabaritos/1-CRUD/1-criar-tabela_resposta.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-- Crie uma nova tabela no banco de dados
CREATE TABLE salario_classe (
id_salario INTEGER PRIMARY KEY AUTOINCREMENT,
nivel TEXT,
salario INTEGER
salario INTEGER,
nivel VARCHAR(50)
);