O documento apresenta uma introdução ao SQL Server 2005, cobrindo tópicos como: 1) o que é um banco de dados e sua estrutura, 2) o SQL Server 2005 e sua ferramenta Management Studio Express, 3) comandos SQL como SELECT, INSERT, UPDATE e DELETE para manipular dados.
1. Erick Mendonça
Microsoft Certified Technology Specialist SQL Server 2005
erick@sgnsolucoes.com.br
http://erickmendonca.com.br
SQL Server 2005
2. Agenda
Agenda
1. Introdução a Banco de Dados
2. SQL Server 2005
3. Management Studio Express
4. Queries/Comandos
5. Referências
3. Introdução a Banco de Dados
O que é Banco de Dados?
Conjunto de registros dispostos em estrutura regular que possibilita a
reorganização dos mesmos e produção de informação.
Ou seja:
Um banco de dados é um local “organizado” onde podem ser
armazenados dados diversos.
Históricos bancários, álbuns de fotos, músicas, textos, comentários de
um blog, produtos de uma loja...
4. 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
5. Introdução a Banco de Dados
Colunas
Linhas
Linhas = registros
Colunas = 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
6. Introdução a Banco de Dados
SGBD?
Os Sistemas Gerenciadores de Banco de Dados são conjuntos de
programas que auxiliam na tarefa de construir, manter e manipular
bancos de dados.
SQL Server, Oracle, MySQL, PostgreSQL, DB2, eXist-db…
É importante notar que o SGBD normalmente é um sistema externo ao
software que o acessa.
7. Introdução a Banco de Dados
Banco de Dados
SGBD
Aplicação
Usuário
Usuário
8. Introdução a Banco de Dados
Bancos de Dados Relacionais
Utilizam o Modelo Relacional, que é composto por tabelas e as
relações entre estas.
Cliente Locação Filme
9. Introdução a Banco de Dados
Chaves Primárias
São uma ou mais colunas que podem identificar unicamente uma linha
de 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
10. Introdução a Banco de Dados
Chaves Estrangeiras
São uma ou mais colunas de uma tabela que também existem em
outra, para definir uma relação entre as duas.
Exemplo:
Como definir uma relação entre as tabelas Cliente e Locação?
11. 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
12. 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
14. 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
15. 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
16. 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.
20. Queries/Comandos
UPDATE
Atualiza os registros da tabela tb_cliente, atribuindo José Francisco
dos 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
21. Queries/Comandos
UPDATE
Atualiza os registros da tabela tb_cliente, atribuindo Maurício dos Santos ao
nome do cliente e Solteiro ao estado civil, onde o CPF seja igual a
99999999999.
UPDATE tb_cliente
SET nm_cliente = ‘José Francisco dos Santos’,
cd_estado_civil = 0
WHERE nr_cpf_cliente = 99999999999
24. Queries/Comandos
SELECT
Seleciona nome e cpf da tabela tb_cliente, dos registros com
cd_cliente = 1.
SELECT nm_cliente, nr_cpf_cliente
FROM tb_cliente
WHERE cd_cliente = 1
25. Queries/Comandos
SELECT
Seleciona nome e cpf da tabela tb_cliente, dos registros com
cd_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
26. Queries/Comandos
SELECT
Seleciona nome e cpf da tabela tb_cliente, dos registros com cd_estado_civil
igual a 0 e cd_cliente maior que 3, ordene o resultado por nome.
SELECT nm_cliente, nr_cpf_cliente
FROM tb_cliente
WHERE cd_estado_civil = 0
AND cd_cliente > 3
ORDER BY nome
27. Queries/Comandos
SELECT
Seleciona todas as locações do cliente com código de cliente
igual a 1.
SELECT *
FROM tb_cliente c
JOIN tb_locacao l ON (c.cd_cliente = l.cd_cliente)
28. Queries/Comandos
DELETE
Apaga os registros da tabela tb_cliente onde o nr_cpf_cliente seja
igual a 99999999999.
DELETE FROM tb_cliente
WHERE nr_cpf_cliente = 99999999999
29. 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
31. Queries/Comandos
UNION
Une dois ou mais resultados de SELECT.
SELECT *
FROM tb_cliente
WHERE cd_cliente > 3
UNION
SELECT *
FROM tb_cliente
WHERE cd_cliente > 4
32. 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
33. 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