Você está na página 1de 20

Linguagem SQL

Por Ricardo Almeida


ndice

Captulo 1 - Introduo ao SQL ....................................................................................................................................... 4


O que o SQL? ....................................................................................................................................................................... 4
Que o SQL pode fazer? ........................................................................................................................................................... 4
SQL um padro - mas .... ..................................................................................................................................................... 4
SGBDR - Sistema Gerenciador de Banco de Dados Relacional ............................................................................................. 4
Tabelas de banco de dados .................................................................................................................................................... 4
Instrues SQL ........................................................................................................................................................................ 5
Tenha em mente que ... ......................................................................................................................................................... 5
Ponto e vrgula aps instrues SQL?.................................................................................................................................... 5
SQL DML e DDL ....................................................................................................................................................................... 5
Captulo 2 - A instruo SQL SELECT ............................................................................................................................. 6
Sintaxe SQL da instruo SELECT ........................................................................................................................................... 6
Veja abaixo um exemplo da instruo SELECT ...................................................................................................................... 6
Exemplo de SELECT *.............................................................................................................................................................. 6
Captulo 3 - Declarao DISTINCT ................................................................................................................................... 8
A instruo SQL SELECT DISTINCT .......................................................................................................................................... 8
Sintaxe da instruo SQL SELECT DISTINCT ........................................................................................................................... 8
Exemplo da instruo SELECT DISTINCT ................................................................................................................................ 8
Clusula SQL WHERE .............................................................................................................................................................. 8
A clusula WHERE .................................................................................................................................................................. 8
Sintaxe da clusula SQL WHERE: ........................................................................................................................................... 8
Operadores aceitados na clusula WHERE............................................................................................................................ 9
Captulo 4 Operadores SQL AND & OR ...................................................................................................................... 11
Operadores AND & OR ......................................................................................................................................................... 11
Exemplo do operador AND: ................................................................................................................................................. 11
Exemplo do operador OR ..................................................................................................................................................... 11
Combinando AND & OR ....................................................................................................................................................... 11
Captulo 5 Clusula ORDER BY .................................................................................................................................... 13
A Clusula ORDER BY ........................................................................................................................................................... 13
Sintaxe do SQL ORDER BY .................................................................................................................................................... 13
Exemplo do uso do ORDER BY ............................................................................................................................................. 13
Exemplo do uso do ORDER BY DESC .................................................................................................................................... 13
Captulo 6 Instruo SQL INSERT INTO...................................................................................................................... 15
A Instruo INSERT INTO...................................................................................................................................................... 15
Sintaxe do SQL INSERT INTO ............................................................................................................................................... 15
Exemplo do SQL INSERT INTO ............................................................................................................................................. 15
Inserir dados apenas em colunas especficas ...................................................................................................................... 15
Captulo 7 Instruo SQL UPDATE .............................................................................................................................. 17
A Instruo UPDATE ............................................................................................................................................................. 17
Sintaxe do SQL UPDATE ....................................................................................................................................................... 17
Ateno na instruo SQL UPDATE...................................................................................................................................... 17
Captulo 8 Instruo SQL DELETE ............................................................................................................................... 19
A Instruo DELETE............................................................................................................................................................... 19
Sintaxe da instruo SQL DELETE......................................................................................................................................... 19
Apagando todas as linhas .................................................................................................................................................... 19
Captulo 1 - Introduo ao SQL

O que o SQL?

O SQL uma linguagem padro para acesso e manipulao a bases de dados.

Que o SQL pode fazer?

O SQL pode executar perguntas de encontro a uma base de dados;


O SQL pode recuperar dados de uma base de dados;
O SQL pode introduzir registros em uma base de dados;
O SQL pode atualizar registros em uma base de dados;
O SQL pode excluir registros de uma base de dados;
O SQL pode criar novas bases de dados;
O SQL pode criar novas tabelas em uma base de dados;
O SQL pode criar procedimentos armazenados em uma base de dados;
O SQL pode criar vistas em uma base de dados;
O SQL pode ajustar permisses em tabelas, em procedimentos, e em vistas.

SQL um padro - mas ....

Embora o SQL um padro ANSI (American National Standards Institute), existem muitas verses diferentes da
linguagem SQL.

No entanto, para ser compatvel com o padro ANSI, que todo o apoio, pelo menos, os grandes comandos
(como SELECT, UPDATE, DELETE, INSERT, WHERE) de uma maneira similar.

Nota: A maioria dos programas de banco de dados SQL tambm tm as suas prprias extenses
proprietrias, alm do padro SQL!

SGBDR - Sistema Gerenciador de Banco de Dados Relacional

SGBDR a base para SQL, e para todos os sistemas de banco de dados modernos, como MS SQL Server, IBM
DB2, Oracle, MySQL, e Microsoft Access.

Os dados no SGBDR so armazenados em objetos do banco de dados chamado tabelas.

Uma tabela uma coleo de entradas de dados relacionados e consiste em colunas e linhas.

Tabelas de banco de dados

Um banco de dados na maioria das vezes contm uma ou mais tabelas. Cada tabela identificada por um nome
(por exemplo, "clientes", "cadastro" e etc.).

Por regra toda a tabela conter campos (colunas) e registros (linhas) com dados.

Abaixo est um exemplo de uma tabela chamada "Pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
A tabela acima contm trs gravaes (um para cada pessoa) e cinco colunas (Id, Nome, Sobrenome, Endereo e
Cidade).

Instrues SQL

A maioria das aes que voc precisa para executar em um banco de dados feito atravs de instrues SQL. Na
seguinte instruo SQL abaixo ela selecionar todos os registros na tabela "Pessoas":

SELECT * FROM Pessoas

Nesta apostila estarei explicando tudo sobre os diferentes comandos SQL.

Tenha em mente que ...

SQL no case sensitive.

Ponto e vrgula aps instrues SQL?

Alguns sistemas de banco de dados requerem um ponto e vrgula no final de cada comando SQL.

Ponto e vrgula a maneira padro para separar cada instruo SQL em sistemas de banco de dados que
permitem mais de uma instruo SQL para ser executado na mesma chamada para o servidor.

Estamos usando o MS Access e por tanto no precisamos colocar um ponto e vrgula aps cada declarao SQL,
mas alguns programas de banco de dados ir forar voc a usar.

SQL DML e DDL

SQL pode ser dividida em duas partes: A Linguagem de Manipulao de Dados (DML) e a Linguagem de
Definio de Dados (DDL).

A primeiro parte a DML (Data Manipulation Language - Linguagem de manipulao de dados). DML um
subconjunto da linguagem da SQL que utilizado para realizar incluses, consultas, alteraes e excluses de dados
presentes em registros. Estas tarefas podem ser executadas em vrios registros de diversas tabelas ao mesmo tempo,
os comandos que realizam respectivamente as funes acima referidas so Select, Update , Delete e Insert.

SELECT - extrai dados de um banco de dados


UPDATE - atualiza dados em um banco de dados
DELETE - exclui dados de um banco de dados
INSERT INTO - insere novos dados em um banco de dados

O segundo parte a DDL (Data Definition Language - Linguagem de Definio de Dados). Uma DDL permite ao
utilizador excluir e criar novas tabelas e elementos associados. Ele tambm define os ndices (chaves), especifica as
ligaes entre as tabelas, e impe restries entre as tabelas. As demonstraes mais importantes DDL em SQL so:

CREATE DATABASE - cria um novo banco de dados


ALTER DATABASE - altera um banco de dados
CREATE TABLE - cria uma nova tabela
ALTER TABLE - altera uma tabela
DROP TABLE - apaga uma tabela
CREATE INDEX - cria um ndice (chave de busca)
DROP INDEX - exclui um ndice
Captulo 2 - A instruo SQL SELECT
Este captulo ir lhe explicar a instruo SELECT e as declaraes de SELECT *.

A instruo SELECT usado para selecionar dados de um banco de dados. O resultado armazenado em uma
tabela de resultados, o chamado conjunto de resultados.

Sintaxe SQL da instruo SELECT

SELECT nome_da_coluna(s)
FROM nome_da_tabela

Nota: Caso deseje selecionar mais de uma coluna separe os nomes das colunas com vrgula (,)

SELECT * FROM nome_da_tabela

Nota: SQL no case sensitive.


SELECT o mesmo que selecionar.

Veja abaixo um exemplo da instruo SELECT

Tabela "pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife

Agora queremos selecionar o contedo das colunas com o nome "Nome", "Sobrenome" da tabela
acima. Para isso ns usaremos a seguinte instruo SELECT:

SELECT Nome, Sobrenome FROM Pessoas

O conjunto de resultados ser parecido com este:

Nome Sobrenome
Marcos Silva
Mateus Almeida
Julia Andrade

Exemplo de SELECT *

Neste exemplo agora gostariamos de selecionar todas as colunas da tabela "Pessoas" e para isso ns
usaremos a seguinte instruo SELECT:
SELECT * FROM Pessoas

Dica: O asterisco (*) uma maneira rpida de selecionar todas as colunas!

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
Captulo 3 - Declarao DISTINCT
Este captulo ir lhe explicar a instruo SELECT DISTINCT.

A instruo SQL SELECT DISTINCT

Em uma tabela, algumas das colunas podem conter valores duplicados. Este no um problema, no entanto, s
vezes voc vai querer listar apenas os diferentes (distintos) valores em uma tabela.

A declarao DISTINCT pode ser usado para retornar somente valores distintos (diferentes).

Sintaxe da instruo SQL SELECT DISTINCT

SELECT DISTINCT nome_da_coluna(s)


FROM nome_da_tabela

Exemplo da instruo SELECT DISTINCT

Tabela "Pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife

Agora queremos selecionar apenas os valores distintos na coluna denominada "Cidade" da tabela acima. Ento
ns usaremos a seguinte instruo SELECT:

SELECT DISTINCT Cidade FROM Pessoas

O conjunto de resultados ser parecido com este:

Cidade
So Paulo
Recife

Clusula SQL WHERE

A clusula WHERE usada para filtrar os registros.

A clusula WHERE

A clusula WHERE usada para extrair apenas os registros que satisfaam um critrio especificado.

Sintaxe da clusula SQL WHERE:

SELECT nome_da_coluna(s)
FROM nome_da_tabela
WHERE nome_da_coluna operador valor
Exemplo Clusula WHERE

Tabela "Pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife

Agora queremos selecionar apenas as pessoas que vivem na cidade "Recife" da tabela acima. Ento ns usamos
a seguinte instruo SELECT:

SELECT * FROM Pessoas


WHERE Cidade='Recife'

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


3 Julia Andrade Av. Independncia Recife

Aspas em volta dos campos de texto. SQL usa aspas simples em torno de valores de texto (a maioria dos
sistemas de banco de dados tambm aceitam aspas), Embora, os valores numricos no deve ser colocada entre aspas.

Para valores de texto:

Isto est correto:


SELECT * FROM Pessoas WHERE Nome='Mateus'

Isto est errado:


SELECT * FROM Pessoas WHERE Nome=Mateus

Para valores de numericos:

Isto est correto:


SELECT * FROM Pessoas WHERE Ano=1965

Isto est errado:


SELECT * FROM Pessoas WHERE Ano='1965'

Operadores aceitados na clusula WHERE

Com a clusula WHERE, os seguintes operadores podem ser usados:


Operadores Descrio
= Igual
<> Diferente
> Maior que
< Menor que
>= Maior igual
<= Menor Igual
BETWEEN Entre um intervalo inclusivo
LIKE Busca de um padro
IN Se voc sabe o valor exato que voc deseja retornar em pelo menos uma das colunas

Nota: Em algumas verses do SQL o operador <> pode ser escrita como =!
Captulo 4 Operadores SQL AND & OR
Os operadores E & OU so usados para filtrar registros com base em mais de uma condio.

Operadores AND & OR

O operador AND exibe um registro se ambos as condies primeira e segunda condio forem verdadeiras.

O operador OR exibe um registro se qualquer condio a primeira ou a segunda condio for verdadeira.

Exemplo do operador AND:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife

Agora queremos selecionar apenas as pessoas com o primeiro nome igual a "Mateus" e o ltimo nome igual a
"Almeida". Para isso ns usaremos a seguinte instruo SELECT:

SELECT * FROM Pessoas


WHERE Nome='Mateus'
AND Sobrenome='Almeida'

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


2 Mateus Almeida R. 25 de Maro So Paulo

Exemplo do operador OR

Agora queremos selecionar apenas as pessoas com o primeiro nome igual a "Mateus" ou o primeiro nome igual
a "Julia". Para isso ns usaremos a seguinte instruo SELECT:

SELECT * FROM Pessoas


WHERE Nome='Mateus'
OR Nome='Julia'

Combinando AND & OR

Voc tambm pode combinar os operadores AND e OR (use parnteses para formar expresses complexas).

Agora queremos selecionar apenas as pessoas com o sobrenome igual a "Svendson" e o primeiro nome igual a
"Tove" ou "Ola". Para isso ns usaremos a seguinte instruo SELECT:

SELECT * FROM Pessoas WHERE


Sobrenome='Almeida'
AND (Nome='Mateus' OR Nome='Julia')

O conjunto de resultados ser parecido com este:


Id Nome Sobrenome Endereo Cidade
2 Mateus Almeida R. 25 de Maro So Paulo
Captulo 5 Clusula ORDER BY
A Clusula ORDER BY usada para classificar o conjunto de resultados.

A Clusula ORDER BY

A Clusula ORDER BY usada para classificar o resultado definido por uma coluna especificada. Por padro
todos os registros so classificados por ordem crescente (ASC), mas se voc quiser classificar os registros em ordem
decrescente, voc dever usar a palavra-chave DESC.

Sintaxe do SQL ORDER BY

SELECT nome_da_coluna(s)
FROM nome_da_tabela
ORDER BY nome_da_coluna(s) ASC ou DESC

Exemplo do uso do ORDER BY

Tabela "pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Thaysa Santana Quadra x Braslia
5 Jlio Czar Quadra xx Braslia

Agora queremos selecionar todas as pessoas da tabela acima, no entanto, queremos classificar as pessoas por
seu sobrenome. Para isso ns usaremos a seguinte instruo SELECT:

SELECT * FROM Pessoas


ORDER BY Sobrenome

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
5 Jlio Czar Quadra xx Braslia
4 Thaysa Santana Quadra x Braslia
1 Marcos Silva R. So Joo So Paulo

Exemplo do uso do ORDER BY DESC

Agora queremos selecionar todas as pessoas da tabela acima, no entanto, queremos classificar as pessoas
descrecendo a ordem dos seus sobrenomes. Para isso ns usaremos a seguinte instruo SELECT:
SELECT * FROM Pessoas
ORDER BY Sobrenome DESC

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
4 Thaysa Santana Quadra x Braslia
5 Jlio Czar Quadra xx Braslia
3 Julia Andrade Av. Independncia Recife
2 Mateus Almeida R. 25 de Maro So Paulo
Captulo 6 Instruo SQL INSERT INTO
A instruo INSERT INTO utilizada para inserir novos registros em uma tabela.

A Instruo INSERT INTO

A instruo INSERT INTO utilizada para inserir uma nova linha de dados em uma tabela.

Sintaxe do SQL INSERT INTO

possvel escrever a instruo INSERT INTO em duas formas. A primeira forma no especifica os nomes das
colunas onde os dados sero inseridos, apenas os seus valores:

INSERT INTO nome_da_tabela


VALUES (valor1, valor2, valor3,...)

A segunda forma especifica tanto os nomes das colunas quanto os valores a serem inseridos:

INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3,...)


VALUES (valor1, valor2, valor3,...)

Exemplo do SQL INSERT INTO

Temos o seguinte tabela "pessoas" abaixo:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife

Agora queremos inserir uma nova linha na tabelas "Pessoas". Para isso ns usaremos a seguinte instruo SQL:

INSERT INTO Pessoas


VALUES (4,'Tatiana', 'Magalhes', 'R. Alameda dos Anjos', 'No existe')

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Tatiana Magalhes R. Alameda dos Anjos No Existe

