Criação de Tabelas


  Com o objetivo de servir de apoio ao aprendizado do DBASE II, serão utilizadas duas tabelas contendo dados fictícios: a tabela alunos e a tabela notasmat.
  Seja um professor de matemática qualquer, a tabela alunos contém dados sobre todos os alunos desse professor, e a tabela matematica contém as notas dos alunos desse professor.

  Tabela alunos
matricula nome idade sexo serie
8361 Pablo Goncalves 11 M 5
4321 Ana Maria Silva 11 F 5
5543 Waldir Moraes 12 M 6
8437 Alvaro Schwarz 12 M 5
7193 Beatriz Saraiva 13 F 6
3398 Mauro Pontes 11 M 5
9001 Pedro Tavares 13 M 6
6567 Suely Albuquerque 12 F 6
6201 Pedro Borges 11 M 5
7766 Paula Tavares 13 F 6


  Tabela notasmat
matricula bim1 bim2 bim3 bim4
8361 8.0 7.5 8.0 7.5
4321 6.0 5.5 8.0 7.0
5543 7.0 7.7 6.0 7.0
8437 8.5 9.0 9.5 9.0
7193 10.0 10.0 9.7 9.9
3398 8.0 7.0 7.5 9.0
9001 5.5 4.0 7.0 7.0
6567 7.5 9.0 8.0 7.0
6201 7.0 8.0 7.0 7.0
7766 8.0 8.5 7.0 7.0



  O comando do DBASE II para a criação de novas tabelas é o "create".

  Sintaxe:
 CREATE <nome_tabela>
  Após o comando "create", um arquivo com extensão ".DBF" será criado, com o mesmo nome da tabela. Deve-se lembrar que o MSX trabalha com nomes de arquivo no formato 8.3, ou seja, no máximo oito caracteres para o nome e mais três para a extensão.
  Após o comando de criação da tabela, o programa pede para que seja definida a estrutura da tabela, que são os nomes e tipos de dados de cada coluna da tabela.


  Criando a tabela aluno

  No prompt do DBASE II, digite:
. create alunos
  A seguinte mensagem surge na tela:
. create alunos
Entre com a estrutura do registro :
Nome do campo, tipo, tamanho, casas decimais
  Digite a seguinte estrutura:
. create alunos
Entre com a estrutura do registro :
Nome do campo, tipo, tamanho, casas decimais
 001     MATRICULA,N,4
 002     NOME,C,30
 003     IDADE,N,2
 004     SEXO,C,1
 005     SERIE,N,1
 006
  Ao final de cada linha, tecle enter para validar. Ao teclar enter em uma linha vazia (vide linha 006), é terminada a criação da estrutura da tabela.
  A partir desse momento, a tabela está pronta para receber os dados. Então, surge a seguinte pergunta na tela:
. Incluir dados agora ?
  Responda "Y" se sim ou "N" se não. Vamos optar por "N" agora. O capítulo a seguir fala sobre a inclusão de dados na tabela.

  O comando "diplay strucure" exibe a estrutura de uma tabela em uso. Após a criação, devemos informar ao sistema qual a tabela em uso (somente uma vez).
. use alunos
. display structure
Estrutura para o arquivo :A:ALUNOS  .DBF
Número de registros :00000
Data da última atualização :10/02/17
Uso primário do banco de dados.
Cpo       Nome      Tipo Tam.    Dec.
001     MATRICULA    N    004
002     NOME         C    030
003     IDADE        N    002
004     SEXO         C    001
005     SERIE        N    001
** TOTAL **             00039
  A seguir, será apresentado o comando SQL equivalente a esse processo de criação da tabela aluno. Lembrando que SQL é um comando de banco de dados do PC, como, por exemplo, MySQL, PostgreSQL, Oracle, Microsoft SQL, DB2 etc.
CREATE TABLE alunos (
matricula number(4),
nome varchar2(30),
idade number(2),
sexo varchar2(1),
serie number(1);
);


  Criando a tabela notasmat

  No prompt do DBASE II, digite:
. create notasmat
Entre com a estrutura do registro :
Nome do campo, tipo, tamanho, casas decimais
 001     MATRICULA,N,4
 002     BIM1,N,4,1
 003     BIM2,N,4,1
 004     BIM3,N,4,1
 005     BIM4,N,4,1
 006

  Obs: como medir o comprimento de um número real:
Maior valor da nota: 10.0

tamanho | 4 | 3 | 2 | 1 |
--------+---+---+---+---+---------------
valor   | 1 | 0 | . | 0 | valor
--------+---+---+---+---+---------------
        |   |   |   | 1 | Casas decimais

  A seguir, será apresentado o comando SQL equivalente a esse processo de criação da tabela aluno.
CREATE TABLE notasmat (
matricula number(4),
bim1 number(4,1),
bim2 number(4,1),
bim3 number(4,1),
bim4 number(4,1)
);


  Comandos do DBASE II

  A seguir serão apresentados alguns comandos necessários por ora.

  Modificando a estrutura de uma tabela

  Uma maneira de se corrigir a estrutura de uma tabela é apagá-la e criá-la de novo. Entretanto, isso não é uma boa idéia, pois nos obriga a digitar todos os campos novamente.
  O DBASE II nos permite modificar a estrutura de uma tabela, através do comando "modify structure". Porém, nem tudo são flores, pois essa função irá apagar todos os dados da tabela. Caso a tabela esteja vazia, não há problemas. Senão, uma solução mais adiante será dada.
  O primeiro passo é colocar a tabela a ser modificada em uso e em seguida modificar a estrutura. Ex:
. use notasmat
. modify structure
MODIFY apaga todos os registros de dados. Prossegue (Y/N) ?
  Em caso afirmativo, um editor é aberto para a modificação da estrutura da tabela.
           Nome
Campo 01  :MATRICULA  N  004  000  :
Campo 02  :BIM1       N  004  001  :
Campo 03  :BIM2       N  004  001  :
Campo 04  :BIM3       N  004  001  :
Campo 05  :BIM4       N  004  001  :
Campo 06  :                        :
Campo 07  :                        :
  Os comandos de movimentação do cursor encontram-se aqui.

  Se a tabela não estiver vazia, devemos fazer um pequeno truque para não perder os dados:
  1. Copiar a estrutura da tabela corrente para um novo arquivo.
  2. Colocar o novo arquivo em uso.
  3. Editar e modificar a estrutura do arquivo novo (ele está vazio mesmo).
  4. Copiar os dados da tabela antiga para a nova.
  Por exemplo, vamos modificar a estrutura da tabela notasmat para uma nova tabela notasnov.
. use notasmat
. copy structure to notasnov
. use notasnov
. modify structure
. append from notasmat


/MARMSX/CURSOS/DBASEII