Arquivo de tag tabelas

porPaulo Henrique Corrêa Cardoso

Criando tabelas – Microsoft SQL Server

Fala pessoal, tudo bem ?

Hoje eu vou passar um conteúdo para quem esta começando a aprender a linguagem SQL. Vamos aprender a criar tabelas, colunas e chaves, utilizando o banco de dados Microsoft SQL Server.

Vamos aprender comandos de uma parte da linguagem SQL chamada de DDL (Data Definition Language), ou seja, linguagem de definição de dados.

Mas antes de começarmos a criação da nossa tabela, vamos primeiro aprender um pouco sobre a tipagem de dados utilizados na maioria dos bancos.

Os bancos tem alguns tipos de dados específicos, por isso vou citar os principais e deixar um link com todos os tipos disponíveis para o Microsoft SQL Server.

Tipagem de Dados

int – O tipo de dados int é o tipo de dados inteiros, seu intervalo de dados vai de -2.147.483.648 até 2.147.483.647 e ocupa 4 bytes de armazenamento.

decimal – O tipo decimal guarda dados que possuem casas decimais de precisão, ou seja definimos o tamanho exato de quantidade de casas que o numero poderá ter entre números inteiros e casas decimais. Por exemplo, o número 123,45 tem uma precisão de 5 e uma escala de 2, sua definição fica da seguinte forma decimal(5,2).

A precisão máxima padrão do tipo decimal é 38 e o mesmo tem uma ocupação de armazenamento representado pela tabela abaixo:

Precisão Bytes de armazenamento
1 – 9 5
10–19 9
20–28 13
29-38 17

float – O tipo float é um tipo dados numéricos aproximados para uso com dados numéricos de ponto flutuante. Como são aproximados nem todos os valores no intervalo de tipo de dados podem ser representados de maneira exata.

Sua definição fica da seguinte forma : float(n) em que n é o número de bits usado para armazenar a mantissa do número float na notação científica e, portanto, exige a precisão e o tamanho do armazenamento. Se n for especificado, ele precisará ser um valor entre 1 e 53. O valor padrão de n é 53.

O armazenamento é representado pela tabela abaixo:

Valor de n Precisão Bytes de armazenamento
1-24 7 dígitos 4 bytes
25-53 15 dígitos 8 bytes

datetime – Define uma data combinada com uma hora do dia que inclui frações de segundos e se baseia em um período de 24 horas. Exemplo: 2020-07-21 20:32:00.520

Intervalo de datas Janeiro 1, 1753, a dezembro 31, 9999
Intervalo de horas 00:00:00 a 23:59:59.997

Seu tamanho é de 8 bytes.

char – Tipo de dados de caractere de tamanho fixo, ou seja, o valor que será armazenado possuirá o tamanho definido na declaração deste tipo.

Exemplo, ao definir uma coluna da tabela como char(10) e realizar o input da informação ‘ABC’, a mesma será gravada como ‘ABC ‘.

varchar – Tipo de dados de caractere de tamanho variável,ou seja, o valor que será armazenado possuirá o tamanho variável no memento da gravação, sempre respeitando o tamanho limite definido na declaração do tipo.

Exemplo, ao definir uma coluna da tabela como varchar(10) e realizar o input da informação ‘ABC’, a mesma será gravada como ‘ABC’.

bit – É um tipo dado inteiro que pode aceitar um valor 1, 0 ou NULL. Os valores de cadeia de caracteres TRUE e FALSE podem ser convertidos em valores bit: TRUE é convertido em 1 e FALSE é convertido em 0.

Para mais tipos de dados aceitos pelo Microsoft SQL Server, consulte Aqui

Bom, agora que falamos sobre os tipos de dados mais comuns, podemos a começar entrar na definição de comandos para criar uma tabela dentro do banco de dados.

Criando uma tabela.

Primeiramente vamos utilizar o comando CREATE TABLE para criar a tabela, definindo as colunas da mesma.

Veja o exemplo:

CREATE TABLE Produto (
  IdProduto   INT           IDENTITY(1,1) NOT NULL,
  DescProduto VARCHAR(60)                 NOT NULL,
  Preco       DECIMAL(14,2)               NOT NULL,
  Peso        FLOAT                       NOT NULL,
  Ativo       BIT                         NOT NULL,
  IdCategoria INT                         NOT NULL,
  DataCriacao DATETIME                    NOT NULL
)

Veja que ao definir as colunas, foram utilizados exemplos de alguns tipos explicados anteriormente.

