Criando tabelas via SQL.
Vamos criar via SQL as tabelas utilizadas no primeiro artigo de Desvendando o Crystal Reports
Só para lembrar a estrutura das tabelas é dada a seguir:
Obs : Codaluno , Codcurso, CodProfessor são chaves primárias de suas respectivas tabelas.
TblAlunos TblCursos TblNotas TblProfessor codaluno nome endereco telefone nascimento nomepai nomemae Periodo serie numero sexo ativo observacao codcurso nomecurso codprofessor creditos codaluno codcurso nota ano bimestre Observacao codprofessor nome endereco telefone nascimento sexo observacao ativoPara exercitar iremos definir os relacionamentos entre as tabelas da seguinte forma (figura 1.0 abaixo):
figura 1.0
A tabela tblprofessor pode ser definida como a seguir (Access SQL) :
A instrução CREATE TABLE irá criar a tabela tblprofessor, com as definições da lista de campos entre parênteses, separados um dos outros por vírgulas. Cada descrição de campo possui duas partes: o nome do campo e o tipo de dados os quais são separados por um espaço entre si.
CREATE TABLE tblprofessor (codprofessor INTEGER CONSTRAINT primarykey PRIMARY KEY, nome TEXT (50), endereco TEXT (50) telefone TEXT (15), nascimento DATE, sexo TEXT (1), ativo BIT, observacao TEXT (100));A cláusula CONSTRAINT é utilizada para definir a chave primária codprofessor, ela defina as características das colunas ou índices em uma tabela. Pode ser usada para definir uma chave primária ou para estabelecer um relacionamento entre duas tabelas.
Para criar a tabela no VB execute a instrução CREATE TABLE passando-a como parâmetro do método Execute do objeto Database. Ex: db.Execute ("CREATE TABLE...")
Os nomes dos tipos de dados utilizados pelo JET não são iguais aos nomes exigidos pelas instruções SQL. Veja na tabela a abaixo a correspondência entre ambos:
Tipos de Dados SQL Tipos de dados do JET BIT BYTE COUNTER CURRENCY DATETIME SINGLE DOUBLE SHORT LONG LONGTEXT LONGBINARY TEXT YES/NO NUMERIC - BYTE COUNTER - Contador CURRENCY - Moeda DATE/TIME NUMERIC - SINGLE NUMERIC - DOUBLE NUMERIC - INTEGER NUMERIC - LONG MEMO OLE OBJECTS TEXT
A tabela TblCursos será criada pela instrução:
CREATE TABLE tblcursos (codcurso INTEGER CONSTRAINT primarykey PRIMARY KEY, nomecurso TEXT (15), codprofessor INTEGER CONSTRAINT tblprofessorFK REFERENCES tblprofessor);
A cláusula CONSTRAINT é utilizada para definir uma chave primária e uma chave externa.
Note que existe uma relação de um para muitos entre a tabela TblProfessor e a tabela TblCursos, sendo que a coluna codprofessor da tabela TblCursos, é uma chave estrangeira (Foreign Key - FK )Bem vejamos como criar as demais tabelas:
A tabela TblNotas
CREATE TABLE tblNotas (codaluno INTEGER CONSTRAINT tblalunosFK REFERENCES tblalunos, Codcurso INTEGER CONSTRAINT tblcursosFK REFERENCES tblcursos, Nota INTEGER, Ano TEXT (4), Bimestre INTEGER);
A tabela TblalunosO código usado acima refere-se ao SQL-Access, havendo diferenças quando escrito para o ORACLE , SQL SERVER , SYBASE, etc.
CREATE TABLE tblalunos (codaluno INTEGER CONSTRAINT primarykey PRIMARY KEY, nome TEXT (50), endereco TEXT (50) telefone TEXT (15), nascimento DATE, nomepai TEXT (50), nomemae TEXT (50), periodo TEXT (1), serie TEXT (10), numero TEXT (5), observacao TEXT (100), sexo TEXT (1), ativo BIT);
Retorna