sql server 2012 - express
TRANSCRIPT
![Page 1: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/1.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/2.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/3.jpg)
CAPÍTULO I
![Page 4: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/4.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/5.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/6.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/7.jpg)
CAPÍTULO II
![Page 8: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/8.jpg)
Conheça o management studio
Para abrir scripts .SQL no Management Studio, clique em File\Open\File.
![Page 9: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/9.jpg)
ABERTURA DE UMA NOVA JANELA DE QUERY
![Page 10: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/10.jpg)
SYSTEM DATABASES
• MASTER
• MODEL
• MSDB
• TEMPDB
![Page 11: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/11.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/12.jpg)
CAPÍTULO III
![Page 13: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/13.jpg)
PRIMEIRO SCRIPT
![Page 14: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/14.jpg)
VARIÁVEIS E TIPOS DE DADOS
![Page 15: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/15.jpg)
CONCATENAÇÃO DE STRINGS
DECLARE @HELLO VARCHAR(100)
SET @HELLO = 'Hello World! T-SQL na prática'
.....
![Page 16: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/16.jpg)
OPERADORES ARITMÉTICOS
Operação Operador
Adição +Subtração -Multiplicação *Divisão /Mod %
![Page 17: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/17.jpg)
COMPARADORES LÓGICOS
Operador Definição= Igual a
> Maior que
< Menor que
>= Maior que
<= Menor que
<> Diferente que
![Page 18: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/18.jpg)
USO DO WHILE
WHILE @COUNT < 10
……
![Page 19: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/19.jpg)
DATAS NO SQL SERVER
FUNÇÕES GETDATE() E CURRENT_TIMESTAMP...COMO USÁ-LAS?
![Page 20: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/20.jpg)
CONVERSÃO DE DADOS COM CAST E CONVERT
DECLARE
@VALOR INT
SET @VALOR = 1000
PRINT 'VALOR É ' + CAST(....
![Page 21: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/21.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/22.jpg)
CAPÍTULO IV
![Page 23: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/23.jpg)
CRIAÇÃO DE UM BANCO DE DADOS
CREATE DATABASE ProjetoTSQL
![Page 24: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/24.jpg)
ARQUIVOS MDF E LDF
![Page 25: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/25.jpg)
CREATE TABLE
USE ProjetoTSQL
CREATE TABLE Clientes(
...
![Page 26: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/26.jpg)
CHAVE PRIMÁRIA
ALTER TABLE CLIENTES
ADD ...
![Page 27: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/27.jpg)
INSERÇÃO DE REGISTROS COM O INSERT
INSERT INTO Clientes(Nome
,Endereço
,Telefone
,DataNascimento)
...
![Page 28: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/28.jpg)
CONSULTA A REGISTROS COM SELECT
SELECT
Codigo
,Nome
,...
![Page 29: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/29.jpg)
FILTRO DE CONSULTAS COM WHERE
SELECT
Codigo
,Nome
,...
![Page 30: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/30.jpg)
OPERADOR AND
WHERE
Codigo > 1
....
![Page 31: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/31.jpg)
ATUALIZAÇÃO COM O COMANDO UPDATE
UPDATE
Clientes
....
![Page 32: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/32.jpg)
ISNULL E COALESCE
SELECT
ISNULL(…
![Page 33: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/33.jpg)
TABELAS TEMPORÁRIAS
CREATE TABLE #Clientes
![Page 34: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/34.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/35.jpg)
CAPÍTULO V
![Page 36: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/36.jpg)
CHAVE ESTRANGEIRA
CREATE TABLE Vendas(Codigo INT
IDENTITY(1,1)PRIMARY
KEY,Cliente INT
REFERENCES ....
![Page 37: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/37.jpg)
CHAVE ESTRANGEIRA COM ALTER TABLE
ALTER TABLE Vendas ADD CONSTRAINT fkProdutosFOREIGN KEY....
![Page 38: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/38.jpg)
DIAGRAMAS DE BANCO DE DADOS
![Page 39: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/39.jpg)
INNER JOIN
...FROM
Clientes CINNER JOIN Vendas….
![Page 40: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/40.jpg)
LEFT JOIN
....FROM
Clientes CLEFT JOIN Vendas…
![Page 41: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/41.jpg)
RIGHT JOIN
...FROM
VENDAS vRIGHT JOIN Produtos ...
![Page 42: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/42.jpg)
USO DO COUNT E FUNÇÕES DE AGREGAÇÃO
SELECT Count(*) ...
![Page 43: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/43.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/44.jpg)
CAPÍTULO VI
![Page 45: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/45.jpg)
CRIAÇÃO DE VIEWS
CREATE VIEW vwClientesAtivosAS...
![Page 46: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/46.jpg)
CRIAÇÃO DE TRIGGERS
CREATE Trigger UpdateProdutos ON Produtos FOR UPDATE AS ...
![Page 47: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/47.jpg)
QUERY COM SQL DINÂMICO
DECLARE @DATAINI DATETIME,@DATAFIM DATETIME
SELECT
@DATAINI='20121221',@DATAFIM='20121222'
SELECT
Codigo,Cliente....
![Page 48: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/48.jpg)
CRIAÇÃO DE PROCEDURES
CREATE PROC SP_PRODUTOS_CAROSAS.....
![Page 49: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/49.jpg)
CRIAÇÃO DE FUNÇÕES
CREATE FUNCTION dbo.fnPar(@Valor INT)RETURNS BITBEGIN.....
![Page 50: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/50.jpg)
USO DE FUNÇÕES PARA MANIPULAÇÃO DE STRINGS
• SUBSTRING• RIGHT • LEFT • LEN
![Page 51: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/51.jpg)
FUNÇÕES DE MANIPULAÇÃO DE DATAS
• DAY• MONTH• YEAR• DATEADD• DATEDIFF
O QUE SÃO E COMO USÁ-LAS?
![Page 52: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/52.jpg)
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.
![Page 53: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/53.jpg)
CAPÍTULO VII
![Page 54: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/54.jpg)
ACESSANDO TABELAS DE SISTEMA
sys.objectsSys.columns
![Page 55: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/55.jpg)
CRIAÇÃO DE ÍNDICES
CREATE INDEX IXNomeCliente ...
![Page 56: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/56.jpg)
ACESSO AO EXECUTION PLAN
![Page 57: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/57.jpg)
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
![Page 58: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/58.jpg)
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
![Page 59: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/59.jpg)
RESTAURAÇÃO DE UM BACKUP
RESTORE DATABASE [ProjetoTSQL]…
![Page 60: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/60.jpg)
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: SQL Server 2012 - Express](https://reader030.vdocuments.mx/reader030/viewer/2022033100/55cf9921550346d0339bbf38/html5/thumbnails/61.jpg)
FIM