Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL Tutorial - Aprendendo A Usar A Linguagem SQL
SQL Tutorial - Aprendendo A Usar A Linguagem SQL
Tutorial SQL
Aprenda a usar a linguagem SQL para execução de consultas e
subconsultas.
Artigos
Banco de Dados
Tutorial SQL
Neste artigo você terá a oportunidade de aprender a usar a linguagem SQL para
execução de consultas e subconsultas. Serão apresentados os conceitos
necessários
Utilizamos para
cookies a realização
para demelhor
fornecer uma consultas atravéspara
experiência de um encadeamento
nossos usuários,
Aceitar
consulte nossa política
especialmente de privacidade.
preparado para tornar interessante o seu aprendizado. 23
Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal
Tabela 1. Cliente
As linhas de uma tabela são conhecidas por registros ou tuplas. Já as colunas, por
campos ou atributos. No desenho, a primeira linha representa os nomes das
colunas.
Dica SQL. Em expressões SQL, é possível referenciar o conteúdo de qualquer coluna através
tabela CLIENTE , pode-se usar CLIENTE.CPF . A maioria dos SGBDs permite que o usuário
omita o nome da tabela, exigindo apenas a sintaxe completa no caso da existência de colunas
A chave primária serve para identificar de forma única cada linha de uma
tabela. Para isso, é utilizada uma coluna ou uma combinação de colunas da
própria tabela. Quando uma chave primária é escolhida, o próprio SGBD se
encarrega de realizar as verificações necessárias para manter a integridade
dos dados (a chave primária não pode conter valor nulo). Por exemplo, no
modelo composto pelas Tabelas 1 e 2, a chave primária da tabela CLIENTE éo
campo Código e a da tabela FONE é representada pelos campos Código, Fone
e Tipo.
A chave estrangeira serve para realizar ligações entre tabelas. Tais ligações,
ou relacionamentos, são essenciais para ajudar a manter íntegros os dados
do banco de dados. Por exemplo, na tabela FONE o campo Código representa
a chave estrangeira. Na prática, a tabela FONE depende da tabela CLIENTE .
Tabela 2. Fone
A vantagem da linguagem SQL reside no fato dela ser declarativa, ou seja, todo o
esforço de codificação de nossa parte é resumido na escrita de solicitações que
são submetidas ao SGBD, não importando (pelo menos se não pensarmos em
otimização de consultas) a forma que o mesmo utilizará para recuperar as
informações.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
Figura 1. Sintaxe SQL para a execução de consultas
A Figura 1 representa a sintaxe SQL utilizada pela maioria dos SGBD. Observe o
significado de cada comando:
1 [WHERE criteria]
É possível compor diversos critérios de filtro, usando-se para esse fim uma
combinação de operadores lógicos (AND, OR, NOT), subconsultas, operadores de
pesquisa em cadeia de caracteres, funções de data, entre outros;
1 [HAVING groupcriteria]
consulta;
Nesta parte, realizamos uma breve revisão sobre conceitos do mundo relacional
de dados, além da apresentação de uma sintaxe SQL para recuperação de
informação.
Praticando consultas
1 SELECT *
2
3 FROM CLIENTE
1 SELECT CLIENTE.*
2
3 FROM CLIENTE
Ou mesmo:
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
1 SELECT nome, cpf Aceitar
consulte nossa política de privacidade.
2 23
3
3
FROM CLIENTE
4
5
WHERE sexo=’masculino’
Exemplo 05. Listar o nome e o salário dos clientes do sexo masculino que ganham
menos de R$ 3000
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
Aqui, tornou-se necessário o uso da expressão lógica de conjunção (and), para
poder recuperar os clientes do sexo masculino (sexo=’masculino’) que ganham
menos de R$ 3000 (salario < 3000). A expressão lógica (and) faz com que o SGBD
retorne apenas as linhas que obedecem as duas condições simultaneamente.
Utilizamos representa
cookies para fornecer uma
CLIENTE.codigo=FONE.codigo o relacionamento
melhor experiência entre
para nossos as tabelas
usuários,
Aceitar
consulte nossa política de privacidade.
CLIENTE e FONE . Através desse trecho de código o SGBD filtra os registros que
23
correspondem às informações corretas de cada cliente. Já o código
tipo=’residencial’ solicita ao SGBD que sejam recuperados apenas os telefones
residenciais.
resultando numa estrutura que possui todas as colunas existentes nas tabelas
envolvidas, e quantidade de linhas igual ao produto das linhas de cada tabela (no
exemplo, 5 x 5 = 25 linhas). A Figura 1 representa esta situação.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
Funções de agregação e elaboração de
subconsultas.
1 SELECT COUNT(*)
2
3 FROM CLIENTE
1 SELECT COUNT(*)
2
3 FROM CLIENTE
4
5 WHERE sexo=’feminino’
1 SELECT AVG(salario)
Utilizamos
2 cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte
3 nossa
FROMpolítica
CLIENTEde privacidade. 23
Exemplo 03. Obter a média de salário dos clientes
Esta é uma solução simples. Bastou a utilização da função que calcula a média
(avg) a partir de um conjunto de valores (neste caso, o campo salário da tabela
CLIENTE ). Uma alternativa pode ser vista na Nota 1.
Esta solução é semelhante à do exemplo 10. Aqui, foi adicionado o campo (sexo)
na cláusula GROUP BY para que o resultado fosse calculado para o sexo masculino
e para o feminino.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
SELECT Aceitar
consulte nossa política de privacidade. 23
3
(SELECT COUNT(*) FROM CLIENTES WHERE sexo=’masculino’) AS QtdeHomens
4
5
(SELECT COUNT(*) FROM CLIENTES WHERE sexo=’feminino’) AS QtdeMulhere
O interessante desta solução é que podemos exibir resultados, dos mais simples
aos mais complexos, em uma única linha. Para isso, basta declarar um SELECT
Praticando subconsultas
Note que para sabermos o nome dos clientes sem telefone, é necessário termos
certeza de que não existe ocorrência do código do cliente na tabela FONE. Em
situações desse tipo, pode-se utilizar o operador (not) in. Observe:
1 SELECT nome
2
3 FROM CLIENTE
4
5 WHERE codigo not in
6
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
7 (SELECT codigo Aceitar
consulte nossa política de privacidade.
8 23
9
9
FROM FONE)
Exemplo 06. Obter o nome dos clientes que não possuem telefone
Exemplo 07. Obter o nome e o salário dos clientes que ganham mais que a média
salarial masculina
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
1 SELECT nome
2
3 FROM CLIENTE
4
5 WHERE salario =
6
7 (SELECT max(salario)
8
9 FROM CLIENTE)
Neste caso, o SGBD calcula o maior salário através da utilização do operador max
na subconsulta ( SELECT max(salário) from CLIENTE ). Este resultado é comparado
Exemplo 09. Verificar quantos clientes ganha(m) mais que o(s) cliente(s) de menor
salário
Utilizamos
serve comocookies para fornecer
parâmetro uma melhor experiência
de comparação para nossos
para a consulta usuários,
principal, que contabiliza
Aceitar o
consulte nossa política de privacidade. 23
número de clientes que ganham mais que este salário.
1 SELECT nome, sexo
2
3 FROM CLIENTE
4
5 WHERE nascimento =
6
7 (SELECT max(nascimento)
8
9 FROM CLIENTE)
Observe que neste caso a subconsulta recupera a maior (mais recente) data de
nascimento, dentre as cadastradas na tabela CLIENTE. Este resultado serve como
parâmetro de entrada para a consulta principal, que retorna o cliente mais novo
(podendo ser mais de um cliente).
O que é MVC?:
ASP.NET MVC:
Neste Guia de Referência você encontrará todo o conteúdo que precisa para
Utilizamos cookiesopara
conhecer JSF,fornecer uma melhor
especificação Javaexperiência para nossos
que traz conceitos dousuários,
padrão MVC eAceitar
que
consulte nossa política de privacidade. 23
facilita a construção de interfaces web utilizando componentes.
CRUD em PHP e MVC com Busca e Paginação:
Tecnologias:
SGBD SQL
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
SQL SUM: somando os SQL: INNER JOIN
valores de uma...
Por Reinaldo
Em 2006
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23
Crie sua conta grátis e baixe o
e-book
Dê um upgrade no início da sua jornada.
Nome
jose.ferreira@ibea.com.br
Perguntas Frequentes
Quem somos?
Leonardo Carlos
Lucas Rodrigues
Estudo aqui na Dev desde o meio do ano passado! Nesse período a Dev me
ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha empresa. Hoje eu
lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um Full-Stack Dev!
Heráclito Júnior
Julio Cablen
Nossa!cookies
Utilizamos Plataforma maravilhosa.
para fornecer To amando
uma melhor o curso
experiência de desenvolvimento
para nossos usuários,
Aceitar
front-end,
consulte tinha coisas
nossa política que eu ainda não tinha visto. A didática é 23do jeito
de privacidade.
que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando
demais.
Joelberth Sena
Felipe Nunes
Wanderson Oliveira
José Lucas
Eduardo Dorneles
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Adauto Junior Aceitar
consulte nossa política de privacidade. 23
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou
aprendendo muito, muito obrigado por existirem. Estão de parabéns...
Espero um dia conseguir um emprego na área.
Menu
Assine agora Hospedagem web por Porta 80 Web Hosting.
Quem somos
Fale conosco
Plano para Instituição de ensino
Assinatura para empresas
Política de privacidade
Termos de uso
Política de estorno
DevMedia: 08.401.613/0001-42
Rua Victor Civita, 66 - Salas 306, 307 e 308 -
Jacarepaguá
Rio de Janeiro - RJ, 22775-044
Tecnologia:
HTML CSS Algoritmo Javascript React React Native Node.js SQL MySQL UML Scrum
Levantamento de Requisitos Padrão de Projeto Teste de Software
Cursos:
HTML e CSS Javascript Programação para Iniciantes Angular React Vue.js Node.js Spring .NET
Core Mobile React Native Android Flutter Algoritmo Automação Delphi Java PHP Python
SQL e Banco de Dados Engenharia de Software Canal Mais Gratuitos
Artigos:
Front-End Javascript Iniciantes Angular Dart Engenharia Mobile Node.js Python React Native
Vue.js Android Banco de Dados Delphi Flutter Java Kotlin .Net PHP React Spring
Gratuitos
DevCast:
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
HTML e CSS Javascript Angular Engenharia Mobile Node.js Python React Native Android
consulte nossa política de privacidade.
Banco de Dados Delphi Flutter Java Automação .Net PHP React Spring
23 Gratuitos Canal
Mais
Guia:
Fundamentos .NET PHP Python Java Delphi HTML e CSS JavaScript Node React Native
Flutter Banco de Dados Mobile Spring Arquitetura Automação Engenharia + Assuntos
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
Aceitar
consulte nossa política de privacidade. 23