Академический Документы
Профессиональный Документы
Культура Документы
Os comandos SQL de definio so utilizados para definio e modificao de esquemas de relao, remoo de relaes e criao de ndices. Esses comandos fazem parte de um tipo de SQL denominada de DDL (Linguagem de definio de dados ou Data Definition Language). O usurio principal da camada DDL o DBA.
Exemplo:
Para selecionar um determinado banco de dados deve ser executar o seguinte comando:
use curso;
2. Criando Tabelas
O comando create table utilizado para criao de tabelas em um banco de dados. Sintaxe:
create table nome da tabela ( coluna tipo-do-dado default] [, coluna tipo-do-dado default] ...] [not null] [not null with [not null] [not null with
coluna: refere-se ao nome da coluna a ser criada. A definio das colunas de uma tabela feita relacionando-as uma aps a outra, separadas por vrgula.
tipo-do-dado : define o tipo e o tamanho da coluna definida. Os tipos de dados mais comuns so: Integer, varchar, char e boolean, long Varchar, Date, Time;
not null with default : define uma coluna de preenchimento obrigatrio e que, no momento da incluso de uma linha na tabela, tenha um valor pr-definido, tais como: nmero zero, para o tipo de dado numrico, caracter vazio, para o tipo de dado string, data corrente, para o tipo de dado date, horrio corrente, para o tipo de dado time.
primary key (coluna-pk) : define a coluna que ser a chave primria da tabela. No caso de mais de uma coluna ser chave primria, separ-las por vrgula.
foreign key (coluna-fk) references tabela-pai (coluna-pk-pai): define a coluna-fk, de , como chave estrangeira. A define a tabela-pai relacionada a fk e define a coluna pk, de .
Exemplos:
Criar trs tabelas: curso, mdulo e disciplina apresentando as seguintes caractersticas: Tabela Curso: deve possuir como campos o id_curso (cdigo do curso) e o nome (nome do curso). O campo cdigo do curso no pode ser repetido(PK) e deve ser automtico e incremental.
CREATE TABLE
id_curso integer
) ENGINE=InnoDB
A clusula auto_increment permite com que o campo id_curso seja incrementado de acordo com a expanso dos registros. Por exemplo, se o primeiro registro tiver id_curso=1, o segundo registro ter id_curso=2 e assim por diante.
Tabela mdulo: deve possuir como campos o id_modulo (cdigo do modulo ) o id_curso (cdigo do curso) e o nome (nome do modulo). O campo cdigo do modulo no pode ser repetido (PK) e deve ser automtico e incremental. Um curso deve possuir vrios mdulos (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 (cdigo da disciplina ) o id_modulo (cdigo do modulo) e o nome (nome da disciplina). O campo cdigo da disciplina no pode ser repetido ( criar PK) e deve ser automtico e incremental. Um mdulo deve possuir vrias 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 clusula EGINE=InnoDB 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 ] }
add coluna tipo-do-dado [not null] [not null with default] : acrescenta uma nova coluna. No caso da existncia de linhas nesta tabela, o valor da nova coluna ser de acordo com as definies das clusulas not null e not null with default.
add primary key (coluna-pk): define uma chave primria uma nova coluna acrescentada na tabela.
Exemplos:
ALTER TABLE
curso
Renomear campos: renomear campo perodo para cargaHoraria (tipo inteiro) na tabela curso. ALTER TABLE curso CHANGE periodo cargahoraria integer;
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 constraint Fk_curso_disciplina foreign key (id_curso) references curso_universitario (id_curso);
Removendo
campo:
remover
campo
cargahoraria
da
tabela
curso_universitario.
4. Remover Tabela
O comando drop table utilizado para remover tabelas do banco de dados Sintaxe: drop table nome da tabela;
Exemplo:
5. Manuteno de Tabela Exibir todas as tabelas do banco de dados Show tables; Exibir o status da status das tabelas show table status; Exibir as permisses de todos os usurios show grants;