61
T-SQL COM MICROSOFT SQL SERVER 2012 EXPRESS NA PRÁTICA RODRIGO RIBEIRO GONÇALVES ESTA APRESENTAÇÃO É MATERIAL DE APOIO DO LIVRO HOMÔNIMO, LANÇADO PELA EDITORA ÉRICA, 2013

T-SQL na prática com SQL SERVER Express 2012

Embed Size (px)

DESCRIPTION

Apresentação de apoio a docentes e instrutores que desejam incluir o livro T-SQL na prática em seus planos de ensino.

Citation preview

Page 1: T-SQL na prática com SQL SERVER Express 2012

T-SQL COM MICROSOFT SQL

SERVER 2012 EXPRESS NA PRÁTICA

RODRIGO RIBEIRO GONÇALVES

ESTA APRESENTAÇÃO É MATERIAL DE APOIO DO LIVRO HOMÔNIMO, LANÇADO PELA EDITORA ÉRICA, 2013

Page 2: T-SQL na prática com SQL SERVER Express 2012

RODRIGO RIBEIRO GONÇALVES

• Graduado em Sistema de Informação

• Pós-graduado em Gerenciamento de Projetos

• Microsoft Certified Professional

• Microsoft Certified Trainer

• Autor publicado pela Editora Érica

• http://www.linkedin.com/pub/rodrigo-ribeiro-gon%C3%A7alves/11/9a0/372

• http://tsqlmaster.blogspot.com.br/

Page 3: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO I

Page 4: T-SQL na prática com SQL SERVER Express 2012

A ORIGEM DO SQL

• Desenvolvido no anos de 1970 nos laboratórios da IBM

• Donald Chamberlin

• Raymond Boyce

• Criado para trabalhar com o System R, um dos primeiros sistemas de banco de dados computadorizados, criado por Edward Codd, autor de "A Relational Model of Data for Large Shared Data Banks”, livro que definiu os pilares da teoria de banco de dados

Page 5: T-SQL na prática com SQL SERVER Express 2012

O Microsoft sql server 2012 express

• Versão limitada, porém gratuita, destinada ao estudo e ao desenvolvimento

• Pode ser baixado de

http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx.

Page 6: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO

1. Quem criou a linguagem SQL?

2. Quem criou as teorias relacionais que fundamentam os SGBDs modernos?

3. Que empresa criou o T-SQL?

4. Quais são as edições do SQL SERVER 2012?

5. Quais as principais limitações de cada edição?

6. O que quer dizer a sigla SQL?

7. Quais são os dois modos de autenticação no SQL SERVER 2012?

Page 7: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO II

Page 8: T-SQL na prática com SQL SERVER Express 2012

Conheça o management studio

Para abrir scripts .SQL no Management Studio, clique em File\Open\File.

Page 9: T-SQL na prática com SQL SERVER Express 2012

ABERTURA DE UMA NOVA JANELA DE QUERY

Page 10: T-SQL na prática com SQL SERVER Express 2012

SYSTEM DATABASES

• MASTER

• MODEL

• MSDB

• TEMPDB

Page 11: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO

1. Como é possível abrir um arquivo de scripts através do SSMS?2. Qual o nome dos bancos de dados de sistema do SQL SERVER?3. Para que serve o banco de dados master?4. Para que serve o banco de dados model?5. O que é o Object Explorer?

Page 12: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO III

Page 13: T-SQL na prática com SQL SERVER Express 2012

PRIMEIRO SCRIPT

Page 14: T-SQL na prática com SQL SERVER Express 2012

VARIÁVEIS E TIPOS DE DADOS

Page 15: T-SQL na prática com SQL SERVER Express 2012

CONCATENAÇÃO DE STRINGS

DECLARE @HELLO VARCHAR(100)

SET @HELLO = 'Hello World! T-SQL na prática'

.....

Page 16: T-SQL na prática com SQL SERVER Express 2012

OPERADORES ARITMÉTICOS

Operação Operador

Adição +Subtração -Multiplicação *Divisão /Mod %

Page 17: T-SQL na prática com SQL SERVER Express 2012

COMPARADORES LÓGICOS

Operador Definição= Igual a

>  Maior que

<  Menor que

>= Maior que

<= Menor que

<>  Diferente que

Page 18: T-SQL na prática com SQL SERVER Express 2012

USO DO WHILE

WHILE @COUNT < 10

……

Page 19: T-SQL na prática com SQL SERVER Express 2012

DATAS NO SQL SERVER

FUNÇÕES GETDATE() E CURRENT_TIMESTAMP...COMO USÁ-LAS?

Page 20: T-SQL na prática com SQL SERVER Express 2012

CONVERSÃO DE DADOS COM CAST E CONVERT

DECLARE

@VALOR INT

SET @VALOR = 1000

