curso sql server 2005

40
Erick Mendonça Microsoft Certified Technology Specialist SQL Server 2005 [email protected] http://erickmendonca.com.br SQL Server 2005

Upload: erick-mendonca

Post on 24-May-2015

257 views

Category:

Technology


4 download

DESCRIPTION

Um minicurso oferecido como parte de um programa de seleção de estagiários para a SGN Soluções.

TRANSCRIPT

Page 1: Curso SQL Server 2005

Erick MendonçaMicrosoft Certified Technology Specialist SQL Server 2005

[email protected]://erickmendonca.com.br

SQL Server 2005

Page 2: Curso SQL Server 2005

Agenda

Agenda

1. Introdução a Banco de Dados

2. SQL Server 2005

3. Management Studio Express

4. Queries/Comandos

5. Referências

Page 3: Curso SQL Server 2005

Introdução a Banco de Dados

O que é Banco de Dados?Conjunto de registros dispostos em estrutura regular que possibilita areorganização dos mesmos e produção de informação.

Ou seja:

Um banco de dados é um local “organizado” onde podem serarmazenados dados diversos.

Históricos bancários, álbuns de fotos, músicas, textos, comentários deum blog, produtos de uma loja...

Page 4: Curso SQL Server 2005

Introdução a Banco de Dados

Estrutura regular?A maioria dos SGBDs usam Tabelas.

Exemplo: Cliente

Código Nome CPF Estado Civil Telefone

1 Erick Mendonça 42640662120 Casado 8823 4564

2 Cláudio Mattos 46631485495 Solteiro 4546 5456

3 Sara Silveira 15546013982 Casada 8789 5454

4 Donkey Kong 28236776310 Casado 9874 1215

Page 5: Curso SQL Server 2005

Introdução a Banco de Dados

Colunas

Linhas

Linhas = registrosColunas = atributos

Código Nome CPF Estado Civil

Telefone

1 Erick Mendonça 42640662120 Casado 8823 4564

2 Cláudio Mattos 46631485495 Solteiro 4546 5456

3 Sara Silveira 15546013982 Casada 8789 5454

4 Donkey Kong 28236776310 Casado 9874 1215

Page 6: Curso SQL Server 2005

Introdução a Banco de Dados

SGBD?Os Sistemas Gerenciadores de Banco de Dados são conjuntos deprogramas que auxiliam na tarefa de construir, manter e manipularbancos de dados.

SQL Server, Oracle, MySQL, PostgreSQL, DB2, eXist-db…

É importante notar que o SGBD normalmente é um sistema externo aosoftware que o acessa.

Page 7: Curso SQL Server 2005

Introdução a Banco de Dados

Banco de Dados

SGBD

AplicaçãoUsuário

Usuário

Page 8: Curso SQL Server 2005

Introdução a Banco de Dados

Bancos de Dados RelacionaisUtilizam o Modelo Relacional, que é composto por tabelas e asrelações entre estas.

Cliente Locação Filme

Page 9: Curso SQL Server 2005

Introdução a Banco de Dados

Chaves PrimáriasSão uma ou mais colunas que podem identificar unicamente uma linhade uma tabela.

Código Nome CPF Estado Civil

Telefone

1 Erick Mendonça 42640662120 Casado 8823 4564

2 Cláudio Mattos 46631485495 Solteiro 4546 5456

3 Sara Silveira 15546013982 Casada 8789 5454

4 Donkey Kong 28236776310 Casado 9874 1215

Page 10: Curso SQL Server 2005

Introdução a Banco de Dados

Chaves EstrangeirasSão uma ou mais colunas de uma tabela que também existem emoutra, para definir uma relação entre as duas.

Exemplo:

Como definir uma relação entre as tabelas Cliente e Locação?

Page 11: Curso SQL Server 2005

Introdução a Banco de Dados

Chaves Estrangeiras

Código Nome

1 Erick Mendonça

