Erick Mendonça
Microsoft Certified Technology Specialist SQL Server 2005
erick@sgnsolucoes.com.br
http://erickmendonca.com.br
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
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...
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
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
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.
Introdução a Banco de Dados
Banco de Dados
SGBD
Aplicação
Usuário
Usuário
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
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
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?
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
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
Management Studio Express
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
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
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.
Queries/Comandos
INSERT
Inserir um Cliente com nome José Francisco, CPF 999.999.999-99, e
Estado Civil casado.
Queries/Comandos
INSERT
INSERT INTO tb_cliente
VALUES (‘José Francisco’, 99999999999, 1)
Queries/Comandos
INSERT
A coluna cd_cliente é um IDENTITY! Por isso não podemos inserir
valores diretamente nela.
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
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
Queries/Comandos
SELECT
Seleciona todos os campos da tabela tb_cliente, de todos os registros.
SELECT * FROM tb_cliente
Queries/Comandos
SELECT
Seleciona nome e cpf da tabela tb_cliente, de todos os registros.
SELECT nm_cliente, nr_cpf_cliente
FROM tb_cliente
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
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
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
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)
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
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
Queries/Comandos
FUNÇÕES
SELECT COUNT(*)
FROM tb_cliente
SELECT MAX(cd_cliente)
FROM tb_cliente
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
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
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
Queries/Comandos
Variáveis
Declaração:
DECLARE @numero int,
@string varchar(10),
@data datetime
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()
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()
Queries/Comandos
Variáveis
Podem ser usadas em Queries:
SET @numero = 3
SELECT *
FROM tb_cliente
WHERE cd_cliente = @numero
Queries/Comandos
Variáveis
Através dessas variáveis, podemos utilizar os comandos SQL facilmente
através de outros programas!
Referências
 microsoft.com/sqlserver/2008/pt/br/default.aspx
 msdn.microsoft.com/en-us/sqlserver/default
 sqlmag.com
 sqlservercentral.com
 w3schools.com/sql/
Obrigado!
erickmendonca@yahoo.com.br

Curso SQL Server 2005

  • 1.
    Erick Mendonça Microsoft CertifiedTechnology Specialist SQL Server 2005 erick@sgnsolucoes.com.br http://erickmendonca.com.br SQL Server 2005
  • 2.
    Agenda Agenda 1. Introdução aBanco de Dados 2. SQL Server 2005 3. Management Studio Express 4. Queries/Comandos 5. Referências
  • 3.
    Introdução a Bancode 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 Bancode 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 Bancode 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 Bancode 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 Bancode Dados Banco de Dados SGBD Aplicação Usuário Usuário
  • 8.
    Introdução a Bancode 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 Bancode 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 Bancode 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 Bancode 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
  • 13.
  • 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 Cadavalor 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 Algumascolunas 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.
  • 17.
    Queries/Comandos INSERT Inserir um Clientecom nome José Francisco, CPF 999.999.999-99, e Estado Civil casado.
  • 18.
    Queries/Comandos INSERT INSERT INTO tb_cliente VALUES(‘José Francisco’, 99999999999, 1)
  • 19.
    Queries/Comandos INSERT A coluna cd_clienteé um IDENTITY! Por isso não podemos inserir valores diretamente nela.
  • 20.
    Queries/Comandos UPDATE Atualiza os registrosda 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 registrosda 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
  • 22.
    Queries/Comandos SELECT Seleciona todos oscampos da tabela tb_cliente, de todos os registros. SELECT * FROM tb_cliente
  • 23.
    Queries/Comandos SELECT Seleciona nome ecpf da tabela tb_cliente, de todos os registros. SELECT nm_cliente, nr_cpf_cliente FROM tb_cliente
  • 24.
    Queries/Comandos SELECT Seleciona nome ecpf 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 ecpf 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 ecpf 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 aslocaçõ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 registrosda 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 usadasjunto 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
  • 30.
  • 31.
    Queries/Comandos UNION Une dois oumais 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 osresultados 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 resultadosagrupados 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
  • 34.
  • 35.
    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()
  • 36.
    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()
  • 37.
    Queries/Comandos Variáveis Podem ser usadasem Queries: SET @numero = 3 SELECT * FROM tb_cliente WHERE cd_cliente = @numero
  • 38.
    Queries/Comandos Variáveis Através dessas variáveis,podemos utilizar os comandos SQL facilmente através de outros programas!
  • 39.
  • 40.