Criação de bancos de dados e tabelas em SQL

click fraud protection

Você está pronto para começar a criar bancos de dados e tabelas com o Linguagem de consulta estruturada? Neste artigo, exploramos o processo de criação de tabelas manualmente com os comandos CREATE DATABASE e CREATE TABLE. Se você é novo no SQL, pode querer revisar alguns Noções básicas de SQL primeiro.

Requisitos de negócio

Antes de nos sentarmos ao teclado, precisamos garantir que temos um conhecimento sólido dos requisitos do cliente. Qual é a melhor maneira de obter esse insight? Conversar com o cliente, claro! Depois de conversar com o Diretor de Recursos Humanos da XYZ, descobrimos que eles são uma empresa de vendas de widgets e estão principalmente interessados ​​em rastrear informações sobre sua equipe de vendas.

A XYZ Corporation divide sua força de vendas nas regiões leste e oeste, cada uma delas dividida em muitos territórios cobertos por representantes de vendas individuais. O departamento de RH gostaria de rastrear o território coberto por cada funcionário, bem como as informações salariais e a estrutura de supervisão de cada funcionário. Para atender a esses requisitos, projetamos um banco de dados que consiste em três tabelas, mostradas no

instagram viewer
Diagrama Entidade-Relacionamento nesta página.

Escolhendo uma plataforma de banco de dados

Decidimos usar um Sistema de gerenciamento de banco de dados (ou DBMS) que se baseia na Structured Query Language (SQL). Portanto, todos os nossos comandos de criação de banco de dados e tabela devem ser escritos com o padrão ANSI SQL em mente.

Como benefício adicional, o uso de SQL compatível com ANSI garantirá que esses comandos funcionem em qualquer SGBD que ofereça suporte ao padrão SQL, incluindo Oracle e Microsoft SQL Server. Se você ainda não selecionou uma plataforma para seu banco de dados, Opções de software de banco de dados o orienta durante o processo de seleção.

Criando o banco de dados

Nosso primeiro passo é criar o próprio banco de dados. Muitos sistemas de gerenciamento de banco de dados oferecem uma série de opções para personalizar os parâmetros do banco de dados nesta etapa, mas nosso banco de dados permite apenas a criação simples de um banco de dados. Como acontece com todos os nossos comandos, você pode desejar consultar a documentação do seu DBMS para determinar se algum parâmetro avançado compatível com o seu sistema específico atende às suas necessidades. Vamos usar o comando CREATE DATABASE para configurar nosso banco de dados:

CRIAR BANCO DE DADOS pessoal

Preste atenção especial à capitalização usada no exemplo acima. É prática comum entre os programadores de SQL usar todas as letras maiúsculas para palavras-chave SQL, como "CREATE" e "BANCO DE DADOS" ao usar todas as letras minúsculas para nomes definidos pelo usuário, como o banco de dados "pessoal" nome. Essas convenções fornecem legibilidade fácil.

Agora que projetamos e criamos nosso banco de dados, estamos prontos para começar a criar as três tabelas usadas para armazenar os dados pessoais da Corporação XYZ.

Criando nossa primeira mesa

Nossa primeira tabela consiste em dados pessoais de cada funcionário de nossa empresa. Precisamos incluir o nome, salário, carteira de identidade e gerente de cada funcionário. É uma boa prática de design separar o sobrenome e o nome em campos separados para simplificar a pesquisa e classificação de dados no futuro. Além disso, acompanharemos o gerente de cada funcionário inserindo uma referência à ID de funcionário do gerente em cada registro de funcionário. Vamos primeiro dar uma olhada na tabela de funcionários desejada.

O atributo ReportsTo armazena o ID do gerente para cada funcionário. A partir dos registros de amostra mostrados, podemos determinar que Sue Scampi é a gerente de Tom Kendall e John Smith. No entanto, não há informações no banco de dados sobre o gerente de Sue, conforme indicado pela entrada NULL em sua linha.

Agora podemos usar o SQL para criar a tabela em nosso banco de dados pessoal. Antes de fazermos isso, vamos garantir que estamos no banco de dados correto emitindo um comando USE:

USE pessoal;

Alternativamente, o "pessoal DATABASE;" comando desempenharia a mesma função. Agora podemos dar uma olhada no comando SQL usado para criar a tabela de nossos funcionários:

CRIAR TABELA funcionários
(ID do funcionário INTEGER NÃO NULO,
sobrenome VARCHAR (25) NÃO NULO,
primeiro nome VARCHAR (25) NÃO NULO,
relatórios para INTEGER NULL);

