Anda di halaman 1dari 9

9/9/2011

CONSTRUO DE CONSULTAS
Select From Coluna derivada As (alias) Distinct Order by Where

CONSTRUO DE CONSULTAS
Prof Licene Nogueira

Objetivos: Listar os recursos de declaraes SQL; Executar declaraes SQL bsicas.

RECURSOS DE DECLARAES SQL


Seleo Colunas

DECLARAO SQL BSICA


SELECT FROM

identifica a(s) coluna(s); identifica a(s) tabela(s).

Tabela 1 Join (Juno)

Tabela 2

SELECT [DISTINCT] {*, column [alias],...} FROM table

Tabela 1

Tabela 2
3 4

9/9/2011

ESCREVENDO DECLARAES SQL


Declaraes

ESCREVENDO DECLARAES SQL


Qualquer

SQL podem estar em uma ou mais linhas; Palavras chaves no podem ser abreviadas ou estar separadas entre linhas; Clusula so normalmente separadas entre linhas; Tabulao e identao so usadas para melhorar legibilidade.

forma abaixo do comando vlida:

SELECT * FROM empregado select * from empregado select * from empregado

ESCREVENDO DECLARAES SQL


Um

ESCREVENDO DECLARAES SQL


Selecionando

bloco de pesquisa simples

colunas especficas

A declarao SELECT retorna dados de uma tabela do BD. Ex.: Para trazer o cdigo, nome e o salrio de todos os empregados da tabela empregado

SELECT cod_empregado, nomeempregado, val_salario FROM empregado

possvel tambm selecionar todas as colunas de uma tabela.

SELECT * FROM empregado


7 8

9/9/2011

ESCREVENDO DECLARAES SQL

SELECIONANDO AS TABELAS
A clusula

FROM define uma lista_de_tabelas a serem consultadas.

SELECT lista_de_colunas FROM lista_de_tabelas

SELECT * FROM empregado

10

SELECIONANDO VARIVEIS

EXPRESSES ARITMTICAS
Expresses

O comando SELECT pode ser utilizado para mostrar o contedo de variveis, valores literais, etc.

podem ser criadas sobre datas e nmeros usando os seguintes operadores:


Operador Descrio Adio Subtrao Multiplicao Diviso

SELECT @@VERSION
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

+ * /

Nota: @@VERSION uma varivel global do SQL Server que contm a verso do SQL Server utilizado.
11 12

9/9/2011

COLUNAS DERIVADAS
Colunas

COLUNAS DERIVADAS
SELECT NomeEmpregado, val_salario, val_salario + 300 FROM empregado

derivadas so aquelas resultadas de alguma expresso ou clculo. Possui um comportamento semelhante ao de uma coluna, mas no realmente armazenada em uma tabela. No se pode incluir, alterar, ou deletar valores de uma coluna derivada.

13

14

USANDO PARNTESES
SELECT NomeEmpregado, val_salario, 12 * (val_salario + 100) FROM empregado

VALORES NULOS (NULL)


Nulo

(NULL) um valor que est indisponvel, desconhecido ou que no se aplica. Nulo no a mesma coisa que zero ou branco. Zero um nmero, e um espao em branco um caracter. Colunas de qualquer tipo podem conter NULL, a menos que seja definida como NOT NULL ou como PRIMARY KEY.
16

15

9/9/2011

VALORES NULOS (NULL)


SELECT NomeEmpregado, val_salario, val_comissao FROM empregado

CARACTERES LITERAIS
Um

literal um caractere, expresso ou nmero includo na clusula SELECT; Data e caracteres literais devem ser colocados dentro de apstrofos (ou aspas simples); Cada string de caracteres listado uma vez para cada linha retornada.
SELECT 'SQL Server'

17

18

DEFININDO UM ALIAS (APELIDO) PARA


COLUNA
Pode-se

DEFININDO UM ALIAS (APELIDO) PARA


COLUNA
SELECT NomeEmpregado AS nome, val_salario AS salario FROM empregado