Código da Locação Código do Cliente Data Valor

1 1 01/12/2010 R$ 4,00

2 1 26/12/2010 R$ 5,50

Cliente

Locação

Page 12: Curso SQL Server 2005

SQL Server 2005

Microsoft

Versão mais atual: SQL Server 2008 R2

Possui várias versões pagas e uma gratuita

Roda apenas em Windows

Possui boa integração com .NET Framework

Interface gráfica descomplicada

Page 13: Curso SQL Server 2005

Management Studio Express

Page 14: Curso SQL Server 2005

Queries/Comandos

O que são? Pra que servem?

Interagir com o banco de dados

Recuperar informações: listar todos os clientes

Manipular informações: alterar o nome de um cliente, inserir um novo filme, excluir uma informação

Manipular estruturas: criar novas tabelas, apagar tabelas antigas

Manutenção: fazer e agendar backup, comprimir arquivos

Programar (!): criar procedimentos e funções no banco de dados

Page 15: Curso SQL Server 2005

Queries/Comandos

Tipos de dados

Cada valor ou coluna possui um tipo

INT: números inteiros (máximo: 2.147.483.647)

BIG INT: números maiores (máximo: 9.223.372.036.854.775.807)

VARCHAR: caracteres (devem estar entre aspas)

CHAR: caracteres de tamanho fixo (devem estar entre aspas)

DATETIME: data e hora

Page 16: Curso SQL Server 2005

Queries/Comandos

Propriedades de colunas

Algumas colunas na tabela podem ter propriedades diferentes.

PRIMARY KEY: chave primária

FOREIGN KEY: chave estrangeira

NOT NULL: não aceita valores nulos

IDENTITY: obrigatoriamente numéricos. São auto-incrementais.

Page 17: Curso SQL Server 2005

Queries/Comandos

INSERT

Inserir um Cliente com nome José Francisco, CPF 999.999.999-99, eEstado Civil casado.

Page 18: Curso SQL Server 2005

Queries/Comandos

INSERTINSERT INTO tb_cliente

VALUES (‘José Francisco’, 99999999999, 1)

Page 19: Curso SQL Server 2005

Queries/Comandos

INSERT

A coluna cd_cliente é um IDENTITY! Por isso não podemos inserir valores diretamente nela.

Page 20: Curso SQL Server 2005

Queries/Comandos

UPDATE

Atualiza os registros da tabela tb_cliente, atribuindo José Franciscodos Santos ao nome do cliente, onde o CPF seja igual a 99999999999.

UPDATE tb_cliente

SET nm_cliente = ‘José Francisco dos Santos’

WHERE nr_cpf_cliente = 99999999999

Page 21: Curso SQL Server 2005

Queries/Comandos

UPDATE

Atualiza os registros da tabela tb_cliente, atribuindo Maurício dos Santos aonome do cliente e Solteiro ao estado civil, onde o CPF seja igual a99999999999.

UPDATE tb_cliente

SET nm_cliente = ‘José Francisco dos Santos’,

cd_estado_civil = 0

WHERE nr_cpf_cliente = 99999999999

Page 22: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona todos os campos da tabela tb_cliente, de todos os registros.

SELECT * FROM tb_cliente

Page 23: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona nome e cpf da tabela tb_cliente, de todos os registros.

SELECT nm_cliente, nr_cpf_cliente

FROM tb_cliente

Page 24: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona nome e cpf da tabela tb_cliente, dos registros comcd_cliente = 1.

SELECT nm_cliente, nr_cpf_cliente

FROM tb_cliente

WHERE cd_cliente = 1

Page 25: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona nome e cpf da tabela tb_cliente, dos registros comcd_estado_civil igual a 0 e ordene o resultado por nome.

SELECT nm_cliente, nr_cpf_cliente

FROM tb_cliente

WHERE cd_estado_civil = 0

ORDER BY nome

