Conteúdo principal
Programação
Curso: Programação > Unidade 3
Lição 2: Consultas SQL mais avançadas- Consultas mais complexas com AND/OR
- Desafio: Seletor de músicas de karaokê
- Realizando consultas em sub-consultas com IN
- Desafio: Criador de lista de reprodução
- Restringindo resultados agrupados com HAVING
- Desafio: O autor com mais palavras
- Quem realiza consultas SQL?
- Calculando resultados com CASE
- Desafio: Livro de atividades
- Projeto: Coleta de dados
© 2023 Khan AcademyTermos de usoPolítica de privacidadeAviso de cookies
Quem realiza consultas SQL?
Com apenas esse simples conjunto de registros de exercício, conseguimos criar várias consultas úteis e diferentes. Agora eu quero fazer uma pausa nas consultas para falar sobre quem normalmente faria todas as consultas, e com que finalidade.
Vamos imaginar que temos um aplicativo de exercício com milhares de usuários, armazenando dados similares à tabela de registros de exercício que usamos. Esse aplicativo permite que os usuários insiram registros diários e visualizem seu progresso em um painel pessoal:
Para um aplicativo como esse, há algumas pessoas na equipe que poderiam realizar consultas SQL:
Engenheiros de software:
Eles são aqueles que constroem o backend (a lógica do lado do servidor) e o frontend (o HTML/CSS/JS que renderizam os dados e os formulários). Os engenheiros de software poderiam usar SQL para a comunicação no lado do servidor com o banco de dados que armazena todos os dados do usuário. Eles precisaram saber como fazer quaisquer consultas necessárias para o frontend. Por exemplo, se os usuários vissem um painel quando se conectam de quanto exercício eles fizeram naquele dia, o engenheiro precisaria descobrir como fazer um
SELECT
filtrado por data e usuário. Eles precisariam descobrir como inserir dados e atualizá-los (o que veremos mais tarde)Cientistas de dados:
Eles analisam os dados e tentam aprender mais sobre os usuários, podendo dar sugestões sobre como ajudá-los a se exercitarem mais. Eles precisam de um conhecimento profundo das instruções
SELECT
, porque eles precisam realizar consultas bastante complexas para fazer as análises nas quais eles estão interessados. For example, they might use a SELECT
to analyze what percentage of users were more likely to do more exercise if they started off exercising in the morning, maybe using CASE
and GROUP BY
.Gerentes de produto:
Eles tomam as decisões na empresa, são os que olham para os dados, falam com os usuários, analisam o mercado e tentam entender como melhorar um produto para obter mais usuários, aumentar a satisfação dos usuários ou para aumentar os lucros. Eles geralmente precisam ter conhecimento de consultas SQL para que eles possam olhar para as estatísticas e de uso e tentar compreender que partes do produto estão sendo mais usadas, quais partes estão sendo usadas de formas surpreendentes e o que não está sendo usado. Eles podem usar um
SELECT
para ver quantos usuários usam o campo "heart_rate" caso estejam debatendo a remoção do campo.Como todas essas pessoas estão trabalhando na mesma empresa, eles podem e devem compartilhar seus conhecimentos sobre como usar SQL em seus bancos de dados uns com os outros. Nem todos precisam ser experts em SQL, mas considerando minha experiência, muitas pessoas em uma empresa podem se beneficiar em ter um conhecimento básico de SQL, e alguns deles podem querer usar recursos mais avançados, conforme ficam mais sofisticados.
Com isso em mente, vá em frente e aprenda recursos mais avançados...!
Quer participar da conversa?
- Quais são as atribuições de um DBA?(13 votos)
- - Criação e testes de backup para garantir a recuperabilidade dos dados no caso de falha de hardware ou outros problemas severos.
- Instalar e atualizar as ferramentas do banco de dados.
- Alocar o espaço do sistema reservado ao banco e garantir um alocamento futuro no sistema.
- Saber modificar a estrutura do banco de dados.
- Saber os comandos básicos e exclusivos de cada SGBD.
- Verificar e zelar pela integridade do banco de dados.
- Ter um controle de acesso, ou privilégios, aos dados como quem pode acessar e o que pode acessar e talvez quando possa acessar.
- Garantir o acesso ao banco de dados no maior tempo possível.
- Garantir o máximo de desempenho para as consultas ao banco de dados.
- Auxiliar a equipe de desenvolvimento e a equipe de testes a maximizar o uso e desempenho do banco de dados.
- Contatar suporte técnico em caso de certos problemas com o banco de dados.(20 votos)
- Qual a diferença de SQL e mySQL?(5 votos)
- SQL é a linguagem que utilizamos para enviar instruções e dados aos sistemas gerenciadores de banco de dados (SGBD) como o MySQL, dentre outros:
- MariaDB (fork do MySQL)
- Oracle
- Firebird
- PostgreSQL
- Microsoft SQL Server
- etc
Ou seja, a maioria dos SGBD citados acima utilizam a linguagem SQL e seus subconjuntos:
- DDL (create table, alter table, drop table, etc)
- DML (insert, update, delete, query)
- DCL (grant, revoke)
- DTL (start transaction, commit, rollback)
Além de instruções específicas de cada SGBDs.(20 votos)
- Por qual motivo a linguagem SQL é utilizada em análises de Big Data?(7 votos)
- Ótima pergunta. Eu acredito que por ser confiável, muita gente de diversas áreas conhecer(então podem trabalhar uns com os outros) e por ser razoavelmente fácil de entender(apesar de que as aulas daqui são num nível altíssimo, o que ajuda demais).
Ou seja: isso é o que acho, não o que sei.
Além disso, como você viu, é mais ou menos simples agrupar colunas e ordená-las para encontrar padrões rapidamente. Se for usar outras ferramentas(tipo java ou python), acredito que o SQL interaja bem com elas, o que talvez contribua para isso. Eu sei que com PHP(que é usado mais p/ internet) ele interage bem.(12 votos)
- É possível a construção de um sistema todo aqui no site? Ou é possível baixar o software para a maquina? como compilar o sistema?(4 votos)
- Gostaria de saber também sobre o analista e o desenvolvedor de sistemas(3 votos)
- O Analista de Sistemas tem a como principal função entender a necessidade do cliente, seja na criação ou atualização de um produto (site / sistema / app), e traduzi-la, de forma técnica, ao Desenvolvedor do Sistema que irá "colocar a mão na massa" codificando o sistema na linguagem de programação apropriada.
Vale lembrar que, em muitas vezes, o Analista de Sistemas pode ser o desenvolvedor de sistemas ou ao contrário.(6 votos)
- Cientistas de dados é a profissão de maior interesse em 2018, aprender SQL é um dos primeiros passos para quem quer ser um.(3 votos)
- Gostaria de saber mais sobre SQL da oracle ?(2 votos)
- este etapa não passa ja fiz umas 20 formas diferente não passa
Desafio: Pedidos dos clientes
(Relatar um problema)
Etapa 2
Agora, crie outra consulta que vai resultar em uma linha para cada cliente, com seu nome name, seu emaile a quantia total de dinheiro que ele gastou com pedidos. Ordene as linhas de acordo com o dinheiro gasto, do que gastou mais para o que gastou menos.
(Dica: você sempre deve usar GROUP BY na coluna com maior probabilidade de ser única em uma linha).
select
c.name,
c.email
--o.price
--count(o.item) as total,
--sum(o.price) as price
from customers c
LEFT OUTER JOIN
orders o on o.customer_id = c.id
group by
name,
email,
--o.item
price
--HAVING SUM(o.price)
ORDER BY price desc(2 votos)- eu fiz assim
CREATE TABLE customers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT);
INSERT INTO customers (name, email) VALUES ("Doctor Who", "doctorwho@timelords.com");
INSERT INTO customers (name, email) VALUES ("Harry Potter", "harry@potter.com");
INSERT INTO customers (name, email) VALUES ("Captain Awesome", "captain@awesome.com");
CREATE TABLE orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
customer_id INTEGER,
item TEXT,
price REAL);
INSERT INTO orders (customer_id, item, price)
VALUES (1, "Sonic Screwdriver", 1000.00);
INSERT INTO orders (customer_id, item, price)
VALUES (2, "High Quality Broomstick", 40.00);
INSERT INTO orders (customer_id, item, price)
VALUES (1, "TARDIS", 1000000.00);
select customers.name,customers.email, orders.item,orders.price from customers LEFT OUTER JOIN orders on customers.id = orders.customer_id;
select customers.name,customers.email, sum(orders.price) total from customers LEFT OUTER JOIN orders on customers.id = orders.customer_id group by customers.name order by orders.price desc;(2 votos)
- pessoas que trabalham em TI(tecnologia da informação) utilizam SQL?(1 voto)
- Trabalhar em TI pode ser qualquer coisa que seja com tecnologia (hardware ou software), desde balconista da loja de celulares até o dono da amazon. SQL é usada para banco de dados, pense em banco de dados como se fosse planilhas só que mais complexas, como matrizes de planilhas, isso é TI também.(1 voto)
- O Analista e desenvolvedor de sistema, tem que ter uma preferencia pra um banco de DADOS.(1 voto)