• Nenhum resultado encontrado

3 INSTRUÇÕES SQL

N/A
N/A
Protected

Academic year: 2021

Share "3 INSTRUÇÕES SQL"

Copied!
11
0
0

Texto

(1)

3 INSTRUÇÕES SQL Prof George Fragoso

1. Instruções SQL...2

1.1 SELECT...2

1.1.1 ALIAS...5

1.1.2 DISTINCT...6

1.1.3 Ordenando as consultas cláusula ORDER BY...7

1.1.4 WHERE...8 1.1.5 LIKE...11 1.1.9 GROUP BY...13 1.1.10 HAVING...14 1.2 INSERT...14 1.2 UPDATE...16 1.3 DELETE...17 3.BIBLIOGRAFIA...18 1. Instruções SQL ( Structured Query Language) é uma linguagem estrutura de consulta padronizada pelo comitê ANSI(American National Standards Institute) para acesso e manipulação de dados em sistemas de banco de dados.

1.1 SELECTO objetivo da instrução select é selecionar dados de uma ou mais tabelas Sintax:

SELECT * | tabela.* | [tabela.]campo1 [AS alias1] [, [tabela.]campo2 [AS alias2] [, ...]]} FROM nome da tabela [, ...]

[WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ]

A formação mais simples da instrução select é select * from nomeTabela, onde o símbolo * significa selecionar todos os campos.

Utilizando o modelo abaixo faremos um conjunto de exemplos para melhor entendimento.

TB_CLIENTE NOCPF: bigint strNome: varchar(100) Cidade: varchar(100) strEstado: varchar(2) TB_NF NONF: bigint NOCPF: bigint DTFATURAMENTO: datetime

Ex1: Selecionando todos os dados da tabela TB_CLIENTE SELECT * FROM TB_CLIENTE

(2)

OBS: o Símbolo * significa selecionar todos os dados. Ex2: Selecionando CPF e nome da tabela TB_CLIENTE SELECT NOCPF,strNome FROM TB_CLIENTE

Ex3: Selecionando CPF e estado da tabela TB_CLIENTE SELECT NOCPF,strEstado FROM TB_CLIENTE

Até o momento selecionamos todos os dados de uma tabela. Com o auxílio do símbolo * foi possível selecionar todas as colunas da tabela, e percebemos também que podemos selecionar somente as colunas desejadas.

1.1.1 ALIAS

Uma outra função interessante é que podemos colocar alias, ou seja, apelidos em nome de colunas e tabelas, o que fazemos é trocar o nome físico da coluna ou tabela por qualquer nome

(3)

desejado. Para colocar um apelido basta escrever o nome físico da coluna ou tabela, dar um espaço ou escrever a palavra chave as, e entre apóstrofes o nome desejado para o campo se o mesmo tiver um nome composto, caso contrário não precisa estar entre apóstrofes.

Ex4: Selecionando CPF e estado da tabela TB_CLIENTE e colocando alias no campo NOCPF e strESTADO.

SELECT NOCPF 'Número do cpf',strEstado 'UF' FROM TB_CLIENTE

Ex5: Selecionando CPF e estado da tabela TB_CLIENTE e colocando alias no campo NOCPF e strESTADO usando a palavra as.

SELECT NOCPF as 'Número do CPF', strEstado as UF FROM TB_CLIENTE

Ex6: Selecionando CPF e estado da tabela TB_CLIENTE e colocando alias no campo NOCPF e strESTADO e colocando um alias na tabela cliente.

SELECT NOCPF , strEstado FROM TB_CLIENTE as CLIENTE ou

(4)

1.1.2 DISTINCT

O Predicado distinct elimina de uma consulta registros com os dados da seleção repetidos. Ex7: Selecionando estado da tabela TB_CLIENTE sem a utilização de distinct

SELECT strEstado FROM TB_CLIENTE as CLIENTE

Agora utilizando o distinct

Ex8: Selecionando estado da tabela TB_CLIENTE sem a utilização de distinct SELECT DISTINCT strEstado FROM TB_CLIENTE as CLIENTE