Page 26: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona nome e cpf da tabela tb_cliente, dos registros com cd_estado_civiligual a 0 e cd_cliente maior que 3, ordene o resultado por nome.

SELECT nm_cliente, nr_cpf_clienteFROM tb_cliente

WHERE cd_estado_civil = 0AND cd_cliente > 3

ORDER BY nome

Page 27: Curso SQL Server 2005

Queries/Comandos

SELECT

Seleciona todas as locações do cliente com código de clienteigual a 1.

SELECT *

FROM tb_cliente c

JOIN tb_locacao l ON (c.cd_cliente = l.cd_cliente)

Page 28: Curso SQL Server 2005

Queries/Comandos

DELETE

Apaga os registros da tabela tb_cliente onde o nr_cpf_cliente sejaigual a 99999999999.

DELETE FROM tb_cliente

WHERE nr_cpf_cliente = 99999999999

Page 29: Curso SQL Server 2005

Queries/Comandos

FUNÇÕES

Podem ser usadas junto com outros comandos.

MAX: retorna o valor máximo da coluna

MIN: retorna o valor mínimo da coluna

AVG: retorna o valor médio da coluna

COUNT: conta a quantidade de registros

DISTINCT: retorna apenas valores diferentes entre si

GETDATE: retorna a data e hora atual do servidor

Page 30: Curso SQL Server 2005

Queries/Comandos

FUNÇÕES

SELECT COUNT(*)

FROM tb_cliente

SELECT MAX(cd_cliente)

FROM tb_cliente

Page 31: Curso SQL Server 2005

Queries/Comandos

UNION

Une dois ou mais resultados de SELECT.

SELECT *FROM tb_cliente

WHERE cd_cliente > 3UNION

SELECT *FROM tb_cliente

WHERE cd_cliente > 4

Page 32: Curso SQL Server 2005

Queries/Comandos

GROUP BY

Agrupa os resultados de um SELECT.

SELECT c.cd_cliente, COUNT(cd_locacao)

FROM tb_cliente c

JOIN tb_locacao l ON (c.cd_cliente = l.cd_cliente)

GROUP BY c.cd_cliente

Page 33: Curso SQL Server 2005

Queries/Comandos

HAVING

Filtra os resultados agrupados de um SELECT com GROUP BY.

SELECT c.cd_cliente, COUNT(cd_locacao)

FROM tb_cliente c

JOIN tb_locacao l ON (c.cd_cliente = l.cd_cliente)

GROUP BY c.cd_cliente

HAVING COUNT(cd_locacao) > 1

Page 34: Curso SQL Server 2005

Queries/Comandos

Variáveis

Declaração:

DECLARE @numero int,

@string varchar(10),

@data datetime

Page 35: Curso SQL Server 2005

Queries/Comandos

Variáveis

Atribuição com SET (apenas uma variável):

SET @numero = 5

Atribuição com SELECT (uma ou mais variáveis):

SELECT @string = ‘Luigi’, @data = getdate()

Page 36: Curso SQL Server 2005

Queries/Comandos

Variáveis

Atribuição com SET (apenas uma variável):

SET @numero = 5

Atribuição com SELECT (uma ou mais variáveis):

SELECT @string = ‘Luigi’, @data = getdate()

Page 37: Curso SQL Server 2005

Queries/Comandos

Variáveis

Podem ser usadas em Queries:

SET @numero = 3

SELECT *

FROM tb_cliente

WHERE cd_cliente = @numero

Page 38: Curso SQL Server 2005

Queries/Comandos

Variáveis

Através dessas variáveis, podemos utilizar os comandos SQL facilmenteatravés de outros programas!

Page 39: Curso SQL Server 2005

Referências

microsoft.com/sqlserver/2008/pt/br/default.aspx

msdn.microsoft.com/en-us/sqlserver/default

sqlmag.com

sqlservercentral.com

w3schools.com/sql/

Page 40: Curso SQL Server 2005

Obrigado!

[email protected]