PRINT 'VALOR É ' + CAST(....

Page 21: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO

1. Qual o comando para declarar variáveis no T-SQL?

2. Qual o operador para realizar concatenação de Strings no T-SQL?

3. Qual o operador aritmético de subtração no T-SQL?

4. Escreva um trecho de código realizando a multiplicação entre duas variáveis do tipo REAL, uma delas com o valor de 8 e a outra com o valor de 9.

5. Adicione ao script da questão anterior um comentário de várias linhas com o enunciado da questão anterior.

Page 22: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO IV

Page 23: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE UM BANCO DE DADOS

CREATE DATABASE ProjetoTSQL

Page 24: T-SQL na prática com SQL SERVER Express 2012

ARQUIVOS MDF E LDF

Page 25: T-SQL na prática com SQL SERVER Express 2012

CREATE TABLE

USE ProjetoTSQL

CREATE TABLE Clientes(

...

Page 26: T-SQL na prática com SQL SERVER Express 2012

CHAVE PRIMÁRIA

ALTER TABLE CLIENTES

ADD ...

Page 27: T-SQL na prática com SQL SERVER Express 2012

INSERÇÃO DE REGISTROS COM O INSERT

INSERT INTO Clientes(Nome

,Endereço

,Telefone

,Email

,DataNascimento)

...

Page 28: T-SQL na prática com SQL SERVER Express 2012

CONSULTA A REGISTROS COM SELECT

SELECT

Codigo

,Nome

,...

Page 29: T-SQL na prática com SQL SERVER Express 2012

FILTRO DE CONSULTAS COM WHERE

SELECT

Codigo

,Nome

,...

Page 30: T-SQL na prática com SQL SERVER Express 2012

OPERADOR AND

WHERE

Codigo > 1

....

Page 31: T-SQL na prática com SQL SERVER Express 2012

ATUALIZAÇÃO COM O COMANDO UPDATE

UPDATE

Clientes

....

Page 32: T-SQL na prática com SQL SERVER Express 2012

ISNULL E COALESCE

SELECT

ISNULL(…

Page 33: T-SQL na prática com SQL SERVER Express 2012

TABELAS TEMPORÁRIAS

CREATE TABLE #Clientes

Page 34: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO

1.Crie um banco de dados denominado ProjetoCapitulo4.2.Dentro do banco de dados ProjetoCapitulo4, crie uma tabela chamada usuários com os seguintes campos e tipos de dados:• Código, Iiteiro, sequencial e chave primária• Nome, cadeira caracteres com no máximo 200 caracteres• Login, cadeira caracteres com no máximo dez caracteres• Senha, cadeira caracteres com no máximo seis caracteres1.Altere a tabela usuários adicionando um campo denominado DataCriacao com a data de criação do registro, com a data atual como valor padrão .2.Insira o seguinte grupo de dados na tabela usuários (TABELA ABAIXO).3.Atualize o registro com login "rodrigo" e altere a senha para "54321“.4.Exclua o registro com o login "daniel“.5.Exclua todos os registros da tabela, de tal forma que o próximo registro a ser inserido tenha o campo código com o valor um.6.Crie uma tabela temporária com a mesma estrutura da tabela usuários.7.Exclua o banco de dados ProjetoCapitulo4.

Nome  Login Senha

Rodrigo rodrigo 132435

Daniel daniel 989876

Carolina carol 192837

Page 35: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO V

Page 36: T-SQL na prática com SQL SERVER Express 2012

CHAVE ESTRANGEIRA

CREATE TABLE Vendas(Codigo INT

IDENTITY(1,1)PRIMARY

KEY,Cliente INT

REFERENCES .... 

Page 37: T-SQL na prática com SQL SERVER Express 2012

CHAVE ESTRANGEIRA COM ALTER TABLE

ALTER TABLE Vendas ADD CONSTRAINT fkProdutosFOREIGN KEY.... 

Page 38: T-SQL na prática com SQL SERVER Express 2012

DIAGRAMAS DE BANCO DE DADOS

 

Page 39: T-SQL na prática com SQL SERVER Express 2012

INNER JOIN

...FROM

Clientes CINNER JOIN Vendas…. 

Page 40: T-SQL na prática com SQL SERVER Express 2012

LEFT JOIN

....FROM

Clientes CLEFT JOIN Vendas… 

Page 41: T-SQL na prática com SQL SERVER Express 2012

RIGHT JOIN

...FROM

VENDAS vRIGHT JOIN Produtos ...

 

Page 42: T-SQL na prática com SQL SERVER Express 2012

USO DO COUNT E FUNÇÕES DE AGREGAÇÃO

SELECT Count(*) ...

 

Page 43: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO1. Crie um banco de dados ProjetoCapitulo5. 2. No banco de dados ProjetoCapitulo5 crie uma tabela Clientes com os seguintes campos

Código, inteiro, sequencial e chave primáriaNome, cadeira de caracteres com no máximo 200 caracteres

3. Crie uma tabela chamada Pedidos com os seguintes campos:• Código, inteiro, sequencial e chave primária• DataPedido, Data, valor padrão data atual• Cliente, inteiro, chave estrangeira da tabela clientes• Valor, numérico com duas casas depois da vírgula 4. Insira três registros na tabela clientes com nomes diferentes e dois pedidos para os dois primeiros clientes.5. Faça uma query listando todos os clientes e o número de pedidos para cada cliente mesmo que não tenham pedido nenhum.

 

Page 44: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO VI

Page 45: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE VIEWS

CREATE VIEW vwClientesAtivosAS...

Page 46: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE TRIGGERS

CREATE Trigger UpdateProdutos ON Produtos FOR UPDATE AS ...

Page 47: T-SQL na prática com SQL SERVER Express 2012

QUERY COM SQL DINÂMICO

DECLARE @DATAINI DATETIME,@DATAFIM DATETIME

 SELECT

@DATAINI='20121221',@DATAFIM='20121222'

  SELECT

Codigo,Cliente....

Page 48: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE PROCEDURES

CREATE PROC SP_PRODUTOS_CAROSAS.....

Page 49: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE FUNÇÕES

CREATE FUNCTION dbo.fnPar(@Valor INT)RETURNS BITBEGIN.....

Page 50: T-SQL na prática com SQL SERVER Express 2012

USO DE FUNÇÕES PARA MANIPULAÇÃO DE STRINGS

• SUBSTRING• RIGHT • LEFT • LEN

Page 51: T-SQL na prática com SQL SERVER Express 2012

FUNÇÕES DE MANIPULAÇÃO DE DATAS

• DAY• MONTH• YEAR• DATEADD• DATEDIFF

O QUE SÃO E COMO USÁ-LAS?

Page 52: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO1. Crie um banco de dados Capitulo6.2. Crie uma tabela com o nome de Produtos no banco de dados Capitulo6 com os seguintes

campos:3. Código, inteiro, sequencial e chave ´primária4. Nome, cadeia de caracteres com no máximo 200 carcateres5. DataNascimento, Data6. DataAtualizacao, Data7. Insira ao menos dez registros com nomes diferentes, e destes dez somente dois com data de

nascimento inferior a 01/10/1980.8. Crie uma view denominada vwClientes1980, listando todos os clientes que nasceram em

entre 01/01/1980 e 12/12/1989.9. Crie uma procedure que percorre os registros da tabela Clientes linha a linha, atualizando o

campo DataAtualizacao com a data atual.10.Crie uma função que recebe como argumento um parâmetro Data e calcula a idade baseada

no parâmetro.11. Crie uma query que lista todos os clientes da tabela Clientes e usa a função criada

anteriormente para determinar a idade do cliente.12.Crie uma query listando os primeiros cinco caracteres do campo nome dos clientes.13.Exclua o banco de dados Capitulo6.

Marlene
retirar numeração 3,4,5,6
Page 53: T-SQL na prática com SQL SERVER Express 2012

CAPÍTULO VII

Page 54: T-SQL na prática com SQL SERVER Express 2012

ACESSANDO TABELAS DE SISTEMA

sys.objectsSys.columns

Page 55: T-SQL na prática com SQL SERVER Express 2012

CRIAÇÃO DE ÍNDICES

CREATE INDEX IXNomeCliente ...

Page 56: T-SQL na prática com SQL SERVER Express 2012

ACESSO AO EXECUTION PLAN

Page 57: T-SQL na prática com SQL SERVER Express 2012

O COMANDO BACKUP DATABASE

BACKUP DATABASE ProjetoTSQL...

Page 58: T-SQL na prática com SQL SERVER Express 2012

O COMANDO BACKUP DATABASE

BACKUP DATABASE ProjetoTSQL...

Page 59: T-SQL na prática com SQL SERVER Express 2012

RESTAURAÇÃO DE UM BACKUP

 RESTORE DATABASE [ProjetoTSQL]…

Page 60: T-SQL na prática com SQL SERVER Express 2012

EXERCÍCIOS DE FIXAÇÃO

1. Para que serve a view Sys.Objects e quais as principais colunas?2. Para que server a view Sys.Columns e quais os principais campos?3. Abra uma nova janela de query, crie uma tabela temporária chamada #Tabelas com os

seguintes campos:4. Tabela, cadeia de caracteres com no máximo 100 caracteres5. Coluna, cadeia de caracteres com no máximo 100 caracteres6. Crie um script com um cursor que percorre todas as tabelas do banco de dados e cada uma

de suas colunas e insere tudo na tabela temporária criada anteriormente.7. Agora, crie um banco de dados Capitulo7 e faça um backup full desse banco de dados na

pasta temp do seu computador.8. Restaure o banco de dados com o backup criado na questão anterior.9. Exclua o banco de dados criado anteriormente.

Page 61: T-SQL na prática com SQL SERVER Express 2012

FIM