Escolar Documentos
Profissional Documentos
Cultura Documentos
Comando SELECT
Elementos do comando SELECT Selecionando colunas de uma tabela Usando ALIAS Selecionando linhas especficas
GROUP BY
Agrupa os resultados com base nas colunas indicadas
HAVING
Filtro adicional
5
Exemplo1: SELECT *
Obtendo todas as colunas de HumanResources.Employee onde o EmployeeID menor que 10.
USE AdventureWorks; GO SELECT * FROM HumanResources.Employee WHERE EmployeeID < 10; GO
6
Exemplo3: SELECT...WHERE...
Seleciona o SalesPersonID, o TerritoryID, SalesQuota e ModifiedDate de Sales.SalesPerson onde a ModifiedDate menor que 2003-01-01. 2003- 01USE AdventureWorks; GO SELECT SalesPersonID, TerritoryID, SalesQuota, ModifiedDate FROM Sales.SalesPerson WHERE ModifiedDate < '2003-01-01' '2003- 01GO
8
Usando ALIAS
ALIAS = Apelido Especificar um ALIAS permite chamar as tabelas pelo apelido ao invs de usar os nomes, nem sempre simples. Ao efetuar junes (JOIN) usamos multiplas tabelas, o que pode causar confuso.
Exemplo1: ALIAS
Selecione da tabela A o EmployeeID, o NationalIDNumber, eo Title de HumanResources.Employee como A onde o MaritalStatus igual a M (merried = casado);
USE AdventureWorks; GO SELECT A.EmployeeID, A.NationalIDNumber, A.Title FROM HumanResources.Employee AS A WHERE MaritalStatus = 'M'; GO
10
Exemplo2: ALIAS
Selecione: Na tabela P ProductID e Name e na tabela O UnitPrice e DueDate de Purchasing.PurchaseOrderDetail como O e Production.Product como P onde da tabela P o ProductID igual a o ProductID da tabela O. O.
USE AdventureWorks; GO SELECT P.ProductID, P.Name, O.UnitPrice, O.DueDate FROM Purchasing.PurchaseOrderDetail AS O, Production.Product AS P WHERE P.ProductID = O.ProductID; GO
11
Exemplo3: ALIAS
Selecione da tabela E EmployeeID, AddressID e da tabela A AddressLine1 de HumanResources.EmployeeAddress como E e Person.Address como A onde da tabela E o AddressID seja igual a o AddressID da tabela A
USE AdventureWorks; GO SELECT E.EmployeeID, E.AddressID, A.AddressLine1 FROM HumanResources.EmployeeAddress AS E, Person.Address AS A WHERE E.AddressID = A.AddressID; GO
12
Normalmente no usa-se todas as linhas de uma tabela; usaCondicionar as linhas a serem usadas permite:
Poupar recursos de Entrda/Sada Melhorar o trfego na rede Reduz o tempo de processamento do SQL Server
Exempo1: WHERE (N = Y)
Selecione o NationalIDNumber e o Title de AdventureWorks.HumanResources.Employee onde EmployeeID = 5
SELECT NationalIDNumber, Title FROM AdventureWorks.HumanResources.Employee WHERE EmployeeID = 5; GO
14
Exemplo3: WHERE (N = Y)
Selecione ProductID, ProductNumber de AdventureWorks.Production.Product onde Name = Blade (Lmina).
SELECT ProductID, ProductNumber FROM AdventureWorks.Production.Product WHERE Name = 'Blade'; GO
16
Filtrando Dados
Operadores de comparao Comparaes com String Operadores lgicos Intervalo de valores Selecionando valores de uma lista Condies para identificar uma lista ou um intervalo de valores
Operadores de Comparao
Operador = > < >= <= <> != !< !> Descrio Igual a Maior que Menor que Maior ou igual a Menor ou igual a Diferente de Diferente de No menor No maior
Operadores de comparao so usados para comparar duas expresses. Podem ser usados em todas expresses, exceto aquelas com os tipos de dados:
Text NText Image
Os operadores !=, !< e !> no esto inclusos no padro ANSI SQL-92 SQL18
20
expressao
Expresso do tipo string vlida;
comparacao
Expresso do tipo string valida;
caractere
Caractere curinga colocado em qualquer posio de uma cadeia de caracteres para dar a impresso que ele faz parte da expresso. 22
Caracteres Curinga
CARACTERE CURINGA % _ (underline) [] [^] DESCRIO Substitui qualquer string com um ou mais caracteres. Substitui qualquer caractere. Substitui um caracter por um caractere CONTIDO em um intervalo de caracteres especfico. Substitui qualquer caracter por um caractere NO CONTIDO em um intervalo especifico.
23
25
Exemplo: LIKE 2[0-3]7 2[0Selecione EmployeeID, FirstName e JobTitle de HumanResources.vEmployee onde IDEmployee comea com 2, tem os nmeros entre 0, 1, 2 e 3, e termina com 7.
USE AdventureWorks; GO SELECT EmployeeID, FirstName, JobTitle FROM HumanResources.vEmployee WHERE EmployeeID LIKE '2[0-3]7'; '2[0GO
26
27
NOT
Retorna V se expressao = F; Retorna F se expressao = V; Retorna D se expressao = D.
28
Exemplo: AND
Selecione ContactID, EmailAddress de AdventureWorks.Person.Contact onde FirstName igual a Alexa e LastName igual a Watson.
SELECT ContactID, EmailAddress FROM AdventureWorks.Person.Contact WHERE FirstName= 'Alexa' AND LastName='Watson'; GO
30
10
Exemplo: OR
Seleciona AddressID, AddressLine1, City de AdventureWorks.Person.Address onde City igual a Bothell ou igual a Seatle.
SELECT AddressID, AddressLine1, City FROM AdventureWorks.Person.Address WHERE City = 'Bothell' OR City = 'Seatle'; GO
31
Exemplo: NOT
Selecione CustomerID, FirstName, LastName, EmailAddress e City de AdventureWorks.Sales.vIndividualCustomer onde City no igual a Ballard.
SELECT CustomerID, FirstName, LastName, EmailAddress, City FROM AdventureWorks.Sales.vIndividualCustomer WHERE NOT City = 'Ballard'; GO
32
definido entre a expresso de inicio e de fim. NOT: Indica quando o resultado negatvo.
Obs: A condio NOT precede o uso de ndices e prejudica o desempenho da consulta. AND: Funciona como um elo entre o valor inicial e o final
Obs: expressao_teste, inicio e fim devem ter mesmo tipo de dado. expressao_teste,
33
11
Exemplo1: BETWEEN
Seleciona SalesPersonID, TerritoryID, SalesQuota e Bonus de AdventureWorks.Sales.SalesPerson onde o Bonus est entre 2000 e 5000 inclusive. inclusive.
SELECT SalesPersonID, TerritoryID, SalesQuota, Bonus FROM AdventureWorks.Sales.SalesPerson WHERE Bonus BETWEEN 2000 AND 5000; GO
34
Exemplo2: BETWEEN
Selecione ContactID, FirstName, LastName e EmailAddress de AdventureWorks.Person.Contact onde ContactID esteja entre 500 e 550 inclusive
SELECT ContactID, FirstName, LastName, EmailAddress FROM AdventureWorks.Person.Contact WHERE ContactID BETWEEN 500 AND 550; GO
35
expressao_teste: Qualquer expresso SQL Server 2005 vlida. subconsulta: Consulta que gera uma lista de resultados exp1, exp2, ..., expN: Lista de expresses ou valores a exp1, exp2, serem testados. A expressao_teste, subconsulta e/ou lista de expressao_teste, expresses (exp1, ..., expN) devem ser todas do (exp1, expN) mesmo tipo de dado. 36 Obs: Recomenda-se evitar a condio NOT Recomenda-
12
Exemplo1: com OR
Seleciona ProductID, Name, ProductNumber e Color de AdventureWorks.Production.Product onde Color igual a Black, ou Color igual a Silver ou Color igual a Red.
SELECT ProductID, Name, ProductNumber, Color FROM AdventureWorks.Production.Product WHERE ((Color = 'Black') OR (Color = 'Silver') OR (Color = 'Red')); 'Silver 37 GO
Exemplo1: com IN
Seleciona ProdutoID, Name, ProductNumber e Color de AdventureWorks.Production.Product onde Color igual a Black, Silver ou Red.
SELECT ProductID, Name, ProductNumber, Color FROM AdventureWorks.Production.Product WHERE Color IN ('Black', 'Silve', 'Red'); 38 GO
Exemplo2: com OR
Selecione o AddressID, AddressLine1 e City de AdventureWorks.Person.Address onde City seja igual a Seatle ou Cidade seja igual a Bothell
SELECT AddressID, AddressLine1, City FROM AdventureWorks.Person.Address WHERE ((City = 'Seatle') OR (City = 'Bothell')); GO
39
13
Exemplo2: com IN Selecione o AddressID, o AddressLine1 e City de AdventureWorks.Person.Address onde City seja igual a Seatle ou Bothell
SELECT AddressID, AddressLine1, City FROM AdventureWorks.Person.Address WHERE City IN ('Seatle', 'Bothell'); GO
40
Exemplo3: com OR
Seleciona ContactID, FirstName e EmailAddress de AdventureWorks.Person.Contact onde ContactID seja igual a 508 ou ContactID seja igual a 4700 ou ContacID seja igual a 9228 ou ContactID seja igual a 6045 ou ContactID seja igual a 19943
SELECT ContactID, FirstName, EmailAddress FROM AdventureWorks.Person.Contact WHERE ((ContactID = 508) OR (ContactID = 4700) OR (ContactID = 9228) OR (ContactID = 6045) OR (ContactID = 19943)); GO 41
Exemplo3: com IN
Seleciona ContactID, FirstName e EmailAddress de AdventureWorks.Person.Contact onde ContactID seja igual a 508, 4700, 9228, 6045 ou 19943
SELECT ContactID, FirstName, EmailAddress FROM AdventureWorks.Person.Contact WHERE ContactID IN (508, 4700, 9228, 6045, 19943); GO
42
14