T-SQL COM MICROSOFT SQL SERVER 2012 EXPRESS NA PRTICA
RODRIGO RIBEIRO GONALVES ESTA APRESENTAO MATERIAL DE APOIO DO LIVRO HOMNIMO, LANADO PELA EDITORA RICA, 2013
RODRIGO RIBEIRO GONALVES
Graduado em Sistema de Informao Ps-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/
CAPTULO I
A ORIGEM DO SQL
Desenvolvido no anos de 1970 nos laboratrios 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
Verso limitada, porm gratuita, destinada ao estudo e ao desenvolvimento Pode ser baixado de
http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx.
EXERCCIOS DE FIXAO
1. 2. 3. 4. 5. 6. 7. Quem criou a linguagem SQL? Quem criou as teorias relacionais que fundamentam os SGBDs modernos? Que empresa criou o T-SQL? Quais so as edies do SQL SERVER 2012? Quais as principais limitaes de cada edio? O que quer dizer a sigla SQL? Quais so os dois modos de autenticao no SQL SERVER 2012?
CAPTULO II
Conhea 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
EXERCCIOS DE FIXAO
1. 2. 3. 4. 5.
Como possvel abrir um arquivo de scripts atravs do SSMS? Qual o nome dos bancos de dados de sistema do SQL SERVER? Para que serve o banco de dados master? Para que serve o banco de dados model? O que o Object Explorer?
CAPTULO III
PRIMEIRO SCRIPT
VARIVEIS E TIPOS DE DADOS
CONCATENAO DE STRINGS
DECLARE @HELLO VARCHAR(100) SET @HELLO = 'Hello World! T-SQL na prtica'
.....
OPERADORES ARITMTICOS
Operao Adio Subtrao Multiplicao Diviso Mod Operador + * / %
COMPARADORES LGICOS
Operador = > < Definio Igual a Maior que Menor que
>=
<= <>
Maior que
Menor que Diferente que
USO DO WHILE
WHILE @COUNT < 10
DATAS NO SQL SERVER
FUNES GETDATE() E CURRENT_TIMESTAMP...COMO US-LAS?
CONVERSO DE DADOS COM CAST E CONVERT
DECLARE @VALOR INT SET @VALOR = 1000 PRINT 'VALOR ' + CAST(....
EXERCCIOS DE FIXAO
1. Qual o comando para declarar variveis no T-SQL?
2. Qual o operador para realizar concatenao de Strings no T-SQL?
3. Qual o operador aritmtico de subtrao no T-SQL? 4. Escreva um trecho de cdigo realizando a multiplicao entre duas variveis do tipo REAL, uma delas com o valor de 8 e a outra com o valor de 9. 5. Adicione ao script da questo anterior um comentrio de vrias linhas com o enunciado da questo anterior.
CAPTULO IV
CRIAO DE UM BANCO DE DADOS
CREATE DATABASE ProjetoTSQL
ARQUIVOS MDF E LDF
CREATE TABLE
USE ProjetoTSQL
CREATE TABLE Clientes(
...
CHAVE PRIMRIA
ALTER TABLE CLIENTES ADD ...
INSERO DE REGISTROS COM O INSERT
INSERT INTO Clientes(Nome
,Endereo ,Telefone ,Email ,DataNascimento) ...
CONSULTA A REGISTROS COM SELECT
SELECT Codigo
,Nome
,...
FILTRO DE CONSULTAS COM WHERE
SELECT Codigo
,Nome
,...
OPERADOR AND
WHERE Codigo > 1
....
ATUALIZAO COM O COMANDO UPDATE
UPDATE
Clientes ....
ISNULL E COALESCE
SELECT ISNULL(
TABELAS TEMPORRIAS
CREATE TABLE #Clientes
EXERCCIOS DE FIXAO
1.Crie um banco de dados denominado ProjetoCapitulo4. 2.Dentro do banco de dados ProjetoCapitulo4, crie uma tabela chamada usurios com os seguintes campos e tipos de dados: Cdigo, Iiteiro, sequencial e chave primria Nome, cadeira caracteres com no mximo 200 caracteres Login, cadeira caracteres com no mximo dez caracteres Senha, cadeira caracteres com no mximo seis caracteres 1.Altere a tabela usurios adicionando um campo denominado DataCriacao com a data de criao do registro, com a data atual como valor padro . 2.Insira o seguinte grupo de dados na tabela usurios (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 prximo registro a ser inserido tenha o campo cdigo com o valor um. 6.Crie uma tabela temporria com a mesma estrutura da tabela usurios. 7.Exclua o banco de dados ProjetoCapitulo4.
Nome Rodrigo Daniel Carolina
Login rodrigo daniel carol
Senha 132435 989876 192837
CAPTULO 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 fkProdutos FOREIGN KEY....
DIAGRAMAS DE BANCO DE DADOS
INNER JOIN
... FROM Clientes C INNER JOIN Vendas .
LEFT JOIN
.... FROM Clientes C LEFT JOIN Vendas
RIGHT JOIN
... FROM VENDAS v RIGHT JOIN Produtos ...
USO DO COUNT E FUNES DE AGREGAO
SELECT Count(*) ...
EXERCCIOS DE FIXAO
1. Crie um banco de dados ProjetoCapitulo5. 2. No banco de dados ProjetoCapitulo5 crie uma tabela Clientes com os seguintes campos Cdigo, inteiro, sequencial e chave primria Nome, cadeira de caracteres com no mximo 200 caracteres 3. Crie uma tabela chamada Pedidos com os seguintes campos: Cdigo, inteiro, sequencial e chave primria DataPedido, Data, valor padro data atual Cliente, inteiro, chave estrangeira da tabela clientes Valor, numrico com duas casas depois da vrgula
4. Insira trs registros na tabela clientes com nomes diferentes e dois pedidos para os dois primeiros clientes. 5. Faa uma query listando todos os clientes e o nmero de pedidos para cada cliente mesmo que no tenham pedido nenhum.
CAPTULO VI
CRIAO DE VIEWS
CREATE VIEW vwClientesAtivos AS ...
CRIAO DE TRIGGERS
CREATE Trigger UpdateProdutos ON Produtos FOR UPDATE AS ...
QUERY COM SQL DINMICO
DECLARE @DATAINI DATETIME ,@DATAFIM DATETIME SELECT @DATAINI='20121221' ,@DATAFIM='20121222'
SELECT Codigo ,Cliente....
CRIAO DE PROCEDURES
CREATE PROC SP_PRODUTOS_CAROS AS .....
CRIAO DE FUNES
CREATE FUNCTION dbo.fnPar(@Valor INT) RETURNS BIT BEGIN .....
USO DE FUNES PARA MANIPULAO DE STRINGS
SUBSTRING RIGHT LEFT LEN
FUNES DE MANIPULAO DE DATAS
DAY MONTH YEAR DATEADD DATEDIFF
O QUE SO E COMO US-LAS?
EXERCCIOS DE FIXAO
1. 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. Cdigo, inteiro, sequencial e chave primria 4. Nome, cadeia de caracteres com no mximo 200 carcateres 5. DataNascimento, Data 6. DataAtualizacao, Data 7. 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 funo que recebe como argumento um parmetro Data e calcula a idade baseada no parmetro. 11. Crie uma query que lista todos os clientes da tabela Clientes e usa a funo 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.
CAPTULO VII
ACESSANDO TABELAS DE SISTEMA
sys.objects Sys.columns
CRIAO DE NDICES
CREATE INDEX IXNomeCliente ...
ACESSO AO EXECUTION PLAN
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
O COMANDO BACKUP DATABASE
BACKUP DATABASE ProjetoTSQL...
RESTAURAO DE UM BACKUP
RESTORE DATABASE [ProjetoTSQL]
EXERCCIOS DE FIXAO
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 temporria chamada #Tabelas com os seguintes campos: 4. Tabela, cadeia de caracteres com no mximo 100 caracteres 5. Coluna, cadeia de caracteres com no mximo 100 caracteres 6. 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 temporria criada anteriormente. 7. Agora, crie um banco de dados Capitulo7 e faa um backup full desse banco de dados na pasta temp do seu computador. 8. Restaure o banco de dados com o backup criado na questo anterior. 9. Exclua o banco de dados criado anteriormente.
FIM