renomear o cabealho da coluna definindo um Alias (apelido); muito til para nomear colunas derivadas com a sua funcionalidade; Deve ser escrito imediatamente aps o nome da coluna. A palavra reservada AS opcional e deve ser usada entre o nome da coluna e o alias; Deve ser colocado entre apstrofos se contiver espaos em branco.
19

SELECT NomeEmpregado AS Nome, val_salario * 12 AS 'Salrio Anual' FROM empregado

20

9/9/2011

OPERAES DE CONCATENAO
Concatena

LINHAS DUPLICADAS
A exibio

colunas ou strings de caracteres com outras colunas; representado pelo operador mais ( + ); A coluna resultante do tipo caractere.
SELECT NomeEmpregado +' - '+ num_cpf AS 'Empregado e CPF' FROM empregado

padro da query mostrar todas as linhas, inclusive as duplicadas.

SELECT cod_departamento FROM empregado

21

22

ELIMINANDO LINHAS DUPLICADAS


Linhas

ELIMINANDO LINHAS DUPLICADAS


Nota:

duplicadas so eliminadas usando a palavra chave DISTINCT dentro da clusula SELECT.

O resultado da clusula DISTINCT diretamente relacionado coleo de valores selecionados, exemplo da diferena.

SELECT DISTINCT cod_departamento FROM empregado

SELECT DISTINCT cod_departamento, NomeEmpregado FROM empregado

23

24

9/9/2011

CLUSULA ORDER BY
Para

CLUSULA ORDER BY
A ordenao

determinar a sada do resultado em uma ordem, use a clusula ORDER BY. Se estiver presente, esta deve ser a ltima clusula do comando SELECT.
SELECT expr FROM table [WHERE condition(s)] [ORDER BY {column, expr} [ASC|DESC]]

default sempre ASC, ou seja,

ascendente.
SELECT NomeEmpregado, cod_departamento, dat_admissao FROM empregado ORDER BY NomeEmpregado

onde: ORDER BY especifica a ordem ASC define como ordem crescente (default) DESC define como ordem decrescente.
25 26

CLUSULA ORDER BY
Retornando

ORDENANDO POR MLTIPLAS COLUNAS


A ordem

em ordem decrescente.

SELECT NomeEmpregado, cod_departamento, dat_admissao FROM empregado ORDER BY NomeEmpregado DESC

obedece a seqncia de colunas listadas e pode-se ordenar por uma coluna que no esteja no SELECT.

SELECT NomeEmpregado, cod_departamento, val_salario FROM empregado ORDER BY cod_departamento, val_salario

27

28

9/9/2011

CLUSULA WHERE
Os

CLUSULA WHERE
A query

comandos usados at agora no tm a clusula WHERE. Neste caso, todas as linhas da tabela so retornadas. A clusula WHERE especifica uma condio que seleciona as linhas, e apenas as que satisfazem essa condio sero mostradas. A clusula WHERE segue a clusula FROM.
SELECT FROM [WHERE [DISTINCT] {*, column [alias], ...} table condition(s)]
29

abaixo far com que sejam apresentados o cdigo, nome e salrio de todos os empregados do departamento que possui o cdigo 10.

SELECT cod_empregado, nomeempregado, val_salario FROM empregado WHERE cod_departamento = 10

30

CLUSULA WHERE
Opcionalmente

STRINGS DE CARACTERES E DATAS


Strings

podemos ainda extrair esta seleo com uma determinada ordenao.

SELECT cod_empregado, nomeempregado, val_salario FROM empregado WHERE cod_departamento = 10 ORDER BY val_salario

de caracteres e datas so colocados entre aspas simples (ou apstrofos); Datas so format-sensitive; O formato default para data 'yyyy-MM-dd'.

31

32

9/9/2011

STRINGS DE CARACTERES E DATAS


SELECT cod_empregado, num_cpf, cod_cargo FROM empregado WHERE nomeempregado = 'PAULO COSTA'

SELECT cod_empregado, nomeempregado, num_cpf, cod_cargo FROM empregado WHERE dat_admissao = '2004-02-02'

33