Como no exemplo acima, observe que a convenção de programação determina que devemos usar todas as letras maiúsculas para palavras-chave SQL e letras minúsculas para colunas e tabelas nomeadas pelo usuário. O comando acima pode parecer confuso no início, mas na verdade existe uma estrutura simples por trás dele. Aqui está uma visão geral que pode esclarecer um pouco as coisas:

CRIAR TABELA nome_tabela
(opções de tipo de dados attribute_name,
...,
opções de tipo de dados attribute_name);

Atributos e tipos de dados

No exemplo anterior, o nome da tabela é funcionários e incluímos quatro atributos: EmployeeID, lastname, firstname e reportsto. O tipo de dados indica o tipo de informação que desejamos armazenar em cada campo. O ID do funcionário é um número inteiro simples, portanto, usaremos o tipo de dados INTEGER para o campo employeeid e o campo reportsto. Os nomes dos funcionários serão cadeias de caracteres de comprimento variável e não esperamos que nenhum funcionário tenha um nome ou sobrenome com mais de 25 caracteres. Portanto, usaremos o tipo VARCHAR (25) para esses campos.

Valores NULL

Também podemos especificar NULL ou NOT NULL no campo de opções da instrução CREATE. Isso simplesmente informa ao banco de dados se valores NULL (ou vazios) são permitidos para aquele atributo ao adicionar linhas ao banco de dados. Em nosso exemplo, o departamento de RH requer que uma ID de funcionário e um nome completo sejam armazenados para cada funcionário. No entanto, nem todo funcionário tem um gerente (o CEO não se reporta a ninguém!), Portanto, permitimos entradas NULL nesse campo. Observe que NULL é o valor padrão e a omissão dessa opção permitirá implicitamente valores NULL para um atributo.

Construindo as tabelas restantes

Agora vamos dar uma olhada na tabela de territórios. Olhando rapidamente para esses dados, parece que precisamos armazenar um inteiro e duas strings de comprimento variável. Como em nosso exemplo anterior, não esperamos que o ID da região consuma mais do que 25 caracteres. No entanto, alguns de nossos territórios têm nomes mais longos, então vamos expandir o comprimento permitido desse atributo para 40 caracteres.

Vejamos o SQL correspondente:

CRIAR TABELA territórios
(territorid INTEGER NOT NULL,
território Descrição VARCHAR (40) NOT NULL,
regionid VARCHAR (25) NÃO NULO);

Por fim, usaremos a tabela EmployeeTerritories para armazenar os relacionamentos entre funcionários e territórios. Informações detalhadas sobre cada funcionário e território são armazenadas em nossas duas tabelas anteriores. Portanto, só precisamos armazenar os dois números de identificação inteiros nesta tabela. Se precisarmos expandir essas informações, podemos usar um JOIN em nossos comandos de seleção de dados para obter informações de várias tabelas.

Este método de armazenamento de dados reduz a redundância em nosso banco de dados e garante o uso ideal do espaço em nossas unidades de armazenamento. Abordaremos o comando JOIN em detalhes em um tutorial futuro. Aqui está o código SQL para implementar nossa tabela final:

CRIAR TABELA empregaterritórios
(ID do funcionário INTEGER NÃO NULO,
territorid INTEGER NOT NULL);

O mecanismo que SQL fornece para alterar a estrutura de um banco de dados após a criação

Se você for particularmente astuto hoje, deve ter notado que omitimos "acidentalmente" um dos requisitos de design ao implementar nossas tabelas de banco de dados. O Diretor de RH da XYZ Corporation solicitou que o banco de dados rastreasse as informações de salários dos funcionários e deixamos de fornecer isso nas tabelas do banco de dados que criamos.

No entanto, nem tudo está perdido. Podemos usar o comando ALTER TABLE para adicionar este atributo ao nosso banco de dados existente. Queremos armazenar o salário como um valor inteiro. A sintaxe é bastante semelhante à do comando CREATE TABLE, aqui está:

Funcionários da ALTER TABLE
ADICIONE salário INTEGER NULL;

Observe que especificamos que valores NULL são permitidos para este atributo. Na maioria dos casos, não há opção ao adicionar uma coluna a uma tabela existente. Isso se deve ao fato de que a tabela já contém linhas sem entrada para este atributo. Portanto, o DBMS insere automaticamente um valor NULL para preencher o vazio.

instagram story viewer