A primeira coluna definida, possui duas informações diferentes das demais. A propriedade IDENTITY(1,1) define que a coluna será auto-incrementada, iniciando no valor 1 e acrecendo 1 a cada novo registro.

Lembrando que a propriedade IDENTITY é opcional.

Temos também a propriedade NOT NULL, que define que a coluna não aceitará valores nulos, podemos também utilizar a propriedade NULL para permitindo o caso contrario.

Ao executar esses comandos no Microsoft SQL Server teremos nossa primeira tabela criada.

Alterando uma tabela

Mas e se eu precisar adicionar ou alterar uma coluno dentro de uma tabela existente, como posso fazer?

Para isso entramos nos comandos de alteração de tabela, o ALTER TABLE.

O comando ALTER TABLE tem diversas propriedades, vamos abordar algumas principais que você vai utilizar no dia a dia.

A Primeira é o comanda para adicionar uma nova coluna na tabela. Para isso utilizaremos o comando ADD.

Veja o exemplo:

ALTER TABLE Produto
ADD CodBarras CHAR(13)    NULL,
    Cor       VARCHAR(10) NULL

Neste exemplo adicionamos duas novas colunas em nossa tabela, utilizando os comandos ALTER TABLE + o comando ADD.

Se precisarmos modificar uma coluna existente, utilizaremos o comando ALTER COLUMN, da seguinte forma:

ALTER TABLE Produto
ALTER COLUMN Cor VARCHAR(20) NOT NULL

Veja que neste exemplo alteramos o tamanho e a propriedade NOT NULL da coluna Cor, utilizando os comandos ALTER TABLE + ALTER COLUMN.

Caso precisemos excluir uma coluna, vamos utilizar o comando DROP COLUMN, da seguinte forma:

ALTER TABLE Produto
DROP COLUMN Cor

Veja que a coluna foi excluída com esse comando.

Chaves da tabela.

Agora que aprendemos os comandos básicos para criação de uma tabela, vamos entender um pouco sobre chaves da tabela.

Existem dois tipos de chaves que utilizamos em uma tabela. A Primary Key (chave primaria) e as Foreign Key’s (chaves estrangeiras).

Uma tabela pode ter apenas uma Primary Key, e seu valor não poderá se repetir entre os registros.

A criação dessa chave pode ser feita no momento da criação to campo na tabela, ou posteriormente com um comando especifico.

Veja o comando para adicionar a Primary Key posteriormente a criação da tabela:

ALTER TABLE Produto
ADD CONSTRAINT PK_Produto_IdProduto PRIMARY KEY CLUSTERED (IdProduto)

Onde “PK_Produto_IdProduto” é o nome que definimos pra nossa Primary Key e IdProduto é o campo que fará parte da chave.

Já as Foreign Key’s são chaves de relacionamento com outras tabelas, e servem para garantir a integridade de registros entre as mesmas.

Para esse exemplo vou criar uma tabela de Categoria para a classificação dos Produtos.

CREATE TABLE Categoria(
  IdCategoria  INT          IDENTITY(1,1) NOT NULL,
  Descricao    VARCHAR(100)               NOT NULL, 
  CONSTRAINT PK_Categoria_IdCategoria    PRIMARY KEY CLUSTERED (IdCategoria)
)

Veja que nesse exemplo eu criei a Primary Key no momento da criação da tabela.

Agora vamos criar uma Foreign Key na tabela de Produtos, relacionando o campo IdCatetoria da tabela Produto com o da tabela Categoria.

ALTER TABLE Produto
ADD CONSTRAINT FK_ProdutoCategoria
FOREIGN KEY (IdCategoria) REFERENCES Categoria(IdCategoria)

Onde “FK_ProdutoCategoria” é o nome da Foreign Key , “(IdCatetoria)” é o campo chave de relacionamento da tabela Produto e “Categoria(IdCategoria)” é a referencia com a tabela de Categoria e com o campo Primary Key da mesma.

Dessa forma quando tentar inserir um registro na tabela de Produtos com uma categoria que não exista o banco de dados não permitira a inclusão do registro, da mesma forma que não será permitido excluir uma categoria que esteja vinculada com algum produto.

Excluindo uma tabela.

Para deletar uma tabela, temos o comando DROP TABLE, que deve ser utilizado da seguinte forma:

DROP TABLE Categoria

Bom pessoal, esse foi o conteúdo do Post de hoje.

Espero que ajude muito vocês!!!

Qualquer dúvida, deixe nos comentários.

Até a próxima!!!