1.1.3 Ordenando as consultas cláusula ORDER BY

Ao retornar dados de nossa consulta precisamos muitas vezes ordenar os dados, por exemplo, que a seleção de todos os clientes retorne os clientes por ordem crescente de nomes, para isso utilizamos a cláusula order by do Select que possui esta função, para usá-lo basta colocar ao final do select a cláusula order by seguido pelo campo ou campos separados por virgula e logo após o tipo de ordenação, crescente utilizando a palavra ASC ou decrescente utilizando a palavra DESC, se for omitido ASC ou DESC o default (padrão) é ASC.

(5)

Ex9: Selecionando nome do cliente ordenando o resultado por ordem crescente de nome. SELECT strNome FROM TB_CLIENTE ORDER BY strNome

Ex10: Selecionando nome do cliente ordenando o resultado por ordem decrescente de nome. SELECT strNome FROM TB_CLIENTE ORDER BY strNome desc

1.1.4 WHERE

Até o momento foram realizadas consultas retornando todos os registros de uma tabela, se a tabela tivesse 2000 registros os mesmos seriam retornados nas consultas acima, mas nem sempre esta é a realidade , muitas vezes precisamos selecionar somente os dados desejados, ou seja , colocar uma condição de retorno de dados na consulta, e para isso utilizamos a cláusula where em conjuntos com as condições de seleção. A seguir veremos vários exemplos.

Ex11: Selecionando todos os dados de cliente onde o estado é SP. SELECT * FROM TB_CLIENTE WHERE strEstado = 'SP'

Ex12: Selecionando todos os dados de cliente onde o cpf é 28440492420. SELECT * FROM TB_CLIENTE WHERE NOCPF = 28440492420

(6)

Com a cláusula where podemos utilizar os seguintes operadores: Operador Descrição = Igual <> Diferente > Maior que < Menor que

>= Maior iqual que <= Menor igual que

BETWEEN Entre

LIKE

Procurar por um padrão

Exemplos com operador = já foram vistos, a seguir será mostrado o uso dos outros operadores. Ex13: Selecionando nome e estado do cliente onde estado é diferente de SP.

SELECT NOCPF,strNome FROM TB_CLIENTE WHERE strEstado <> 'SP'

Ex14: Selecionando todos os dados de nota onde o número de nota é maior que 1 SELECT * FROM tb_NF WHERE NONF > 1

Ex15: Selecionando todos os dados de nota onde o número de nota é menor que 4 SELECT * FROM tb_NF WHERE NONF < 4

(7)

SELECT * FROM tb_NF WHERE NONF <= 4

Ex17: Selecionando todos os dados de nota onde o número de nota é maior igual que 4 SELECT * FROM tb_NF WHERE NONF >= 4

Ex18: Selecionando todos os dados de nota onde o número está entre 1 e 5 SELECT * FROM tb_NF WHERE NONF BETWEEN 1 AND 5

1.1.5 LIKE

Podemos também retornar valores procurando por padrões em colunas, ou seja procurar um “pedaço” de um texto em uma coluna, para isso usamos o comando like. O caractere coringa que utilizamos é símbolo %, que tem a função de ignorar valores.

Ex19: Selecionando todos os clientes onde o nome começa com F SELECT * FROM TB_CLIENTE WHERE strNome LIKE 'F%'

Ex20: Selecionando todos os clientes onde o nome termina com A SELECT * FROM TB_CLIENTE WHERE strNome LIKE '%A'

(8)

1.1.6 AND e OR

Com a cláusula where podemos filtrar os resultados impondo uma condição como já foi visto até o momento , ou podemos impor mais de uma condição, para isso utilizamos os operadores lógicos AND (E) e OR (OU).

Ex21: Selecionando todos os clientes onde o nome contenha a palavra RI e o estado seja SP. SELECT * FROM TB_CLIENTE WHERE strNome LIKE '%RI%' AND strEstado = 'SP'