Inserir dados apenas em colunas especficas

Tambm possvel adicionar apenas os dados em colunas especficas. A seguinte instruo SQL ir
adicionar uma nova linha, mas somente adicionar dados no campo "Id", "Nome" e "Sobrenome":
INSERT INTO Pessoas (Id, Nome, Sobrenome)
VALUES (5, 'Srgio', 'Oliveira')

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Tatiana Magalhes R. Alameda dos Anjos No Existe
5 Srgio Oliveira
Captulo 7 Instruo SQL UPDATE
A instruo UPDATE utilizada para atualizar registros em uma tabela.

A Instruo UPDATE

A instruo UPDATE usado para atualizar os registros existentes em uma tabela.

Sintaxe do SQL UPDATE

UPDATE nome_da_tabela
SET coluna1=valor2, coluna2=valor2,...
WHERE nome_da_campo=valor_do_campo

Nota: Observe a clusula WHERE na sintaxe UPDATE. A clusula WHERE especifica quais registros devem
ser atualizados. Se voc omitir a clusula WHERE, todos os registros sero atualizados!

Exemplo da instruo SQL UPDATE

Tabela "Pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Tatiana Magalhes R. Alameda dos Anjos No Existe
5 Srgio Oliveira

Agora queremos atualizar a pessoa "Srgio, Oliveira" na tabela "Pessoas". Para isso ns usaremos a seguinte
instruo SQL:

UPDATE Pessoas
SET Endereo='Av. Paulista', Cidade='So Paulo'
WHERE Nome='Srgio' AND Sobrenome='Oliveira'

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Tatiana Magalhes R. Alameda dos Anjos No Existe
5 Srgio Oliveira Av. Paulista So Paulo

Ateno na instruo SQL UPDATE

Tome muito cuidado ao atualizar registros, pois se tivssemos omitido a clusula WHERE no exemplo
acima, o resultado seria como este abaixo:
UPDATE Pessoas
SET Endereo='Av. Paulista', Cidade='So Paulo'

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva Av. Paulista So Paulo
2 Mateus Almeida Av. Paulista So Paulo
3 Julia Andrade Av. Paulista So Paulo
4 Tatiana Magalhes Av. Paulista So Paulo
5 Srgio Oliveira Av. Paulista So Paulo
Captulo 8 Instruo SQL DELETE
A instruo DELETE usada para excluir registros em uma tabela.

A Instruo DELETE

A instruo DELETE usado para apagar linhas de dados em uma tabela.

Sintaxe da instruo SQL DELETE

DELETE FROM Nome_da_tabela


WHERE Nome_do_Campo=Valor_do_Campo

Nota: Observe a clusula WHERE na sintaxe DELETE. A clusula WHERE especifica quais registros devem
ser excludos. Se voc omitir a clusula WHERE, todos os registros sero apagados!

Exemplo da instruo SQL DELETE

Tabela "Pessoas":

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
3 Julia Andrade Av. Independncia Recife
4 Tatiana Magalhes R. Alameda dos Anjos No Existe
5 Srgio Oliveira Av. Paulista So Paulo

Agora queremos excluir a pessoa "Julia Andrade" na tabela "Pessoas". Para isso ns usaremos a seguinte
instruo SQL:

DELETE FROM Pessoas


WHERE Nome='Julia' AND Sobrenome='Andrade'

O conjunto de resultados ser parecido com este:

Id Nome Sobrenome Endereo Cidade


1 Marcos Silva R. So Joo So Paulo
2 Mateus Almeida R. 25 de Maro So Paulo
4 Tatiana Magalhes R. Alameda dos Anjos No Existe
5 Srgio Oliveira Av. Paulista So Paulo

Apagando todas as linhas

possvel excluir todas as linhas em uma tabela sem apagar a tabela. Isto significa que a estrutura da tabela,
atributos e ndices ficaro intactos:
DELETE FROM Nome_da_Tabela

ou

DELETE * FROM Nome_da_Tabela

Nota: Tenha muito cuidado ao excluir registros. Aps os dados excludos voc no pode desfazer esta
ao!