[SQL Server] Exame 70 461 – Tópico 1: Criando e alterando tabelas usando T-SQL
Publicado; 21/08/2012 Arquivado em: Exame 70-461 6 ComentáriosIniciando finalmente o conteúdo programático previsto para o Exame 70-461 (você pode conferir o conteúdo completo aqui), vamos abordar hoje a sintaxe T-SQL para a criação e alteração de tabelas. O candidato precisa estar consciente de que é necessário saber script – “nada de janelinhas e facilidades”, pois é isso que predomina nas provas de certificação SQL Server.
Preparando o ambiente
Durante este e nos próximos posts referentes ao exame 70-461 estarei utilizando o banco “DBExame70461”. Para criar o banco execute o código abaixo:
use master
GO
if db_id(‘DBExame70461’) IS NULL
BEGIN
CREATE DATABASE DBExame70461;
ALTER DATABASE DBExame70461 SET RECOVERY SIMPLE;
END;
Cenário 1 – Criação
Você é DBA Junior na empresa XPTO. O seu gerente solicita que você crie uma tabela no banco DBExame70461, usando T-SQL, conforme especificações abaixo:
Tabela: Empregado
Mas qual é a sintaxe para a criação de tabelas? Segue a sintaxe resumida:
CREATE TABLE [ schema_name ] . table_name
( { <column_definition> | <computed_column_definition>
| <column_set_definition> | [ <table_constraint> ] [ ,…n ] } )
[ ON { partition_scheme_name ( partition_column_name ) | filegroup | “default” } ]
[ WITH ( <table_option> [ ,…n ] ) ]
[ ; ]
Para a sintaxe completa consulte este link.
Vejamos então como fica o script para a criação da tabela:
use DBExame70461
go
CREATE TABLE Empregado
( ID INT NOT NULL PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
Sexo CHAR(10) NOT NULL,
Cidade VARCHAR(10),
[UF] CHAR(2) NULL,
[Matricula] CHAR(7) NOT NULL,
[Login] VARCHAR(10),
);
Atente para alguns detalhes desse código de criação:
- A coluna “Cidade”, conforme especificação do gerente, aceita NULL (não é obrigatória). Veja que criei a coluna e não explicitei o NULL. Quando não explicitamos NULL ou NOT NULL para uma coluna, então será usado o comportamento default do SQL Server, que é justamente aceitar nulos;
- Note que para as colunas UF, Matricula e Login utilizei colchetes. Os colchetes podem ser usados para a criação de Alias de colunas em instruções SELECT (veremos isso em outro post), e também quando criamos objetos usando palavras reservadas. No nosso cenário, como a palavra “Login” é reservada pelo SQL Server para propósitos internos, fez-se necessário o uso de colchetes. Se você retirar os colchetes da coluna “Login” e tentar a criar a tabela então um erro será disparado. Para as colunas UF e Matricula os colchetes não fazem qualquer diferença.
Agora uma pegadinha: é possível criar uma coluna com o seguinte nome (note os espaços em branco) : “Endereco do Empregado” ? A resposta é SIM, graças aos colchetes. O código a seguir é válido:
CREATE TABLE Endereco
( ID INT NOT NULL PRIMARY KEY,
[Endereco do Empregado] varchar(50)
);
Nota: jamais faça isso na vida real (eca!).
Cenário 2 – Alteração
Após revisão de requisitos, o gerente pede para você realizar as seguintes alterações na tabela, usando T-SQL:
- Dropar a coluna [Login];
- Alterar a coluna UF de NULL para NOT NULL;
- Alterar o tamanho da coluna Cidade de VARCHAR(10) para VARCHAR(50);
- Incluir a coluna: Email VARCHAR(50) NULL.
Neste ponto faço uma pergunta: é possível realizar todas as mudanças na tabela executando uma única instrução DDL? A resposta é NÃO.
Segue as modificações na estrutura da tabela:
— 1. Dropar a coluna [Login]
ALTER TABLE Empregado
DROP COLUMN [Login];
— 2. Alterar a coluna UF de NULL para NOT NULL
ALTER TABLE Empregado
ALTER COLUMN UF CHAR(2) NOT NULL;
— 3. Alterar o tamanho da coluna Cidade de VARCHAR(10) para VARCHAR(50);
ALTER TABLE Empregado
ALTER COLUMN Cidade VARCHAR(50);
— 4. Incluir a coluna: Email VARCHAR(50) NULL.
ALTER TABLE Empregado
ADD Email VARCHAR(50);
Perceba que para adicionar uma coluna basta escrever ADD seguido do nome da coluna e seu respectivo tipo. Não existe ADD COLUMN (e isso pode cair na prova), apenas ALTER COLUMN.
Para a sintaxe completa de ALTER TABLE consulte este link.
Conclusão e Dica Final
Teremos um tópico específico sobre constraints brevemente e, por conta disso, não falamos nada a respeito. A recomendação que deixo é: pratique bastante; crie e recrie tabelas. Como dica deixo o Template Explorer do SQL Server Management Studio – vá até o menu View – Template Explorer. Este é um recurso que traz dezenas de templates que pode ajudar no processo de aprendizagem.
Post excelente Adeilson.
Obrigado Angelo. Valeu mesmo.
Bom material Adeilson,
Tenho acompanhado todos os dias seu blog.
Fala George. Valeu pela preferência (hehehe). Como estão as coisas aí na PIBAJA?
poxa as coisas continuam na mesma
if(ensaio = true){
return “boa musiaca”;
}else{
return “OMG”;
}
rsrsrsrrsrsrs
Cara,
Bom dia!
Quero agradecer pelos artigos, realizei o exame 70-461 quarta (22/05/2013) e passei \o/.
Seus artigos me ajudaram muito! (Y