Ex22:Selecionando todos clientes onde o nome contenha a letra E e estado igual a SP ou RJ. SELECT * FROM TB_CLIENTE WHERE strNome LIKE '%E%' AND strEstado = 'SP' OR strEstado = 'RJ'

1.1.7 IN

Este operador serve para selecionar registros onde a coluna desejada esteja em um domínio de informações.

Ex23:Selecionando todos clientes onde o estado seja em (SP e SP) SELECT * FROM TB_CLIENTE WHERE strEstado IN ('SP','RJ')

1.1.8 JOINS (Uniões)

Muitas vezes precisamos selecionar dados de duas ou mais tabelas para formar um resultado completo, para unir estas tabelas utilizamos as chaves primárias (PKs) e chaves estrangeiras (FKs) .O modelo que estamos utilizando para os exemplos tem a tabela cliente (TB_CLIENTE) e a

(9)

tabela Nota Fiscal(TB_NF) estas tabelas possuem uma relação, um cliente fatura uma ou mais notas fiscais, na tabela cliente a chave primária é NOCPF, e a tabela TB_NF possui a chave estrangeira NOCPF para poder fisicamente mostrar a relação. Com a chave primária e estrangeira podemos unir estas duas tabelas.

Ex24:Selecionando nome,estado numero de nota e data de faturamento onde o CPF do cliente é 28440492420.

Para o exemplo abaixo utilizamos Alias para facilitar na consulta, a parte em negrito da consulta mostra a União entre as duas tabelas (Join) , ou seja fizemos a ligação ente as duas tabelas pela chave primária da tabela cliente com a chave estrangeira cliente na tabela de nota fiscal.

SELECT C.strNome,C.strEstado,N.NONF,N.dtFaturamento FROM TB_CLIENTE C,TB_NF N WHERE C.NOCPF = N.NOCPF AND C.NOCPF = '28440492420'

1.1.9 GROUP BY

A instrução group by foi criada para trabalhar com funções agregadas como sum (coluna) somátoria, avg(Coluna) média , count(*) quantidade de retornada, entre outras. Com a instrução group by podemos agrupar resultados por determinadas colunas.

Ex26: Selecionando estado e a quantidade de registros agrupados por estado SELECT strEstado,COUNT(*) FROM TB_CLIENTE GROUP BY strEstado

1.1.10 HAVING

Possui a mesma função da cláusula where , impões condições. O having é utilizado juntamente com a instrução group by. Após o agrupamento das informações podemos colocar uma ou mais condicionais.

Ex27: Selecionando estado e a quantidade de registros agrupados por estado, mas somente mostrar estados que retornem mais de um registro.

SELECT strEstado,COUNT(*) FROM TB_CLIENTE GROUP BY strEstado HAVING COUNT(*) > 1

1.2 INSERT

O objetivo da instrução insert é incluir dados em uma determinada tabela. Sintax:

(10)

INSERT INTO nomeTabela

VALUES (valor1, valor2,....)

Você pode também especificar os campos que deseja inserir um dados INSERT INTO nomeTabela (coluna1, coluna2,...)

VALUES (valor1, valor2,....) Utilizando a tabela abaixo, segue alguns exemplos de Insert

TB_CLIENTE NOCPF: bigint strNome: varchar(100) Cidade: varchar(100) strEstado: varchar(2)

Ex28: Inserir todos os dados da tabela cliente

INSERT INTO TB_CLIENTE VALUES (28440492812,'FABIO','SÃO PAULO','SP') OBS:

Quando não especificamos os campos que queremos incluir devemos colocar na cláusula values todos os valores para os campos da tabela, em nossa tabela temos 4 campos, portanto devemos fornecer 4 valores na mesma seqüência dos campos da tabela. Todo campo do tipo string (char,varchar...etc) deve ter o valor informado entre duas apóstrofes.

O Campo NOCPF é primary key da tabela, portanto não será possível inserir dois clientes com o mesmo CPF o banco irá gerar um erro de violação de chave primária.

O Campo NOCPF é um campo obrigatório por ser uma chave primária. Ex29: Inserir O CPF e o nome do cliente

