Você está na página 1de 26

A fundao de cada banco de dados relacional do Sistema de Gesto um objeto de banco de dados chamado de tabela.

. Cada banco de dados consiste em uma ou mais tabelas, que armazenam os dados do banco de dados / informaes. Cada mesa tem o seu prprio nome e consiste de colunas e linhas. As colunas da tabela de banco de dados (tambm chamados de campos da tabela) tm seus prprios nomes originais e tm um tipo de dados pr-definidos. colunas da tabela pode ter vrios atributos que definem a funcionalidade da coluna (a coluna uma chave primria, h um ndice definido na coluna, a coluna tem um valor padro determinados, etc.) Enquanto as colunas da tabela descrever os tipos de dados, as linhas da tabela contm os dados reais para as colunas. Aqui est um exemplo de uma tabela do banco de dados simples, contendo os dados dos clientes. A primeira linha, em negrito, contm os nomes das colunas da tabela: Tabela: Clientes Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

Agora que aprendemos o que uma tabela do banco, podemos continuar com nossa sql tutorial e aprender a manipular os dados dentro das tabelas do banco de dados.
O SQL SELECT instruo usada para selecionar dados de uma tabela do banco de dados SQL. Isso geralmente o primeiro comando SQL SQL aprende todos os novatos e porque esta a instruo SQL SELECT um dos mais utilizados comandos SQL. Por favor, d uma olhada no geral SELECT SQL sintaxe:

SELECT FROM tabela1

coluna1,

coluna2,

Coluna3,

A lista de nomes de colunas aps o SELECT SQL comando determina quais as colunas que voc deseja que seja retornado no conjunto de resultados. Se voc deseja selecionar todas as colunas de uma tabela do banco de dados, voc pode usar a seguinte instruo SQL:

SELECT FROM tabela1

Quando a lista de colunas a seguir o comando SQL SELECT substitudo com asterisco (*) todas as colunas da tabela so retornadas. Palavra de cautela aqui, sempre melhor para

especificar explicitamente as colunas na lista SELECT, pois isso ir melhorar o seu desempenho de consulta de forma significativa. O nome da tabela aps a palavra chave FROM SQL (no nosso caso, Tabela 1) indica ao interpretador SQL qual tabela a ser usada para recuperar os dados O SQL SELECT INTO comando usado para selecionar dados de uma tabela do banco de dados SQL e inseri-lo em uma tabela diferente, ao mesmo tempo. O general SQL SELECT INTO sintaxe parecido com este:

SELECT INTO FROM tabela1

coluna1,

coluna2,

Coluna3, Tabela2

A lista de nomes de colunas aps o SELECT SQL comando determina quais as colunas que sero copiadas, eo nome da tabela aps a palavra-chave em SQL, que especifica a tabela para copiar essas linhas. Se quisermos fazer uma cpia exata dos dados em nossa tabela Clientes, temos o seguinte SQL SELECT INTO declarao:

SELECT EM FROM Clientes

* Customers_copy

O SQL DISTINCT clusula utilizada em conjunto com a palavra-chave SELECT SQL, para retornar um conjunto de dados com entradas exclusivas para banco de dados da tabela determinada coluna. Vamos usar nossa tabela de banco de dados dos clientes para ilustrar o uso do SQL DISTINCT . Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

Por exemplo, se quisermos selecionar todos os sobrenomes distinta da nossa tabela de clientes, vamos utilizar o seguinte SQL DISTINCT declarao: SELECT Sobrenome DISTINCT FROM Clientes

O resultado da DISTINCT SQL expresso acima ser parecido com este:

Apelido Smith Goldfish Brown O SQL WHERE clusula usada para selecionar os dados de forma condicional, adicionando-a j existente consulta SQL SELECT. Ns vamos usar a clientes da tabela do captulo anterior, para ilustrar o uso do SQL WHERE comando. Tabela: Clientes Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

Se quisermos selecionar todos os clientes de nossa tabela de banco de dados, tendo o sobrenome 'Smith', precisamos usar a sintaxe SQL: SELECT * FROM Clientes WHERE sobrenome = 'Smith'

O resultado da expresso SQL acima sero os seguintes: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 626 222-2222 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Nesta consulta SQL simples, usamos o operador "=" (igual) em nosso WHERE critrios: Sobrenome = 'Smith' Mas podemos usar qualquer um dos seguintes operadores de comparao em conjunto com o SQL WHERE clusula: <> (No igual) SELECT *

FROM Clientes ONDE 'Smith' sobrenome <>

> (Maior que) SELECT * FROM Clientes ONDE DOB> '1 / 1 / 1970 "

> = (Maior ou igual) SELECT * FROM Clientes ONDE DOB => '1 / 1 / 1970 "

<(Menor que) SELECT * FROM Clientes ONDE DOB <'1 / 1 / 1970 "

<= (Menor ou igual) SELECT * FROM Clientes WHERE Data de Nascimento <= '1 / 1 / 1970 "

LIKE (semelhante) SELECT *

FROM Clientes WHERE telefone LIKE '626% '

