Início » SQL Server » Criando tabelas no SQL Server

Criando tabelas no SQL Server

Tem-se os seguintes esquemas:

  • Funcionarios (Codigo, PrimeiroNome, SegundoNome, UltimoNome, DataNascimento, CPF, RG, Endereco, CEP, Cidade, Fone, CodigoDepartamento, Funcao, Salario)
  • Departamentos (Codigo, Nome, Localizacao, CodigoFuncionario)

Para criar as tabelas acima utilizamos o comando CREATE TABLE, unindo a ele o nome que será atribuído ao objeto e suas características.

Comandos CREATE TABLE, PRIMARY KEY e IDENTITY

create table funcionarios (
codigo int not null primary key identity (1,1),
primeiroNome varchar (50) not null,
segundoNome varchar (50),
ultimoNome varchar (50) not null,
dataNascimento date,
cpf varchar (14),
rg varchar (8),
endereco varchar (100),
cep varchar (9),
cidade varchar (30),
fone varchar (13),
codigoDepartamento int not null,
funcao varchar (20),
salario decimal (10,2)
)
create table departamentos (
codigo int not null primary key identity (1,1),
nome varchar (50),
localizacao varchar (50),
codigoFuncionario int not null
)

O comando identity é usado para auto-incremento no SQL Server. Sintaxe:

  • IDENTITY [(seed, increment)]
  • seed: valor usado para a primeira linha carregada na tabela.
  • increment: é o valor de incremento adicionado ao valor de identidade da linha anterior que foi carregada.

Alterando as tabelas para atribuir foreign key

Podemos adicionar as foreign keys através do comando ALTER TABLE. Abaixo, entramos com o comando alter table para as tabelas funcionarios e departamentos para definir as FK’s.

alter table funcionarios
add constraint fk_funcionarios_departamentos foreign key (codigoDepartamento) 
references departamentos (codigo)

Inserimos a cláusula constraint e entramos com o relacionamento fk_funcionarios_departamentos que significa que haverá um relacionamento entre a tabela funcionarios para a tabela departamentos. Na tabela funcionarios, o atributo codigoDepartamento é o que será relacionado a tabela departamentos, ao atributo codigo.

alter table departamentos
add constraint fk_departamentos_funcionarios foreign key (codigoFuncionario) 
references funcionarios (codigo)

Inserimos a cláusula constraint e entramos com o relacionamento fk_departamentos_funcionarios que significa que haverá um relacionamento entre a tabela departamentos para a tabela funcionarios. Na tabela departamentos, o atributo codigoFuncionario é o que será relacionado a tabela funcionarios, ao atributo codigo.

Bons estudos!

Andrielle Azevedo de Paula
MTAC – Microsoft Technical Audience Contributor


11 Comentários

  1. Andressa disse:

    Ótimo post, sempre bom achar conteudos basicos na internet!

    bjus

  2. Cássio disse:

    Ótimo! Explicativo e direto!
    Uma dúvida… Estou começando a estudar BD, como eu crio uma restrição para o campo sexo, para que não se entre com algo diferente de “M” ou “F” ?
    Bjo

    • Dri Azevedo disse:

      Cássio, achei um exemplo que poderá te ajudara fazer a restrição para o compo sexo.

      “Check, é uma constraint que especifica que condição a coluna precisa para salvar um registro.

      Ex: na tabela Cliente, temos o campo SEXO e nele só pode ser inserido F ou M, entao criamos uma constraint de check, só permitindo essas duas letras e evitando que seja inserido A, B, C.

      CREATE TABLE Cliente
      (
      ClienteId int not null IDENTITY(1,1) CONSTRAINT PK_Cliente_ClienteId PRIMARY KEY,
      Nome nvarchar(64) not null,
      Sexo char(1) not null CONSTRAINT CK_Cliente_Sexo CHECK(Sexo = ‘M’ or Sexo = ‘F’)
      )

      Ao ser inserido A, B, C ele não permitirá e dará erro na constraint CK_Cliente_Sexo, pois ela só aceita M ou F.”

  3. Roger Luz disse:

    Essa é minha aluna Dri… Parabéns…

  4. Muito bom mesmo ^^ recomendo

  5. joão carlos disse:

    Gostei do post. ta de parabens. Me passa ai seu e-mail pessoal se puder.

  6. Mario disse:

    Eu estava precisando de um comando com chave estrangeira, achei bem simples o post. Muito bom

  7. SAULO disse:

    Estou tentando aprender por conta própria a mexer no SQL lite, entretanto estou com algumas dúvidas básicas, ali em cima “CREATE TABLE” eu queria criar uma tabela de funcionários, mas não sei exatamente aonde substituir as coisas, exemplo: no campo Código, o código é escolha minha? esse números “(50), (100)…”, oq eles são? e pra que servem? eu devo substituir cada campo que está de inicio como o nome ou dados da pessoa? exemplo, “PRIMEIRONOME” eu tiro isso e coloco “JOÃO”? depois que eu fizer tudo correto, como coloco para funcionar?

    Bom galera, estas são umas de minhas dúvidas, desde já, obrigado.

  8. Código seria um atributo da tabela. Deve ser um nome que indique o porquê aquele atributo está sendo usado.
    Os números entre parênteses, quando o campo é varchar, significa a quantidade de caracteres que aquele campo poderá guardar de dados, ou seja, primeiroNome varchar(50) significa que aquele campo guardará um nome que poderá ter até 50 caracteres.
    primeiroNome é realmente o nome do campo. Na tabela, ele deve permanecer dessa forma, pois indica que ali, em primeiroNome, teremos nomes de pessoas, quando o usuário entrar com esses dados no sistema.

    Espero ter ajudado.

  9. eugenia antonio bravo disse:

    oi andrielle gostei do teu post . preciso da tua ajuda quero criar uma tabela com departamentos e os seus funcionarios e preciso dar acesso aos admin que sao 7 como faço comecando plo director geral como faço quem deve qum nao deve … e urgente

  10. Eduardo Silva disse:

    Mt obrigado por compartilhar um pouco do seus conhecimentos, conteúdo valioso!

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

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

%d blogueiros gostam disto: