Post on 27-Nov-2015
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
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/
CAPÍTULO I
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
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.
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?
CAPÍTULO II
Conheça o management studio
Para abrir scripts .SQL no Management Studio, clique em File\Open\File.
ABERTURA DE UMA NOVA JANELA DE QUERY
SYSTEM DATABASES
• MASTER
• MODEL
• MSDB
• TEMPDB
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?
CAPÍTULO III
PRIMEIRO SCRIPT
VARIÁVEIS E TIPOS DE DADOS
CONCATENAÇÃO DE STRINGS
DECLARE @HELLO VARCHAR(100)
SET @HELLO = 'Hello World! T-SQL na prática'
.....
OPERADORES ARITMÉTICOS
Operação Operador
Adição +Subtração -Multiplicação *Divisão /Mod %
COMPARADORES LÓGICOS
Operador Definição= Igual a
> Maior que
< Menor que
>= Maior que
<= Menor que
<> Diferente que
USO DO WHILE
WHILE @COUNT < 10
……
DATAS NO SQL SERVER
FUNÇÕES GETDATE() E CURRENT_TIMESTAMP...COMO USÁ-LAS?
CONVERSÃO DE DADOS COM CAST E CONVERT
DECLARE
@VALOR INT
SET @VALOR = 1000
PRINT 'VALOR É ' + CAST(....
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.
CAPÍTULO IV
CRIAÇÃO DE UM BANCO DE DADOS
CREATE DATABASE ProjetoTSQL
ARQUIVOS MDF E LDF
CREATE TABLE
USE ProjetoTSQL
CREATE TABLE Clientes(
...
CHAVE PRIMÁRIA
ALTER TABLE CLIENTES
ADD ...
INSERÇÃO DE REGISTROS COM O INSERT
INSERT INTO Clientes(Nome
,Endereço
,Telefone
,DataNascimento)
...
CONSULTA A REGISTROS COM SELECT
SELECT
Codigo
,Nome
,...
FILTRO DE CONSULTAS COM WHERE
SELECT
Codigo
,Nome
,...
OPERADOR AND
WHERE
Codigo > 1
....
ATUALIZAÇÃO COM O COMANDO UPDATE
UPDATE
Clientes
....
ISNULL E COALESCE
SELECT
ISNULL(…
TABELAS TEMPORÁRIAS
CREATE TABLE #Clientes
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
CAPÍTULO V
CHAVE ESTRANGEIRA
CREATE TABLE Vendas(Codigo INT
IDENTITY(1,1)PRIMARY
KEY,Cliente INT
REFERENCES ....
CHAVE ESTRANGEIRA COM ALTER TABLE
ALTER TABLE Vendas ADD CONSTRAINT fkProdutosFOREIGN KEY....
DIAGRAMAS DE BANCO DE DADOS
INNER JOIN
...FROM
Clientes CINNER JOIN Vendas….
LEFT JOIN
....FROM
Clientes CLEFT JOIN Vendas…
RIGHT JOIN
...FROM
VENDAS vRIGHT JOIN Produtos ...
USO DO COUNT E FUNÇÕES DE AGREGAÇÃO
SELECT Count(*) ...
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.
CAPÍTULO VI
CRIAÇÃO DE VIEWS
CREATE VIEW vwClientesAtivosAS...
CRIAÇÃO DE TRIGGERS
CREATE Trigger UpdateProdutos ON Produtos FOR UPDATE AS ...
QUERY COM SQL DINÂMICO
DECLARE @DATAINI DATETIME,@DATAFIM DATETIME
SELECT
@DATAINI='20121221',@DATAFIM='20121222'
SELECT
Codigo,Cliente....
CRIAÇÃO DE PROCEDURES
CREATE PROC SP_PRODUTOS_CAROSAS.....
CRIAÇÃO DE FUNÇÕES
CREATE FUNCTION dbo.fnPar(@Valor INT)RETURNS BITBEGIN.....
USO DE FUNÇÕES PARA MANIPULAÇÃO DE STRINGS
• SUBSTRING• RIGHT • LEFT • LEN
FUNÇÕES DE MANIPULAÇÃO DE DATAS
• DAY• MONTH• YEAR• DATEADD• DATEDIFF
O QUE SÃO E COMO USÁ-LAS?
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.
CAPÍTULO VII
ACESSANDO TABELAS DE SISTEMA
sys.objectsSys.columns
CRIAÇÃO DE ÍNDICES
CREATE INDEX IXNomeCliente ...
ACESSO AO EXECUTION PLAN
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
RESTAURAÇÃO DE UM BACKUP
RESTORE DATABASE [ProjetoTSQL]…
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.
FIM