Observe a sintaxe LIKE diferente com os diferentes RDBMS (sintaxe do SQL Server usado acima). Verifique o SQL LIKE artigo para obter mais detalhes. Entre (Define um intervalo) SELECT * FROM Clientes ONDE DOB ENTRE '1 / 1 / 1970 'e '1 / 1 / 1975 " Ns vamos usar a tabela Customers para ilustrar o SQL LIKE uso clusula: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

O SQL LIKE clusula muito til quando voc deseja especificar uma condio de pesquisa em sua clusula WHERE SQL, com base em uma parte do contedo da coluna. Por exemplo, se voc quer selecionar todos os clientes que FirstName comeando com "J" voc precisa usar a seguinte instruo SQL: SELECT * FROM Clientes WHERE Nome LIKE '% J'

Aqui est o resultado da instruo SQL acima: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 626 222-2222 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Se voc quer selecionar todos os clientes com nmeros de telefone comeando com '416 'voc vai usar essa expresso SQL:

SELECT * FROM Clientes WHERE telefone LIKE '416% '

O '%' um caractere curinga chamados e representa qualquer cadeia do nosso padro. Voc pode colocar o curinga em qualquer lugar na seqncia aps o LIKE do SQL clusula e voc pode colocar muitos curingas como como voc gosta tambm. Note-se que diferentes bancos de dados usam caracteres diferentes como caracteres curinga, para '%' exemplo um caractere curinga para o MS SQL Server representa qualquer cadeia, e '*' o caractere curinga correspondentes usados no MS Access. Outro personagem curinga "_" representa qualquer caractere nico. O '[]' especifica um intervalo de caracteres. D uma olhada na seguinte instruo SQL: SELECT * FROM Clientes WHERE telefone LIKE '[4-6] _6%'

Esta expresso SQL ir retornar todos os clientes que satisfaam as seguintes condies: A coluna de telefone comea com um dgito, entre 4 e 6 ([4-6]) segundo personagem na coluna Phone pode ser qualquer coisa (_) O terceiro personagem na coluna Phone 6 (6) O restante da coluna Phone pode ser qualquer seqncia de caracteres (%) Aqui est o resultado desta expresso SQL: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 626 222-2222 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 O SQL INSERT INTO sintaxe tem duas principais formas eo resultado de qualquer um deles est adicionando uma nova linha na tabela de banco de dados. A forma primeira sintaxe da clusula INSERT INTO SQL no especifica os nomes das colunas onde os dados sero inseridos, mas apenas seus valores:

INSERT INTO tabela1 VALUES (valor1, valor2, valor3 ...)

A segunda forma do SQL INSERT INTO comando, especifica as colunas e os valores a serem inseridos neles: INSERT INTO tabela1 (coluna1, coluna2, Coluna3 ...) VALUES (valor1, valor2, valor3 ...)

