[SQL Server] Exame 70 461 – Tópico 1: Criando e alterando tabelas usando T-SQL

Iniciando 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

image

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:

  1. Dropar a coluna [Login];
  2. Alterar a coluna UF de NULL para NOT NULL;
  3. Alterar o tamanho da coluna Cidade de VARCHAR(10) para VARCHAR(50);
  4. 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.

image


6 Comentários on “[SQL Server] Exame 70 461 – Tópico 1: Criando e alterando tabelas usando T-SQL”

  1. Adeilson Brito disse:

    Obrigado Angelo. Valeu mesmo.

  2. George Almeida Melo disse:

    Bom material Adeilson,
    Tenho acompanhado todos os dias seu blog.

  3. Adeilson Brito disse:

    Fala George. Valeu pela preferência (hehehe). Como estão as coisas aí na PIBAJA?

  4. George Almeida Melo disse:

    poxa as coisas continuam na mesma

    if(ensaio = true){
    return “boa musiaca”;
    }else{
    return “OMG”;
    }
    rsrsrsrrsrsrs

  5. Mailson Santana disse:

    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


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s