Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é SQL?
Se você pensa que o SQL não é utilizado na rotina de um(a) desenvolvedor(a), está bem
enganado(a). Como pensa que é feito aqueles relatórios enormes dentro do seu sistema
ERP(enterprise resource planning/sistema de gestão integrado)? Sim, é com SQL.
Porém, vamos aprofundar no **DML que são os comandos mais básicos do SQL.
SELECT
Imagine que você tem uma tabela de banco de dados para guardar alguns dados dos seus
clientes:
1 Roberta 9999-9999 F
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 5555-555 F
Então, para consultar todos os dados dos seus clientes, a query que você deve rodar é
uma que vai selecionar (SELECT) todos os campos (*) da tabela (FROM) clientes:
Provavelmente, você já ouviu falar bastante por aí em SQL. O SQL é muito importante
na vida dos desenvolvedores e DBAs (database administrador/administradores de
banco de dados). Se você pretende seguir na área de tecnologia, é de extrema
importância que aprenda o quanto antes. Neste artigo, vamos abordar o que é e quais
os comandos básicos.
#interna
O que é SQL?
Se você pensa que o SQL não é utilizado na rotina de um(a) desenvolvedor(a), está bem
enganado(a). Como pensa que é feito aqueles relatórios enormes dentro do seu sistema
ERP(enterprise resource planning/sistema de gestão integrado)? Sim, é com SQL.
Porém, vamos aprofundar no **DML que são os comandos mais básicos do SQL.
SELECT
Imagine que você tem uma tabela de banco de dados para guardar alguns dados dos seus
clientes:
1 Roberta 9999-9999 F
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 5555-555 F
Então, para consultar todos os dados dos seus clientes, a query que você deve rodar é
uma que vai selecionar (SELECT) todos os campos (*) da tabela (FROM) clientes:
1 Roberta 9999-9999 F
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 5555-5555 F
Não mudou muita coisa, certo? Então vamos buscar os dados de todos clientes do
gênero feminino:
A query que você deve rodar é uma que vai selecionar (SELECT) todos os campos (*) da
tabela (FROM) clientes onde (WHERE) o gênero seja igual a F:
1 Roberta 9999-9999 F
3 Valéria 7777-7777 F
4 Isabel 5555-5555 F
Simples, não é?
INSERT
Em nosso caso vamos inserir novos dados na tabela de clientes, passando os argumentos
no insert:
INSERT INTO clientes (id, nome, telefone, genero) VALUES (5, ‘Miguel’,
4444-4444, ‘M’)
Esse comando está inserindo um novo registro em nossa tabela clientes, o cadastro do
Miguel.
E então, temos:
1 Roberta 9999-9999 F
#interna
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 5555-5555 F
5 Miguel 4444-4444 M
UPDATE
O UPDATE atualiza as linhas dentro da tabela, mas não podemos esquecer o WHERE onde
inserimos uma condição, ou seja, uma regra que impõe a execução do comando. Se a
condição não for informada a tabela inteira será atualizada.
A Isabel ligou em nossa loja para informar que trocou o seu número de telefone, então
temos que atualizar dentro do nosso banco de dados:
Aqui, o que o comando está fazendo? Está atualizando a linha 4 da tabela clientes, onde
está o cadastro da Isabel.
A regra a ser utilizada é o id da Isabel, onde vai identificar a linha a ser atualizada.
1 Roberta 9999-9999 F
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 2222-2222 F
5 Miguel 4444-4444 M
DELETE
O DELETE apaga as linhas, os dados dentro da tabela. Assim como o UPDATE, não
podemos esquecer do WHERE. Caso contrário, toda tabela será apagada.
Miguel deixou de ser nosso cliente, então precisamos apagar os dados dele:
Neste caso, o comando exclui a linha 5 da tabela clientes, que é o cadastro do Miguel.
#interna
1 Roberta 9999-9999 F
2 Denis 8888-8888 M
3 Valéria 7777-7777 F
4 Isabel 2222-2222 F
#interna
SELECT SIMPLES
Ou
O asterisco representa todos os campos. É bem prático, mas não muito utilizado. Ao
usar o asterisco para trazer todos os campos, ele obriga o servidor do banco de dados a
procurar os campos antes de trazer os dados e assim, causando uma demora no retorno
da consulta.
Vamos supor que queremos ver todos clientes do gênero feminino em nossa tabela,
então, utilizamos o WHERE para realizar essa filtragem:
Também podemos usar operadores lógicos para usar mais de uma condição dentro do
WHERE.
SELECT * FROM clientes WHERE genero = “F” AND nome LIKE “R%”
Neste comando, todos os clientes do gênero feminino com nomes que iniciam com R
serão retornados.
• IN
• BETWEEN
#interna
O BETWEEN é utilizado para fazer buscas entre intervalos. É mais utilizado para filtrar
intervalos de datas.
Neste comando, todos os clientes que foram cadastrados entre essas datas serão
retornados.
LIKE
O LIKE é utilizado para buscar strings(texto) dentro de uma coluna com valores
textuais. Podemos buscar as linhas que o nome inicia com uma determinada palavra,
como vimos acima ou contém um certo texto.
• string: são retornadas todas as linhas que tem na coluna buscada exatamente a
"string" informada no filtro. É a mesma coisa de usar o operador de igual.
• %string%: são retornadas as linhas que tem na coluna buscada a "string"
informada. Podemos buscar os nomes que tem "Jesus", ou que tem alguma
sílaba ou letra específica. A linha com o nome "Roberta de Jesus", contém o
termo "da", então atenderia ao filtro '%de%'.
• %string: são retornadas as linhas que a coluna filtrada termina com a "string"
informada. O % indica que pode ter qualquer valor no começo do campo, desde
que ele termine com a “string". A linha com nome "Roberta de Jesus" atenderia
ao filtro '%Jesus'.
• string%: são retornadas as linhas que o coluna filtrada começa com a “string"
informada. O % indica que depois da “string” pode ter qualquer valor. A linha
com nome "Roberta de Jesus", atenderia ao filtro 'Roberta%'.
ORDER BY
Neste comando, serão retornados todos os clientes ordenados pelo nome em ordem
crescente.
Então pessoal, vimos neste artigo como fazer consultas simples apenas com o SELECT,
como incrementar essas consultas criando filtros com WHERE e ordenar os dados com
o ORDER BY.
#interna
Para alterar e excluir dados de uma tabela, utilizamos duas cláusulas bem importantes
da linguagem SQL: a cláusula UPDATE que é responsável por alterar os dados
armazenados e a cláusula DELETE que é responsável por remover os dados.
Neste artigo, vamos conhecer a sintaxe básica de cada cláusula e entender quais os
riscos e os cuidados necessários ao executar as cláusulas UPDATE e DELETE.
Cláusula UPDATE
Utilizamos a cláusula UPDATE para realizar alterações nos dados armazenados em uma
tabela do banco de dados. A sintaxe básica do comando utilizado por todos os bancos de
dados relacionais é:
UPDATE nome_da_tabela
SET coluna = valor,
WHERE condição;
Cláusula DELETE
Utilizamos a cláusula DELETE para realizar a exclusão de dados de uma ou mais tabelas
de um banco de dados. A sintaxe básica do comando utilizado por todos os bancos de
dados relacionais é:
DELETE
FROM nome_da_tabela,
WHERE condição;
Onde na cláusula FROM, informamos o nome da tabela que queremos excluir os dados, e
no WHERE informamos a condição que especifica quais registros devem ser excluídos da
tabela.
Riscos e Cuidados
Nesse sentido, um ponto de atenção é sempre informar uma condição ao realizar uma
atualização ou exclusão de dados de uma tabela. Quando não informamos essa
condição, corremos o risco de que todos os dados da tabela sejam atualizados, ou até
mesmo excluídos, ocorrendo assim a perda de dados importantes.
Cláusula WHERE
Para que essa perda de dados em massa não ocorra, utilizamos a cláusula ´WHERE´.
Especificamos nesta cláusula os critérios que os dados armazenados em uma tabela
devem cumprir para que os registros que contêm esses parâmetros sejam incluídos nos
resultados da consulta.
#interna
Rio de
04 492472718 Eduardo Jorge R. Volta Grande Tijuca RJ 22012002
Janeiro
Rio de
05 50534475787 Abel Silva Rua Humaitá Humaitá RJ 22000212
Janeiro
R. Benício de
06 5576228758 Petra Oliveira Lapa São Paulo SP 88192029
Abreu
R. Manuel de Santo
07 5840119709 Gabriel Araujo São Paulo SP 80010221
Oliveira Amaro
Estas duas tabelas, serão utilizadas em todos os exemplos apresentados durante o artigo.
Tendo então a tabela de clientes acima como nosso exemplo, precisamos atualizar as
informações da cliente que possui o CPF `147115670´ e está na primeira linha da nossa
tabela, para isso vamos utilizar a seguinte consulta:
UPDATE CLIENTES
SET nome = 'Érica Silvia'
WHERE CPF = '1471156710';
#interna
Ao executar este comando apenas a cliente que possui o CPF `147115670´, terá os seus
dados alterados:
Rio de
04 492472718 Eduardo Jorge R. Volta Grande Tijuca RJ 22012002
Janeiro
Rio de
05 50534475787 Abel Silva Rua Humaitá Humaitá RJ 22000212
Janeiro
R. Benício de
06 5576228758 Petra Oliveira Lapa São Paulo SP 88192029
Abreu
R. Manuel de Santo
07 5840119709 Gabriel Araujo São Paulo SP 80010221
Oliveira Amaro
UPDATE CLIENTES
SET NOME = 'Fernando Sousa',CEP = '80012212'
WHERE CPF = '19290992743';
Assim, apenas as informações de nome e CEP do segundo cliente que possui o CPF
19290992743 será atualizado:
Eduardo Rio de
04 492472718 R. Volta Grande Tijuca RJ 22012002
Jorge Janeiro
#interna
Rio de
05 50534475787 Abel Silva Rua Humaitá Humaitá RJ 22000212
Janeiro
Petra R. Benício de
06 5576228758 Lapa São Paulo SP 88192029
Oliveira Abreu
UPDATE Clientes
SET ESTADO = 'SP';
Como a cláusula WHERE não foi utilizada, informando o registro que deveria ser
atualizado, o valor do campoESTADO de todos clientes foram alterados:
Eduardo Rio de
04 492472718 R. Volta Grande Tijuca SP 22012002
Jorge Janeiro
Rio de
05 50534475787 Abel Silva Rua Humaitá Humaitá SP 22000212
Janeiro
Petra R. Benício de
06 5576228758 Lapa São Paulo SP 88192029
Oliveira Abreu
DELETE
FROM Clientes
#interna
Ao executar este comando apenas o cliente Gabriel Araujo que estava localizado na
ultima linha da tabela de clientes, foi excluído:
Eduardo Rio de
04 492472718 R. Volta Grande Tijuca SP 22012002
Jorge Janeiro
Rio de
05 50534475787 Abel Silva Rua Humaitá Humaitá SP 22000212
Janeiro
R. Benício de
06 5576228758 Petra Oliveira Lapa São Paulo SP 88192029
Abreu
Pensando que se a cláusula WHERE não fosse utilizada ao executar um comando DELETE
para remover algum registro, teríamos como resultado a exclusão de todos os dados
armazenados na tabela, ou seja, perdendo os dados de todos os clientes:
DELETE
FROM Clientes;
CPF NOME ENDEREÇO BAIRRO CIDADE ESTADO CEP
UPDATE VENDEDORES
SET COMISSÃO = COMISSÃO + 0.03
WHERE COMISSÃO = (SELECT min(COMISSÃO) FROM VENDEDORES)
Chave primária
Uma outra forma de garantir que apenas os dados desejados sofram alterações é a
criação de uma chave primária na tabela.
A chave primária, ou Primary key (PK) é o dado que pode ser utilizado como um
identificador único de um registro em uma tabela no banco de dados.
Se definirmos que o campo CPF será a chave primária da tabela de clientes, estamos
definindo que este campo receberá apenas valores únicos. Ao utilizarmos este campo
como uma condição no momento de executar uma consulta com as cláusulas DELETE ou
UPDATE, garantimos que apenas o registro que possui aquele dado será alterado.
Conclusão
Como estudamos neste artigo, as cláusulas DELETE e UPDATE são muito importantes na
manipulação de um banco de dados, pois, através delas, conseguimos atualizar ou
excluir dados de uma tabela.
Também entendemos os riscos que corremos ao utilizar estas cláusulas e como podemos
evitar que, ao executar comandos de modo não recomendado, ocorram perdas de dados
em massa em um banco de dados.
Portanto, podemos utilizar estas cláusulas em diversas consultas, assim como utilizar
outros recursos disponibilizados pela linguagem SQL para garantir que não haja perda
de dados.