Como voc j deve ter adivinhado, o nmero de colunas da segunda forma de sintaxe INSERT INTO deve corresponder ao nmero de valores na instruo SQL, caso contrrio voc ter um erro. Se quisermos inserir uma nova linha em nossa tabela de clientes, estamos indo para usar uma das seguintes duas instrues SQL: INSERT INTO clientes VALUES ('Pedro', 'Caa', 'peter.hunt @ tgmail.net', '1 / 1 / 1974 ', '626 888-8888)

INSERT INTO Clientes (Nome, sobrenome, e-mail, data de nascimento, telefone) VALUES ('Pedro', 'Caa', 'peter.hunt @ tgmail.net', '1 / 1 / 1974 ', '626 888-8888)

O resultado da execuo de uma das duas declaraes SQL INSERT INTO ser uma nova linha em nosso Clientes tabela do banco: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

Pedro Caa peter.hunt @ tgmail.net 1/1/1974 626 888-8888 Se voc deseja inserir os dados de apenas algumas das colunas da tabela, voc ter que usar o formulrio segunda sintaxe do SQL INSERT INTO clusula, porque a primeira forma ir produzir um erro se voc no apresentar valores para todas as colunas . Para inserir apenas as colunas Nome e sobrenome, execute a seguinte instruo SQL: INSERT INTO Clientes (Nome, Sobrenome) VALUES ('Pedro', 'Caa') O SQL UPDATE sintaxe geral assim: UPDATE tabela1 SET coluna1 = Valor1, valor2 = coluna2 ONDE Some_Column = Some_Value

O SQL UPDATE altera a clusula de dados j existente na linha de base (s) e, geralmente, ns precisamos adicionar uma condicional SQL WHERE clusula ao nosso SQL UPDATE declarao a fim de especificar qual linha (s) que pretende atualizar. Se quiser atualizar o Sr. Steven Goldfish a data de nascimento para '5 / 10/1974 'no nosso clientes tabela de banco Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 temos o seguinte SQL UPDATE declarao: UPDATE Clientes SET DOB = '5 / 10/1974 ' WHERE sobrenome = 'Goldfish' AND nome = 'Steven' 626 222626 222-2222

Se no especificar uma clusula WHERE na expresso SQL acima, todos os clientes DOB ser atualizado em '5 / 10/1974 ', que deve ter cuidado com o SQL UPDATE uso do comando. Podemos atualizar a tabela do banco de dados vrias linhas de uma s vez, usando a clusula SQL WHERE na nossa declarao de UPDATE. Por exemplo, se queremos mudar o nmero do telefone para todos os clientes com o sobrenome Smith (temos 2 em nossa tabela de clientes exemplo), precisamos usar a seguinte SQL UPDATE declarao: UPDATE Clientes SET Phone = '626 555-5555 '626 555-5555' WHERE sobrenome = 'Smith'

Aps a execuo da expresso SQL UPDATE acima, a tabela Clientes vo olhar como se segue: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 626 555-5555 Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 626 555-5555 At agora, ns aprendemos como selecionar dados de uma tabela do banco de dados e como inserir e atualizar dados em uma tabela do banco de dados. Agora hora de aprender a remover dados de um banco de dados. A vem o SQL DELETE indicao! O SQL DELETE comando tem a seguinte sintaxe SQL genrico: DELETE FROM tabela1 ONDE Some_Column = Some_Value

Se voc ignorar a clusula SQL WHERE ao executar SQL DELETE expresso, ento todos os dados na tabela especificada sero excludos. A instruo SQL a seguir ir apagar todos os dados da nossa tabela clientes e vamos acabar com o vazio tabela completa: DELETE FROM tabela1

Se voc especificar uma clusula WHERE no seu SQL DELETE declarao, apenas as linhas da tabela que satisfaa as WHERE critrios sero excludos: DELETE FROM Clientes WHERE sobrenome = 'Smith'

A consulta SQL acima ir apagar todos os registros do banco de dados com "sobrenome" Smith e vai deixar o Customers tabela no seguinte estado: Nome Apelido E-mail Data de Nascimento Telefone Steven Goldfish goldfish@fishhere.net 4/4/1974 4545begin_of_the_skype_highlighting end_of_the_skype_highlighting Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 323 455323 455-4545

O SQL ORDER BY clusula vem a calhar quando voc quer ordenar os conjuntos de resultados SQL por alguma coluna (s). Por exemplo, se voc deseja selecionar todas as pessoas da tabela Clientes e de ordem familiar j o resultado pela data de nascimento, voc usar a seguinte declarao: SELECT * FROM Clientes ORDER BY Data de Nascimento

O resultado da expresso SQL acima sero os seguintes: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 626 222626 222-2222

Como voc pode ver as linhas so ordenadas em ordem crescente pela coluna de data de nascimento, mas que se voc quiser classificar em ordem decrescente? Para fazer isso voc ter que adicionar a palavra-chave DESC aps o SQL SQL ORDER BY clusula: SELECT * FROM Clientes

ORDER BY DESC Data de Nascimento

O resultado da consulta SQL acima ficar assim: Nome Apelido E-mail Data de Nascimento Telefone James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Joo Smith John.Smith @ yahoo.com 2/4/1968 626 222-2222 Se voc no especificar como encomendar suas fileiras, em ordem alfabtica ou reverso, que o conjunto de resultados ordenada por ordem alfabtica, da o que se segue para SQL expresses produzem o mesmo resultado: SELECT * FROM Clientes ORDER BY Data de Nascimento SELECT * FROM Clientes ORDER BY ASC Data de Nascimento

Voc pode classificar o seu conjunto de resultados por mais de uma coluna especificando as colunas no SQL ORDER BY lista. A expresso SQL a seguir por ordem de data de nascimento e Sobrenome: SELECT * FROM Clientes ORDER BY data de nascimento, sobrenome O SQL e clusula usada quando voc quiser especificar mais de uma condio em seu SQL WHERE clusula, e, ao mesmo tempo voc quer todas as condies para ser verdade. Por exemplo, se voc quer selecionar todos os clientes com Nome "Joo" e sobrenome "da Silva", voc vai usar a expresso SQL a seguir: SELECT * FROM Clientes WHERE nome = 'John' AND Sobrenome = 'Smith'

O resultado da consulta SQL acima : Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting 2/4/1968 626 222626 222-2222

A linha a seguir na nossa tabela de clientes, cumpre a segunda das condies (sobrenome = 'Smith'), mas no a primeira (nome = 'Joo'), e por isso que no devolvido pela nossa consulta SQL: Nome Apelido E-mail Data de Nascimento Telefone James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 O SQL ou instruo usada de forma semelhante e as diferenas significativas em relao ao SQL E essa clusula ou vai retornar todas as linhas que satisfaam uma das condies previstas na clusula WHERE. Se quisermos selecionar todos os clientes que tenham 'James' Nome ou 'Paula' Nome precisamos usar a seguinte instruo SQL: SELECT * FROM Clientes WHERE nome = 'James' OR nome = 'Paula'

O resultado desta consulta ser o seguinte: Nome Apelido E-mail Data de Nascimento Telefone Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Voc pode combinar E e as clusulas ou de qualquer maneira que voc quer e voc pode usar parnteses para definir suas expresses lgicas. Aqui est um exemplo de uma consulta SQL, a seleo de todos os clientes com 'Brown' Sobrenome e Nome ou 'James' ou 'Paula': SELECT * FROM Clientes WHERE (nome = 'James' OR nome = 'Paula') e sobrenome = 'Brown'

O resultado da expresso SQL acima ser:

Nome Apelido E-mail Data de Nascimento Telefone Paula Brown pb@herowndomain.org 5/24/1978 begin_of_the_skype_highlighting 416 323-3232
pesquisa SQL WHERE. O SQL EM sintaxe parecido com este:

416

323-3232

O SQL EM clusula permite que voc especifique valores discretos em seus parmetros de

SELECT FROM

coluna1,

coluna2,

Coluna3,

... tabela1

WHERE coluna1 IN (Valu1, valor2, ...) Vamos usar a tabela EmployeeHours para ilustrar como SQL IN funciona: Empregado John Smith Allan Babel Tina Coroa John Smith Allan Babel Tina Coroa John Smith Allan Babel Tina Coroa Data 5/6/2004 5/6/2004 5/6/2004 5/7/2004 5/7/2004 5/7/2004 5/8/2004 5/8/2004 5/8/2004 Horas 8 8 8 9 8 10 8 8 9

Considere a seguinte consulta SQL usando o SQL EM clusula:

SELECT DA Data WHERE IN ('5 / 6 / 2004 ', '5 / 7 / 2004)

* EmployeeHours

Esta expresso SQL ir selecionar somente as entradas que a coluna Data tem valor de '5 / 6 / 2004 "ou" 5 / 7 / 2004, e voc pode ver o resultado abaixo: Empregado John Smith Allan Babel Tina Coroa John Smith Allan Babel Tina Coroa Data 5/6/2004 5/6/2004 5/6/2004 5/7/2004 5/7/2004 5/7/2004 Horas 8 8 8 9 8 10

Podemos usar o SQL EM afirmao com outra coluna em nossa tabela EmployeeHours:

SELECT DA Onde as horas em (9, 10) O resultado da consulta SQL acima ser:

* EmployeeHours

Empregado John Smith Tina Coroa Tina Coroa

Data 5/7/2004 5/7/2004 5/8/2004

Horas 9 10 9

A & E entre o SQL keywords definir um intervalo de dados entre dois valores. O SQL Server entre sintaxe parecido com este: SELECT coluna1, coluna2, Coluna3, ... FROM tabela1 WHERE coluna1 entre valor1 e valor2

Os dois valores que definem o intervalo para SQL ENTRE clusula pode ser datas, nmeros ou apenas texto. Em contraste com o SQL na chave, que permite que voc especifique valores discretos em seu SQL WHERE critrios, entre o SQL lhe d a habilidade para especificar um intervalo em seu critrio de pesquisa. Ns vamos usar a tabela Customers familiar para mostrar como SQL entre obras: Nome Apelido E-mail Data de Nascimento Telefone Joo Smith John.Smith @ yahoo.com 2/4/1968 2222begin_of_the_skype_highlighting end_of_the_skype_highlighting Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Considere o seguinte SQL ENTRE declarao: SELECT * FROM Clientes ONDE DOB ENTRE '1 / 1 / 1975 'e '1 / 1 / 2004 " 626 222626 222-2222

O SQL ENTRE declarao acima ir selecionar todos os clientes que tm coluna Data de nascimento entre '1 / 1 / 1975 'e '1 / 1 / 2004, data. Aqui est o resultado desta expresso SQL: Nome Apelido E-mail Data de Nascimento Telefone

Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888

aliases SQL pode ser utilizada com banco de dados e tabelas com as colunas da tabela de banco de dados, dependendo da tarefa que est realizando. aliases de coluna SQL so usados para fazer a sada do seu SQL queries fcil de ler e mais significativa:

SELECT DA

empregado,

SUM

(horas),

SumHoursPerEmployee EmployeeHours

GROUP BY empregado No exemplo acima criamos alias SQL SumHoursPerEmployee eo resultado desta consulta SQL a seguinte: Empregado John Smith Allan Babel Tina Coroa SumHoursPerEmployee 25 24 27

Considere a seguinte instruo SQL, mostrando como usar apelidos de tabela SQL:

SELECT DESDE AS EmployeeHours Emp Aqui est o resultado da expresso SQL acima: Empregado John Smith Allan Babel Tina Coroa

Emp.Employee

Os apelidos de tabela SQL so muito teis quando voc selecionar dados de vrias tabelas. O SQL COUNT funo agregada usada para contar o nmero de linhas em uma tabela do banco de dados. A CONTAGEM SQL sintaxe simples e parecido com este:

SELECT FROM tabela1

COUNT

(coluna1)

Se quisermos contar o nmero de clientes na nossa tabela de clientes, vamos utilizar o seguinte SQL COUNT declarao:

SELECT FROM Clientes

COUNT

(sobrenome)

AS

NumberOfCustomers

O resultado desta CONTAGEM SQL consulta ser:

NumberOfCustomers 4 O SQL MAX funo agregada nos permite selecionar mais alto o nvel mximo) valor (para uma determinada coluna. O SQL MAX sintaxe da funo muito simples e parecido com este:

SELECT FROM tabela1

MAX

(coluna1)

Se usarmos a tabela Customers do nosso captulos anteriores, podemos selecionar a maior data de nascimento com o seguinte MAX SQL expresso:

SELECT FROM Clientes

MAX

(DOB)

AS

MaxDOB

O SQL MIN funo agregada nos permite selecionar mnimo mais baixo) valor (para uma determinada coluna. O SQL MIN sintaxe da funo muito simples e parecido com este:

SELECT FROM tabela1

MIN

(coluna1)

Se usarmos a tabela Customers do nosso captulos anteriores, podemos selecionar a menor data de nascimento com o seguinte SQL MIN expresso:

SELECT FROM Clientes

MIN

(DOB)

AS

MinDOB

O SQL AVG funo de agregao seleciona o valor mdio para a coluna determinada tabela. D uma olhada no AVG SQL sintaxe:

SELECT FROM tabela1

AVG

(coluna1)

Se quisermos descobrir o que o ValorDaVenda mdia na tabela de vendas, usaremos o seguinte SQL AVG declarao:

SELECT As vendas da

AVG

(ValorDaVenda)

AS

AvgSaleAmount

o que resultar no conjunto de dados a seguir: AvgSaleAmount $ 195,73

O SQL SUM funo agregada permite selecionar o total de uma coluna numrica. O SQL SUM sintaxe mostrada abaixo:

SELECT FROM tabela1

SUM

(coluna1)

Ns vamos usar a tabela de vendas para ilustrar o uso do SQL SUM clusula: Vendas: Cliente 2 1 3 3 4 Data 5/6/2004 5/7/2004 5/7/2004 5/13/2004 5/22/2004 ValorDaVenda $ 100,22 $ 99,95 $ 122,95 $ 100,00 $ 555,55

Considere o seguinte SQL SUM declarao:

SELECT As vendas da

SUM

(ValorDaVenda)

Esta instruo SQL ir retornar a soma de todos os campos ValorDaVenda eo resultado ser: ValorDaVenda $ 978,67 Claro que voc pode especificar critrios de pesquisa usando a clusula WHERE SQL no seu SUM SQL instruo. Se voc deseja selecionar as vendas totais para o cliente com CustomerID = 3, voc ir usar a seguinte SQL SUM declarao:

SELECT As WHERE CustomerID = 3 O resultado ser: ValorDaVenda $ 222,95

SUM vendas

(ValorDaVenda) da

O SQL GROUP BY declarao usado junto com o agregado funes SQL, como SUM, proporcionar meios de agrupar o conjunto de dados de resultado do banco de dados da tabela determinada coluna (s). A melhor maneira de explicar como e quando usar o SQL GROUP BY declarao por exemplo, e isso que vamos fazer. Considere a tabela seguinte banco de dados chamado EmployeeHours armazenar a carga horria diria de cada trabalhador de uma empresa facciosos: Empregado John Smith Allan Babel Tina Coroa John Smith Allan Babel Tina Coroa John Smith Allan Babel Tina Coroa Data 5/6/2004 5/6/2004 5/6/2004 5/7/2004 5/7/2004 5/7/2004 5/8/2004 5/8/2004 5/8/2004 Horas 8 8 8 9 8 10 8 8 9

Se o gerente da empresa quer comear a simples soma de todas as horas trabalhadas por todos os empregados, ele precisa executar a seguinte instruo SQL:

SELECT DA EmployeeHours

SUM

(horas)

Mas e se o gerente pretende obter a soma de todas as horas para cada um dos seus declarao: empregados? Para fazer isso, ele precisa modificar sua consulta SQL e usar o SQL GROUP BY

SELECT DA GROUP BY empregado

empregado,

SUM

(horas) EmployeeHours

O resultado da expresso SQL acima sero os seguintes: Empregado John Smith Allan Babel Tina Coroa Horas 25 24 27

Como voc pode ver, temos apenas uma entrada para cada funcionrio, porque estamos agrupando pela coluna Funcionrio. O SQL GROUP BY clusula pode ser usado com outras funes agregadas SQL, SQL, por exemplo, AVG:

Empregado DA

SELECT,

AVG

(Horas) EmployeeHours

GROUP BY empregado O resultado da instruo SQL acima ser: Empregado John Smith Allan Babel Tina Coroa Horas 8.33 8 9

Em nossa tabela Employee podemos agrupar pela coluna data tambm, para descobrir qual o nmero total de horas trabalhadas em cada uma das datas na tabela:

SELECT DA GROUP BY Data

Data,

SUM

(horas) EmployeeHours

Aqui est o resultado da expresso SQL acima: Data 5/6/2004 5/7/2004 5/8/2004 Horas 24 27 25

O SQL HAVING clusula usada para restringir condicionalmente a sada de uma instruo SQL, de uma funo agregada SQL usados em sua lista de colunas. Voc no pode especificar critrios em uma clusula SQL WHERE contra uma coluna na lista SELECT de SQL que funo agregada usada. Por exemplo, a seguinte instruo SQL ir gerar um erro:

SELECT DA ONDE GROUP BY empregado

empregado, SUM

SUM (horas)>

(horas) EmployeeHours 24

O SQL HAVING clusula usada para fazer exatamente isso, para especificar uma condio para uma funo agregada que usado em sua consulta:

SELECT DA GROUP

empregado, BY

SUM

(horas) EmployeeHours empregado

HAVING SUM (horas)> 24 A instruo SQL acima ir selecionar todos os empregados ea soma das horas respectivas, desde que esta soma seja superior a 24. O resultado do SQL HAVING clusula pode ser visto abaixo: Empregado John Smith Horas 25

Tina Coroa

27

O SQL JOIN clusula utilizada sempre que temos que selecionar dados de duas ou mais tabelas. Para ser capaz de usar SQL JOIN clusula para extrair dados de duas (ou mais) tabelas, precisamos de uma relao entre determinadas colunas nestas tabelas. Ns estamos indo para ilustrar a nossa SQL JOIN exemplo, com as seguintes 2 tabelas: Clientes: Cliente Nome Apelido E-mail Data de Nascimento Telefone 1 Joo Smith John.Smith @ yahoo.com 2/4/1968 626 2222222begin_of_the_skype_highlighting 626 222-2222 end_of_the_skype_highlighting 2 Steven Goldfish goldfish@fishhere.net 4/4/1974 323 455-4545 3 Paula Brown pb@herowndomain.org 5/24/1978 416 323-3232 4 James Smith jim@supergig.co.uk 20/10/1980 416 323-8888 Vendas: Cliente Data ValorDaVenda 2 5/6/2004 $ 100,22 1 5/7/2004 $ 99,95 3 5/7/2004 $ 122,95 3 5/13/2004 $ 100,00 4 5/22/2004 $ 555,55 Como voc pode ver as duas tabelas tm domnio comum chamado CustomerID e graas a isso podemos extrair informao de ambas as tabelas, combinando suas colunas CustomerID. Considere a seguinte instruo SQL: SELECT Customers.FirstName, Customers.LastName, SUM (Sales.SaleAmount) AS SalesPerCustomer De clientes, vendas ONDE Customers.CustomerID = Sales.CustomerID GROUP BY Customers.FirstName, Customers.LastName

A expresso SQL acima ir selecionar todos os clientes distintos (o seu primeiro e ltimo nomes) eo respectivo montante total de dlares que gastaram.

O SQL JOIN condio foi especificada aps o SQL WHERE clusula e diz que os dois quadros tm de ser acompanhadas por suas respectivas colunas CustomerID. Aqui est o resultado desta instruo SQL: Nome Apelido SalesPerCustomers Joo Smith $ 99,95 Steven Goldfish $ 100,22 Paula Brown $ 222,95 James Smith $ 555,55 A instruo SQL acima pode ser re-escrita usando o SQL JOIN clusula como esta: SELECT Customers.FirstName, Customers.LastName, SUM (Sales.SaleAmount) AS SalesPerCustomer FROM Clientes JOIN Vendas SOBRE Customers.CustomerID = Sales.CustomerID GROUP BY Customers.FirstName, Customers.LastName

Existem 2 tipos de SQL JOINS - INNER JOINS e OUTER JOINS . Se voc no colocar palavras-chave ou EXTERIOR INTERIOR em frente ao SQL JOIN palavra-chave, ento INNER JOIN usado. Em suma "INNER JOIN" = "JOIN" (note que bancos de dados diferentes tm uma sintaxe diferente para a sua clusulas JOIN). O INNER JOIN vai selecionar todas as linhas das duas tabelas, desde que haja uma correspondncia entre as colunas estamos correspondncia. No caso, temos um cliente na tabela Clientes, que ainda no fez qualquer pedido (no existem entradas para este cliente na tabela de vendas), este cliente no sero listados no resultado da nossa consulta SQL acima. Se a tabela de vendas tem as seguintes linhas: Cliente Data ValorDaVenda 2 5/6/2004 $ 100,22 1 5/6/2004 $ 99,95 E usamos a mesma SQL JOIN declarao acima: SELECT Customers.FirstName, Customers.LastName, SUM (Sales.SaleAmount) AS SalesPerCustomer FROM Clientes JOIN Vendas SOBRE Customers.CustomerID = Sales.CustomerID GROUP BY Customers.FirstName, Customers.LastName

Iremos obter o seguinte resultado: Nome Apelido SalesPerCustomers Joo Smith $ 99,95 Steven Goldfish $ 100,22 Apesar de Paula e Tiago so listados como os clientes na tabela Clientes que no ir ser exibido porque no comprou nada. Mas e se voc quiser exibir todos os clientes e suas vendas, no importa se pedir algo ou no? Faremos isso com a ajuda do SQL OUTER JOIN clusula. O segundo tipo de SQL JOIN chamado SQL OUTER JOIN e tem dois sub-tipos chamados LEFT OUTER JOIN e RIGHT OUTER JOIN . O LEFT OUTER JOIN ou simplesmente LEFT JOIN (voc pode omitir a palavra-chave EXTERIOR, na maioria dos bancos de dados), seleciona todas as linhas da primeira tabela listada aps a clusula FROM, no importa se eles tiverem correspondncias na segunda tabela. Se modificar um pouco a nossa ltima declarao SQL para: SELECT Customers.FirstName, Customers.LastName, SUM (Sales.SaleAmount) AS SalesPerCustomer FROM Clientes LEFT JOIN Vendas SOBRE Customers.CustomerID = Sales.CustomerID GROUP BY Customers.FirstName, Customers.LastName

ea tabela de vendas ainda tem as seguintes linhas: Cliente Data ValorDaVenda 2 5/6/2004 $ 100,22 1 5/6/2004 $ 99,95 O resultado ser o seguinte: Nome Apelido SalesPerCustomers Joo Smith $ 99,95 Steven Goldfish $ 100,22 Paula Brown NULL

James Smith NULL Como voc pode ver, temos tudo seleccionado por parte dos clientes (primeira tabela). Para todas as linhas de clientes, que no tm uma correspondncia nas vendas (segundo quadro), a coluna SalesPerCustomer tem valor nulo (NULL, uma coluna contm nada). O RIGHT OUTER JOIN ou simplesmente RIGHT JOIN se comporta exatamente como o SQL LEFT JOIN , exceto que ela retorna todas as linhas da segunda tabela (tabela da direita em nosso SQL JOIN declarao).
MS SQL Server, ou simplesmente SQL Server RDBMS desenvolvido pela Microsoft SQL Server usa um dialeto do SQL chamada Transact-SQL (T-SQL). As verses anteriores do SQL Server 7 foram baseados em Sybase SQL Server, mas a partir do SQL Server 7.0 Microsoft motor reconstrudo banco de dados e SQL Server 7 tornou-se o primeiro banco de dados usando servidor GUI (interface grfica). SQL Server oferece suporte a stored procedures, transaes, replicao, espelhamento de banco de dados e clusterizao.

SQL Server 2005


MS SQL Server executado em sistema operacional Windows e s a ltima verso disponvel SQL Server 2005. SQL Server 2005 est totalmente integrado na estrutura do NET. E desenvolvedores de software e web pode escrever procedimentos armazenados para o SQL Server 2005 diretamente do seu cdigo. NET (C #, VB.NET, etc.) SQL Server 2005 tem as seguintes edies:

SQL Server Enterprise Edition SQL Server Workgroup Edition SQL Server Standard Edition SQL Server Developer Edition SQL Server Compact Edition SQL Server Mobile Edition SQL Server Express Edition

SQL Server 2005 Express Edition


SQL Server Express Edition uma verso light do SQL Server 2005 Database Engine, que livre para redistribuir e usar. O SQL Server Express Edition no tem algumas das caractersticas de escalabilidade das edies inteiramente caracterizado ter e tem algumas limitaes (nmero de processadores, tamanho da memria RAM mxima, o tamanho mximo de um banco de dados).

SQL Server 2008


A prxima verso do SQL Server ser SQL Server 2008. Esta verso ser lanada no incio de 2008. SQL Server 2008 foi concebido para armazenar dados em vrios formatos diferentes, incluindo mas no limitado a arquivos XML, e-mail, espacial, documentos. Hospedagem de SQL um plano de hospedagem web com um ou mais bancos de dados SQL. Tendo em SQL backend de banco de dados essencial para a maioria dos sites modernos, por isso que quase todos os provedores de hospedagem oferecem SQL planos de hospedagem hoje em dia.

O SQL mais comumente utilizados hospeda bancos de dados so MySQL, MS SQL Server 2000 / MS SQL Server 2005, MS Access e Oracle. Qual banco de dados SQL para escolher para a sua hospedagem? Voc pode ter o SQL hospedagem em Windows e Linux / sistemas operativos UNIX, mas alguns dos mecanismos de banco de dados funcionam apenas com um deles. Por exemplo, se voc quiser SQL hospedagem com MS SQL Server 2000/2005 backend, ento voc precisa olhar para plano de hospedagem Windows, porque o SQL Server funciona apenas em Windows. Se voc est procurando hospedagem para o MySQL, ento voc est com sorte, porque o MySQL executado no Windows e Linux. A Oracle tambm executado em ambos os sistemas operacionais, mas o MS Access hospedagem requer sistema operacional Windows. Quais so as vantagens do SQL hospedagem? Tendo em SQL backend Hosting permite o desenvolvimento de aplicaes web robusta e escalvel, que pode lidar com milhares de visitantes dirios. Quando o contedo do site est em um banco de dados SQL, muito fcil de pesquisar o contedo de determinada palavra-chave ou frase. Tendo os dados em um RDBMS permite uma fcil gesto do contedo. Alm disso, quando um site utiliza SQL hospedagem, o contedo do site separado por sua apresentao, o que torna muito fcil para aplicar as alteraes de design e layout. Replicao do SQL termo descreve um grupo de tecnologias que permitam a distribuio de informao e de espelhamento entre os diferentes bancos de dados. replicao SQL no s permite a cpia de dados entre bancos de dados, mas tambm cpia de qualquer objeto de banco de dados tambm. Essencialmente replicao executa a sincronizao entre bancos de dados. Ao utilizar a replicao SQL, possvel distribuir dados para tantos locais de rede remota que voc precisa, e voc pode fazer isso atravs de diferentes tipos de redes, incluindo LAN, WAN e Internet para citar alguns.

Por que usar replicao SQL?


Existem muitas razes pelas quais a replicao SQL existe. Em muitos cenrios de replicao feito para garantir a redundncia . Por exemplo, se uma empresa funciona um banco de dados de misso crtica, pode ser aconselhvel ter uma rplica dessa base de dados em um banco de dados do servidor fsico separado, que pode assumir em caso de falha no banco de dados primrios (corrupo de software, falha de hardware, etc .). Outra razo vlida para usar replicao SQL o balanceamento de carga . Ao utilizar a replicao voc pode compartilhar a carga de acesso entre o servidor de banco de dados com diversos bancos de dados idnticos. H outra razo que muitos usam a replicao SQL, contudo no vamos discuti-los aqui.

Replicao Publicador eo Assinante


Para entender como funciona a replicao SQL, vamos ter que definir dois termos de replicao - Publicador e no Assinante. Em uma replicao SQL Editor a parte que oferece os dados para a distribuio. O Assinante a parte que consome (se atualiza) os dados do Publisher.

MS Replicao do SQL Server


MS SQL Server tem 3 modelos de replicao principal - Merge Replication, replicao transacional e replicao de instantneo.

A replicao de mesclagem usado quando os dois Publicador eo Assinante necessidade de fazer alteraes em seus respectivos bancos de dados. Neste caso, ambos os bancos de dados podem ter sido alterados entre as execues do SQL de replicao de mesclagem ea replicao mescla as alteraes em ambos os locais. claro que quando usando replicao de mesclagem, voc deve estar ciente de que pode haver conflitos, por exemplo repetido chaves primrias. Se houver um conflito, ento a replicao de mesclagem segue predeterminado plano de resoluo de conflitos para corrigir o problema. A replicao transacional normalmente usado com bases de dados onde os dados so alterados com freqncia e h necessidade de atualizao constante dos dados. O processo de replicao relgios editor banco de dados para quaisquer alteraes, se houver alteraes, distribui-los para os assinantes de replicao. A replicao de instantneo relativamente pouco usado, e como o nome indica faz um instantneo do banco de dados editor em certo ponto do tempo, e distribui para os assinantes. A replicao de instantneo e recurso que consome tempo, em comparao aos outros dois tipos de replicao do SQL Server e usado quando voc precisa de substituir totalmente o banco de dados do subscritor ou quando voc faz uma atualizao de replicao de banco de dados inicial, que ser atualizada atravs de um dos outros 2 tipos de replicao do SQL aps a cpia inicial.

O que ETL?
ETL representa Extract, Transform and Load, que um processo utilizado para coletar dados de vrias fontes, transformar os dados de acordo com as regras de negcio / necessidades e carregar os dados em um banco de dados de destino. A necessidade de usar ETL decorre do fato de que na computao de dados de negcios moderno reside em vrios locais e em vrios formatos incompatveis. Por exemplo, dados comerciais podem ser armazenados no sistema de arquivos em diversos formatos (documentos Word, PDF, planilhas, texto simples, etc), ou podem ser armazenados como arquivos de e-mail, ou pode ser mantido em um banco de dados de vrios servidores como o MS SQL Server, Oracle e MySQL por exemplo. Manipulao de todos os negcios esta informao de forma eficiente um grande desafio e ETL desempenha um papel importante na resoluo deste problema.

Extract, Transform and Load


O processo de ETL tem trs etapas principais, que so Extract, Transform and Load. Extrato - O primeiro passo no processo de ETL a extrao dos dados de vrias fontes. Cada um dos sistemas de origem poder armazenar seus dados em formato completamente diferente do resto. As fontes so geralmente arquivos flat ou RDBMS, mas quase nenhum de armazenamento de dados pode ser usado como uma fonte para um processo de ETL. Transformar - Uma vez que os dados foram extrados e convertidos no formato esperado, tempo para o prximo passo no processo de ETL, que transformar os dados de acordo com o conjunto de regras de negcio. A transformao de dados pode incluir vrias operaes, incluindo mas no limitado a filtragem, classificao, agregando, juntando dados, limpeza de dados, gerando os dados calculados com base nos valores existentes, a validao de dados, etc

Carga - A etapa de ETL final envolve o carregamento dos dados transformados em alvo de destino, que pode ser um banco de dados ou data warehouse.

Ferramentas ETL
Muitos dos maiores jogadores de software produzir ferramentas de ETL, incluindo IBM (IBM InfoSphere DataStage), Oracle (Oracle Warehouse Builder) e claro a Microsoft com o seu SQL Server Integration Services (SSIS) includo em algumas edies do Microsoft SQL Server 2005 e 2008.

Você também pode gostar