INSERT INTO TB_CLIENTE (NOCPF,strNOME) VALUES (28440492510,'JOSÉ MARIA') Ex30: Inserir O CPF, Nome e estado

INSERT INTO TB_CLIENTE (NOCPF,strNOME,strEstado) VALUES (28440492420,'MARIA','SP')

Ex31 : Inserir uma nota fiscal com todos os dados

TB_CLIENTE NOCPF: bigint strNome: varchar(100) Cidade: varchar(100) strEstado: varchar(2) TB_NF NONF: bigint NOCPF: bigint DTFATURAMENTO: datetime

INSERT INTO TB_NF VALUES (1,'20050101',28440492420) OBS:

Número da nota (NONF) é a chave primária da nota fiscal, portanto não é possível inserir mais de uma nota com o mesmo número.

(11)

Existe um relacionamento entre nota fiscal (TB_NF) e cliente (TB_CLIENTE), portanto não será possível inserir uma nota fiscal com um CPF que não existe na tabela de clientes.

Datas devem ficar entre apóstrofes, o SQLSERVER vem com configuração padrão AAAAMMDD.

1.2 UPDATE A instrução update tem como objetivo alterar um ou mais dados de uma em uma tabela.

Sintax

UPDATE NOME_TABELA SET CAMPO1=VALOR1,CAMPO2=VALOR2...n WHERE CONDIÇÕES.

OBS: AS CONDIÇÕES DA CLÁUSULA WHERE SÃO AS MESMA DA MOSTRADAS NA CLÁUSULA SELECT.

Ex32: Alterar o nome do cliente com CPF= 28440492420 para Maria de lurdes. Antes

UPDATE TB_CLIENTE SET strNome='MARIA DE LURDES' WHERE NOCPF = 28440492420..

Ex33: Alterar o estado para SP e cidade para São Paulo para todos os clientes que são do estado RJ,

UPDATE TB_CLIENTE SET strEstado='SP',Cidade='SAO PAULO' WHERE strEstado='RJ' 1.3 DELETE A instrução delete tem como objetivo eliminar (apagar) registros de uma tabela. Sintax:

DELETE FROM NOME_TABELA WHERE CONDIÇÕES

OBS: AS CONDIÇÕES DA CLÁUSULA WHERE SÃO AS MESMA DA MOSTRADAS NA CLÁUSULA SELECT.

Ex34: APAGAR O CLIENTE DE CPF = 28440492420

DELETE FROM TB_CLIENTE WHERE NOCPF = 28440492420 3.BIBLIOGRAFIA

NAVATHE, ELMASRI. Sistema de banco de dados. 4º Edição. Editora Pearson. HTTP://WWW.W3SCHOOLS.COM/SQL

(12)

Referências

Documentos relacionados

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

CENTROS ECORREGIONAIS: Embrapa Amazônia Ocidental; Embrapa Cerrados; Embrapa Clima Temperado; Embrapa Acre; Embrapa Amapá; Embrapa Rondônia; Embrapa Roraima; Embrapa Meio-Norte;

Este trabalho foi realizado com o objetivo de avaliar a quantidade de lodo de esgoto produzido pela ETE Belém, estação que produz lodo aeróbio e utiliza a caleação como método

Dada a plausibilidade prima facie da Prioridade do Conhecimento Definicional, parece que não se poderia reconhecer instâncias de F- dade ou fatos essenciais acerca

Eles poderão lhe informar se é necessário utilizar algum método contraceptivo adicional (por exemplo preservativo) e neste caso, por quanto tempo, ou se você precisa trocar

Você pode encontrar os dados técnicos atuais na folha de dados correspondente.. Âmbitos

O emprego do contraste negativo na artrografia tomográfica do joelho de cães foi ideal para a identificação das estruturas intra-articulares, tais como o ligamento

O PROCURADOR DA REPÚBLICA NO MUNICÍPIO DE JOAÇABA/SC, com fundamento no Regulamento do Programa de Estágio do Ministério Público da União aprovado pela Portaria