Comandos SQL- Comandos de Definição (DDL)
Autor: Daniel Tavares - Belém-PA | Publicado: 2011-08-15T17:29:00-03:00

&#160;  Os comandos SQL de definição são utilizados para definição e modificação de esquemas de relação, remoção de relações e criação de índices. Esses comandos fazem parte de um tipo de SQL denominada de DDL (Linguagem de definição de dados&#160; ou Data Definition Language). O usuário principal da camada DDL é o DBA.  &#160;               1. Criando Banco de dados    O comando create database é utilizado&#160; para criar um banco de dados.                 Sintaxe:&#160;      create database nome_do_banco;          Exemplo:   &#160;&#160; Criar o banco de dados curso.     create database curso;                Para selecionar um determinado banco de dados deve ser executar o seguinte comando:      use curso;                          2. Criando Tabelas           O comando create table é utilizado&#160; para criação de tabelas em um banco de dados.  Sintaxe:      create table nome da tabela    (     coluna&#160; tipo-do-dado&#160; [not null] [not null with default] [,    coluna&#160; tipo-do-dado&#160; [not null] [not null with default] ...]     primary key (coluna-pk)    foreign key (coluna-fk) references tabela-pai (coluna-pk-pai)    ) ;            create table: cria uma nova tabela no banco de dados em uso.       tabela: refere-se ao nome da tala a ser criada.         coluna: refere-se ao nome da coluna a ser criada. A definição das colunas de uma tabela é feita relacionando-as uma após a outra, separadas por vírgula.        tipo-do-dado : define o tipo e o tamanho da coluna definida. Os tipos de dados mais comuns são: Integer, varchar, char e boolean, long Varchar, Date, Time;           not null : define uma coluna de preenchimento obrigatório.             not null with default : define uma coluna de preenchimento obrigatório e que, no momento da inclusão de uma linha na tabela, tenha um valor pré-definido, tais como:&#160; número zero, para o tipo de dado numérico,&#160; caracter vazio, para o tipo de dado string,&#160; data corrente, para o tipo de dado date,&#160; horário corrente, para o tipo de dado time.             primary key (coluna-pk) : define a coluna que será a chave primária da tabela. No caso de mais de uma coluna ser chave primária, separá-las por vírgula.              foreign key (coluna-fk) references tabela-pai (coluna-pk-pai):&#160; define a coluna-fk, de , como chave estrangeira. A define a tabela-pai relacionada a&#160; fk e define a coluna pk, de .                     Exemplos:       Criar três tabelas: curso, módulo e disciplina apresentando as seguintes características:    Tabela Curso: deve possuir como campos o id_curso (código do curso) e o nome (nome do curso). O campo código do curso não pode ser repetido(PK) e deve ser automático e incremental.                CREATE TABLE curso (    id_curso integer&#160; NOT NULL auto_increment,    nome varchar(50) default NULL,    PRIMARY KEY (id_curso)    ) ENGINE=InnoDB&#160; DEFAULT CHARSET=latin1;                  A cláusula auto_increment permite com que o campo id_curso seja incrementado de acordo com a expansão dos registros. Por exemplo, se o primeiro registro tiver id_curso=1, o segundo registro terá id_curso=2 e assim por diante.&#160;                Tabela módulo: deve possuir como campos o id_modulo (código do modulo ) o id_curso (código do curso) e o nome (nome do modulo). O campo código do modulo não pode ser repetido (PK) e deve ser automático e incremental. Um curso deve possuir vários módulos (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)    &#160; ) ENGINE=InnoDB DEFAULT CHARSET=latin1;                          Tabela disciplina: deve possuir como campos o id_disciplina (código da disciplina ) o id_modulo (código do modulo) e o nome (nome da disciplina). O campo código da disciplina não pode ser repetido ( criar PK) e deve ser automático e incremental. Um módulo deve possuir várias disciplinas (criar FK).              CREATE TABLE disciplina (    &#160; id_disciplina integer NOT NULL auto_increment,    &#160; id_modulo integer NOT NULL,    &#160; nome integer default NULL,    PRIMARY KEY (id_disciplina),    CONSTRAINT FK_disciplina_modulo foreign key           (id_modulo) references modulo (id_modulo)    &#160; )ENGINE=InnoDB DEFAULT CHARSET=latin1;            A cláusula 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&#160; ] |     [ rename&#160; table ] |     [ add primary key ( ) ] |     [ drop primary key ( ) ] |     [ add foreign key () references ()    [ drop foreign key () references ]     }               tabela : define o nome da tabela que será alterada.              drop coluna : utilizado para remove a coluna da estrutura da tabela.&#160;              add coluna tipo-do-dado [not null] [not null with default] : acrescenta uma nova coluna.         No caso da existência de linhas nesta tabela, o valor da nova coluna será de acordo com as definições das cláusulas not null e not null with default.              rename coluna novo-nome-coluna:&#160; troca o nome da coluna.              rename table tabela:&#160; troca o nome da tabela.              add primary key (coluna-pk): define uma chave primária à uma nova coluna acrescentada na tabela.              drop primary key (coluna-pk): remove a definição de chave primária da coluna              add foreign key () references&#160;&#160; () : acrescenta uma nova chave estrangeira.&#160;              drop foreign key () references : remove a definição de chave estrangeira.&#160;                    Exemplos:                  Adicionar campos:  adicionar campo período (tipo inteiro) na tabela curso.       &#160;          ALTER TABLE&#160; curso    add periodo integer not null;                Renomear campos: renomear campo período 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 é utilizado para remover tabelas do banco de dados           Sintaxe: &#160;     &#160; drop table nome da tabela;           Exemplo:   Remover a tabela disciplina do banco de dados       DROP TABLE disciplina;                    5. Manutenção de Tabela         Exibir todas as tabelas do banco de dados       Show tables;          Exibir o status da status das tabelas       show table status;          Exibir as permissões de todos os usuários           show grants;                  ATE++       www.computacaoonline.com