deve possuir varios modulos (FK). CREATE TABLE modulo ( id_modulo integer NOT NULL auto_increment, id_curso integer NOT NULL, nome varchar(40) default NULL, PRIMARY KEY (id_modulo), FOREIGN KEY (id_curso) REFERENCES curso (id_curso) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Tabela disciplina: deve possuir como campos o id_disciplina (codigo da disciplina ) o id_modulo (codigo do modulo) e o nome (nome da disciplina). O campo codigo da disciplina nao pode ser repetido ( criar PK) e deve ser automatico e incremental. Um modulo deve possuir varias disciplinas (criar FK). CREATE TABLE disciplina ( id_disciplina integer NOT NULL auto_increment, id_modulo integer NOT NULL, nome integer default NULL, PRIMARY KEY (id_disciplina), CONSTRAINT FK_disciplina_modulo foreign key (id_modulo) references modulo (id_modulo) )ENGINE=InnoDB DEFAULT CHARSET=latin1; A clausula EGINE=InnoDB e utilizada para que o banco de dados crie corretamente as chaves estrangeiras no banco de dados. 3. Alterando Tabela Sintaxe: alter table { [ drop ] | [ add [not null] [not null with default]] | [ change ] | [ rename table ] | [ add primary key ( ) ] | [ drop primary key ( ) ] | [ add foreign key () references () [ drop foreign key () references ] } tabela : define o nome da tabela que sera alterada. drop coluna : utilizado para remove a coluna da estrutura da tabela. add coluna tipo-do-dado [not null] [not null with default] : acrescenta uma nova coluna. No caso da existencia de linhas nesta tabela, o valor da nova coluna sera de acordo com as definicoes das clausulas not null e not null with default. rename coluna novo-nome-coluna: troca o nome da coluna. rename table tabela: troca o nome da tabela. add primary key (coluna-pk): define uma chave primaria a uma nova coluna acrescentada na tabela. drop primary key (coluna-pk): remove a definicao de chave primaria da coluna add foreign key () references () : acrescenta uma nova chave estrangeira. drop foreign key () references : remove a definicao de chave estrangeira. Exemplos: Adicionar campos: adicionar campo periodo (tipo inteiro) na tabela curso. ALTER TABLE curso add periodo integer not null; Renomear campos: renomear campo periodo para cargaHoraria (tipo inteiro) na tabela curso. ALTER TABLE curso CHANGE periodo cargahoraria integer; Renomear tabela: renomear tabela curso para cursouniversitario. ALTER TABLE curso rename curso_universitario; Adicionar chave estrangeira(FK): criar chave estrangeira na tabela disciplina, relacionando-a com a tabela curso da seguinte maneira: um curso possui varias disciplinas. ALTER TABLE disciplina add id_curso integer; ALTER TABLE disciplina add constraint Fk_curso_disciplina foreign key (id_curso) references curso_universitario (id_curso); Removendo campo: remover campo cargahoraria da tabela curso_universitario. ALTER TABLE curso_universitario drop cargahoraria; 4. Remover Tabela O comando drop table e utilizado para remover tabelas do banco de dados Sintaxe: drop table nome da tabela; Exemplo: Remover a tabela disciplina do banco de dados DROP TABLE disciplina; 5. Manutencao de Tabela Exibir todas as tabelas do banco de dados Show tables; Exibir o status da status das tabelas show table status; Exibir as permissoes de todos os usuarios show grants; ATE++ www.computacaoonline.com