SQL, conceitos e funcionalidades
Apresentação
A linguagem SQL é utilizada para realizar consultas em dados armazenados em um banco de dados.
Ela é muito importante, pois permite a manipulação, de forma simples e poderosa, sobre os dados
presentes em um sistema de gerenciamento de banco de dados.
Nesta Unidade de Aprendizagem, você irá estudar sobre os conceitos e as funcionalidades da
linguagem SQL. Verá, também, os diversos tipos de operadores suportados pela linguagem SQL e,
com isso, como construir comandos SQL mais refinados e inteligentes.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
• Identificar a linguagem SQL.
• Reconhecer os principais tipos de linguagem SQL
• Relacionar os principais tipos de linguagem SQL.
Infográfico
Um operador lógico, assim como um operador aritmético, é uma classe de operação sobre variáveis
ou elementos predefinidos. O operador AND é relacionado ao agrupamento de mais de uma
condicional. Portanto, siginifica condicional 1 e condicional 2. Já o operador OR leva à escolha de
uma das duas condicionais, significando OU.
Acompanhe o infográfico sobre o alinhamento das cláusulas AND e OR em uma consulta em
linguagem SQL.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Conteúdo do Livro
A linguagem SQL é um diferencial gigantesco no universo dos sistemas de gerenciamento de
bancos de dados. Tanto é que ficou muito difundida e teve de passar por uma normatização para
ser compartilhada em diversos bancos de dados e, somente assim, ter garantida sua
compatibilidade.
No capítulo SQL, conceito e funcionalidades, da obra Modelagem e desenvolvimento de banco de
dados, base teórica para esta Unidade de Aprendizagem, você irá estudar a linguagem SQL, os
operadores lógicos e os operadores relacionais e aprenderá os principais tipos de linguagem SQL.
Boa leitura.
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE DADOS
Fabrício Felipe Meleto Barboza
SQL: conceitos e
funcionalidades
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
Identificar a linguagem SQL.
Reconhecer os principais tipos de linguagem SQL.
Relacionar os principais tipos de linguagem SQL.
Introdução
A linguagem SQL é utilizada para a realização de consultas em dados
armazenados em um banco de dados. Ela é muito importante, pois per-
mite a manipulação, de forma simples e poderosa, dos dados presentes
em um Sistema de Gerenciamento de Banco de Dados.
Neste capítulo, você irá estudar sobre os conceitos e as funcionalida-
des da linguagem SQL. Verá, também, os diversos tipos de operadores
suportados pela linguagem SQL e, com isso, como construir comandos
SQL mais refinados e inteligentes.
Identificando a linguagem SQL
Segundo Elmasri e Navathe (2004), a linguagem SEQUEL nasceu unicamente
para ser a linguagem de consulta do sistema System R da IBM. Sua evolução
originou a linguagem SQL tanto difundida atualmente.
2 SQL: conceitos e funcionalidades
Segundo Santos (2008), “a linguagem SQL surgiu em meados da década de 1970,
sendo resultado de um estudo de E. F. Codd, membro do laboratório de pesquisa da
IBM em San Jose, Califórnia. Esse estudo tinha foco em desenvolver uma linguagem
que se adapta ao modelo relacional”.
Para realizar a inserção, remoção, edição ou qualquer outra atividade
com os dados que irão para o banco de dados ou que já estão nele, é
necessária uma interação com o mesmo. Dessa forma, a linguagem SQL
(Structure Query Language ou Linguagem de Consulta Estruturada) é a
intermediária essa interação, criando a ponte necessária entre o que precisa
ser feito e o banco de dados efetivamente. Assim, para que algo aconteça, é
necessário que a linguagem SQL esteja com a sintaxe e os valores desejados
corretos.
Pelo fato de ser de fácil utilização e aprendizado, essa linguagem foi rapi-
damente difundida pelo mundo e, assim, é utilizada para gerenciar os bancos
de dados do tipo MariaDB (e MySQL), Microsoft SQLServer, PostgreSQL e
Oracle. É a linguagem comumente usada por database administrators dia-
riamente em suas jornadas de trabalho.
Perceba que o MongoDB não utiliza a linguagem SQL para criar suas
consultas e manipular os dados necessários. Isso se dá pela forma com que
ele organiza suas informações e também como as disponibiliza de volta ao
sistema quando este solicita uma consulta, por exemplo. Assim, ele consegue
desempenhar uma velocidade incrível de resposta a consultas se comparado
aos bancos de dados mais tradicionais, que utilizam a linguagem de consulta
estruturada (SQL). Portanto, o MongoDB é um banco de dados do tipo não
relacional.
SQL: conceitos e funcionalidades 3
A linguagem SQL apresenta uma sintaxe bem estruturada. Um exemplo básico seria:
SELECT atributos (obrigatório)
FROM tabelas (obrigatório)
WHERE condições (opcional)
Assim, para retornar o nome e o CPF de todos os clientes que moram no Paraná
cadastrados na tabela “Cliente” do Quadro 1 a seguir, faríamos:
SELECT Nome, CPF
FROM Cliente
WHERE Estado = PR
Uma justificativa para por que a linguagem SQL é tão utilizada e difundida
em todo o mundo pode ser que:
A linguagem possui muitos recursos, tanto para manipulação de dados (DML,
Data Manipulation Language) como para a definição de dados (DDL, Data
Definition Language). Por conta disso, SQL é a linguagem mais utilizada em
sistemas de bancos de dados (KOMATSU, 2011, p. 20).
“Em 1982, foi lançada a primeira versão padronizada da linguagem SQL, que veio
ganhando melhorias de acordo com sua evolução e tornando-se, assim, a mais poderosa
ferramenta para definição e manipulação de BDs. Hoje, é utilizada em grande parte
dos BDs existente, tais como MySQL, SQLServer, Firebird, dentre outros”. (SANTOS,
2008, documento on-line).
Para realizar as consultas e transações, a linguagem SQL conta com o
auxílio de operadores lógicos, operadores relacionais, cláusulas condicionais
e funções de agregação. Veremos cada um desses auxílios no texto que segue.
4 SQL: conceitos e funcionalidades
Para facilitar o seu entendimento, os exemplos de SQLs representados na
sequência de cada quadro estarão baseados na tabela Clientes a seguir:
Quadro 1. Visualização da “Tabela Clientes”
ClienteNome Idade Estado E-mail
João 15 São Paulo
Maria 22 Paraná
Felipe 53 Rio de Janeiro felipe@[Link]
Conceição 56 Rio de Janeiro conceicao@[Link]
Sophie 24 São Paulo sophie@[Link]
Augusto 40 Minas Gerais
Operadores lógicos
Os operadores lógicos são empregados para realizar uma combinação ou
descombinação de associações da consulta. Veja um exemplo no Quadro 2.
Quadro 2. Operadores lógicos
Operador Ação
AND Retorna apenas quando as duas condições forem verdadeiras
OR Retorna quando uma das duas condições for verdadeira
NOT Retorna o contrário da expressão
Exemplos práticos:
1. Consultar os nomes dos clientes que sejam do estado do Paraná ou de
São Paulo:
SQL: conceitos e funcionalidades 5
SELECT ClienteNome
FROM clientes
WHERE
Estado = ‘Paraná’
OR
‘São Paulo’;
2. Consultar os nomes dos clientes que sejam do estado Rio de Janeiro e
tenham nome Felipe:
SELECT ClienteNome
FROM clientes
WHERE
Estado = ‘Paraná’
AND
ClienteNome = ‘Felipe’;
Operadores relacionais
Os operadores relacionais são utilizados para realizar comparações entre
valores e estrutura do Sistema de Gerenciamento de Banco de Dados. Veja
um exemplo no Quadro 3.
Quadro 3. Operadores relacionais
Operador Ação
= Igual
<> Diferente
> Maior
>= Maior ou igual
< Menor
<= Menor ou igual
BETWEEN Buscar em um intervalo
NOT BETWEEN Buscar o que não está em um intervalo
LIKE Buscar com caractere curinga ‘%’
NOT LIKE Buscar o que não está no caractere curinga ‘%’
IN Buscar em uma lista
NOT IN Buscar o que não está em uma lista
6 SQL: conceitos e funcionalidades
Exemplos práticos:
1. Consultar os nomes dos clientes que tenham idade maior que 50 anos:
SELECT ClienteNome
FROM clientes
WHERE
Idade > 50;
2. Consultar os nomes dos clientes que tenham idade entre 50 e 60 anos:
SELECT ClienteNome
FROM clientes
WHERE
Idade BETWEEN 50 AND 60;
3. Consultar os nomes dos clientes cujo nome comece com a letra J:
SELECT ClienteNome
FROM clientes
WHERE
ClienteNome LIKE ‘J%’;
4. Consultar os nomes dos clientes cuja idade é menor ou igual a 30 anos:
SELECT ClienteNome
FROM clientes
WHERE
Idade <= 30;
Cláusulas condicionais
As cláusulas condicionais servem para condicionar os dados que serão apre-
sentados por meio de uma consulta ou, ainda, deletados ou editados.
Veja um exemplo no Quadro 4.
SQL: conceitos e funcionalidades 7
Quadro 4. Cláusulas condicionais
Operador Ação
FROM Indica qual tabela irá receber o comando
WHERE Especifica as condições necessárias
GROUP BY Agrupa os resultados semelhantes
HAVING É utilizada para expressar a condição
de satisfação para cada grupo
ORDER BY Ordena o resultado
DISTINCT Retorna dados sem repetição
UNION Combina duas consultas SQL sem repetição de dados
UNION ALL Combina duas consultas SQL com
repetição de dados, se houver
Exemplos práticos:
1. Consultar os nomes dos clientes, ordenando pelo nome:
SELECT ClienteNome
FROM clientes
ORDER BY ClienteNome;
2. Consultar os estados dos clientes sem repetição:
SELECT DISTINCT(Estado)
FROM clientes;
3. Contar quantos clientes cada estado tem:
SELECT COUNT(*)
FROM clientes
GROUP BY Estado;
Funções de agregação
As funções de agregação são responsáveis por extrair informações de forma
rápida e precisa da consulta realizada, poupando tempo do responsável.
Veja um exemplo no Quadro 5.
8 SQL: conceitos e funcionalidades
Quadro 5. Funções de agregação
Operador Ação
AVG Média entre os valores
COUNT Retorna quantos registros possui
SUM Soma os valores
MAX Retorna o maior valor
MIN Retorna o menor valor
Exemplos práticos:
1. Consultar a média de idade dos clientes:
SELECT AVG(Idade)
FROM clientes;
2. Contar quantos clientes são do Rio de Janeiro:
SELECT COUNT(*)
FROM clientes
WHERE
Estado = ‘Rio de Janeiro’;
3. Somar a idade de todos os clientes:
SELECT SUM(Idade)
FROM clientes;
4. Pegar o cliente mais velho:
SELECT MAX(Idade)
FROM clientes;
5. Pegar o cliente mais novo:
SELECT MIN(Idade)
FROM clientes;
Reconhecendo e relacionando os principais
tipos de linguagens SQL
O papel da linguagem SQL para os Sistemas de Gerenciamento de Bancos de
Dados é de crucial importância. Ela pode ser dividida em quatro subgrupos,
que estudaremos separadamente a seguir.
SQL: conceitos e funcionalidades 9
Linguagem de manipulação de dados ou data
manipulation language (DML)
A linguagem de manipulação de dados ou data manipulation language (DML)
refere-se a um grupo secundário dentro da linguagem SQL e que pode realizar
operações de manipulação de dados, tal como adição, remoção, exibição ou
edição.
Exemplos de comandos:
INSERT
DELETE
SELECT
UPDATE
Exemplos práticos:
1. Inserir nova entrada na tabela Clientes:
INSERT INTO
clientes
VALUES (
‘Gregório’,
‘45’,
‘Amazonas’,
‘gregorio@[Link]’
);
2. Deletar entrada na tabela Clientes:
DELETE FROM
clientes
WHERE
NomeCliente = ‘Gregório’;
3. Editar entrada na tabela Clientes:
UPDATE
clientes
SET
Estado = ‘Goiás’
WHERE
NomeCliente = ‘Gregório’;
10 SQL: conceitos e funcionalidades
Linguagem de definição de dados ou data definition
language (DDL)
A linguagem de definição de dados ou data definition language (DDL) é a
encarregada de trabalhar com as tabelas do Sistema de Gerenciamento de
Banco de Dados e suas propriedades; portanto, seu uso contempla chaves
primárias, por exemplo.
Exemplos de comandos:
CREATE
DROP
ALTER
Exemplos práticos:
1. Criar nova tabela Fornecedores:
CREATE TABLE fornecedores (
Nome varchar(255),
Telefone varchar(255),
Endereco varchar(255)
);
2. Deletar tabela Fornecedores:
DROP TABLE fornecedores;
Linguagem de controle de dados ou data control
language (DCL)
A linguagem de controle de dados ou data control language (DCL) é
responsável pelas permissões dos usuários, fornecendo, ou não, o retorno
do comando executado pelo usuário. Dessa forma, a DCL integra uma
das camadas de segurança do Sistema de Gerenciamento de Banco de
Dados.
Os comandos para manipulação das permissões são:
GRANT: para permitir o acesso pelo usuário
REVOKE: para retirar as permissões do usuário
SQL: conceitos e funcionalidades 11
Linguagem de transação de dados ou data transaction
language (DTL)
A linguagem de transação de dados ou data transaction language (DTL)
serve de guia para realizar trabalhos no banco de dados e salvar apenas após
a conclusão total do mesmo ou, ainda, retornar ao estado anterior ao último
ponto salvo.
Exemplos de comandos:
BEGIN WORK ou START TRANSACTION
COMMIT: gravar as modificações no banco
ROLLBACK: retornar o banco a um estado anterior ao último COMMIT
Linguagem de consulta de dados ou data query
language (DQL)
A linguagem de consulta de dados ou data query language (DCL) contempla
o comando que permite a consulta pelos dados presentes no Sistema de Ge-
renciamento de Banco de Dados.
Exemplo de comando:
SELECT
ELMASRI R.; NAVATHE S. B. Fundamentals of database systems. 4. ed. Boston: Addison-
-Wesley, 2004.
KOMATSU, A. S. V. Interpretador de linguagens de consulta relacionais. 2011. 44 f. Trabalho
de Conclusão de Curso (Graduação em Informática) – Universidade de São Paulo, São
Paulo, 2011. Disponível em: <[Link]
pdf>. Acesso em: 19 jul. 2018.
Leitura recomendada
SANTOS, J. C. Entendendo a linguagem SQL. 2008. Disponível em: <[Link]
[Link]/entedendo-a-linguagem-sql/7775>. Acesso em: 19 jul. 2018.
Dica do Professor
Os operadores lógicos são empregados para realizar uma combinação ou descombinação de
associações da consulta. Assim, o operador NOT é utilizado para retornar o contrário da expressão.
No vídeo da Dica do Professor, você irá aprender sobre a diferença de comandos ao usar o
operador NOT junto com os demais comandos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Exercícios
1) Para ordenar o resultado de uma consulta SQL, qual a cláusula correta?
A) ORDER.
B) ORDER BY.
C) ORDENAR.
D) ORGANIZAR.
E) ORGANIZAR POR.
2) Qual a função para calcular a média de uma coluna?
A) CALCULA.
B) MEDIA.
C) MED.
D) AVG.
E) CAL.
3) O comando GRANT realiza que tipo de ação ou atividade?
A) Garante que a sintaxe do SQL esteja correta.
B) Concede permissões para um usuário.
C) Limita a consulta SELECT.
D) Remove permissões de um usuário.
E) Limpa todos os dados das tabelas do Sistema de Gerenciamento de Banco de Dados (SGBD).
4) A cláusula condicional UNION ALL retorna qual tipo de resultado?
A) Combina duas consultas SQL.
B) Combina duas consultas SQL somente se estiverem na mesma database.
C) Combina duas consultas SQL sem repetição de dados.
D) Combina o resultado de duas consultas SQL por meio de chave estrangeira.
E) Combina duas consultas SQL com repetição de dados, se houver.
5) O comando INSERT é de qual subgrupo da linguagem SQL?
A) Linguagem de manipulação de dados ou data manipulation language (DML).
B) Linguagem de definição de dados ou data definition language (DDL).
C) Linguagem de controle de dados ou data control language (DCL).
D) Linguagem de transação de dados ou data transaction language (DTL).
E) Linguagem de consulta de dados ou data query language (DQL).
Na prática
Júnior é um profissional de TI que trabalha em uma grande empresa de revenda de celulares. Ao
verificar o sistema, Júnior percebeu que existe uma chamada de banco de dados que executa o uso
da cláusula UNION ALL e ficou curioso sobre ela, pois ele estava acostumado a utilizar a cláusula
UNION e desconhecia a funcionalidade da cláusula UNION ALL.
Então, Júnior achou que essa cláusula poderia lhe ser útil em seu trabalho e resolveu pesquisar
sobre as diferenças entre UNION e UNION ALL. Veja o que Júnior encontrou:
Conteúdo interativo disponível na plataforma de ensino!
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Cláusulas condicionais em SQL - WHERE
O vídeo aborda as condicionais que a linguagem SQL possui. Essas cláusulas são utilizadas
conforme a necessidade de extração e auxiliam para que o resultado seja assertivo e limpo, sem
dados desnecessários.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
10 comandos essenciais em SQL para estudantes
Neste vídeo, você irá conhecer, na prática, os 10 comandos que fazem parte do cotidiano de um
profissional de banco de dados.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
LIKE e NOT LIKE - Filtrar por padrões específicos
O vídeo aborda os comandos LIKE e NOT LIKE, que são pouco utilizados na linguagem SQL mas
que, quando aprendidos, constituem um novo horizonte ao database administrator.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.