SlideShare uma empresa Scribd logo
Structured Query Language (SQL)
Ambiente Simplificado de um
SGBD




                        2
Características dos SGBDs
   Natureza auto-contida de um sistema de banco de dados:
       metadados armazenados num catálogo ou dicionário de dados.
   Independência entre programas e dados:
       estrutura dos arquivos de dados armazenada            no catálogo
        separadamente dos programas de acesso.
   Abstração de dados:
       representação conceitual dos dados através de modelos de dados.
   Suporte de múltiplas visões de dados:
       diferentes perspectivas ou visões de usuários.
   Suporte a transações:
       compartilhamento de dados e processamento multiusuário.


                                                          3
Esquemas, Instâncias e Estado do BD
   Esquema: descrição do banco de dados. É definido durante o projeto de
    banco de dados e não se espera que seja alterado freqüentemente.
   Estado ou Instância: composto pelos dados do banco de dados em um
    determinado momento.




                                                          4
Arquitetura de Três-Esquemas




                      5
Arquitetura de Três-Esquemas
   Tem por objetivo separar o usuário da aplicação do
    banco de dados físico.
   É organizada em três níveis:
       Nível Interno: descreve a estrutura de armazenamento
        físico do banco de dados.
       Nível Conceitual: descreve a estrutura de todo o banco de
        dados para a comunidade de usuários.
       Nível Externo ou Visão: cada esquema externo descreve a
        parte do banco de dados que um dado grupo de usuários
        tem interesse e oculta o restante do banco de dados
        desse grupo.
   A maioria dos SGBDs não separa completamente os
    três níveis, mas suporta essa arquitetura de alguma
    forma.                                   6
Independência de Dados
   Consiste da capacidade de mudar o esquema em
    um nível do sistema de banco de dados sem que
    ocorram alterações do esquema no próximo nível
    mais alto.
   Independência lógica de dados: é a capacidade de
    alterar o esquema conceitual sem mudar o
    esquema externo ou os programas.
   Independência física de dados: é a capacidade de
    alterar o esquema interno sem mudar o esquema
    conceitual.
                                         7
Linguagens de SGBD
   Durante o desenvolvimento do sistema R, pesquisadores da IBM
    desenvolveram a linguagem SEQUEL, primeira linguagem de acesso
    para Sistemas Gerenciadores de Banco de Dados Relacionais.
   ISO e ANSI lançou em 1986 a primeira versão do padrão da
    linguagem SQL, o SQL-86.
   A linguagem passou por aperfeiçoamentos em 1989 e, em 1992, foi
    lançada a SQL-92 ou SQL2.
   Um novo padrão, chamado de SQL-99 ou SQL3 foi lançado no ano de
    2000. Foi o primeiro padrão a estender a linguagem para permitir a
    utilização de tipos de dados complexos e a incorporar características
    da orientação a objetos.
   Após uma grande revisão do padrão SQL3 foi lançada a SQL:2003.
    Nesta verão foi adicionada uma nova parte ligada ao tratamento de
    XML.

                                                           8
Linguagens de SGBD
   Linguagem de Definição de Dados (DDL):
       usada para especificar o esquema conceitual.
   Linguagem de Definição de Armazenamento (SDL):
       usada para especificar o esquema interno, mas na maioria dos
        SGBDs a DDL é usada para definir este esquema.
   Linguagem de Definição de Visões (VDL):
       usada para especificar as visões dos usuários e os seus
        mapeamentos para o esquema conceitual, mas na maioria dos
        SGBDs a DDL é usada para definir ambos os esquemas, o
        conceitual e o externo.
   Linguagem de Manipulação de Dados (DML):
       usada para manipular os dados em um banco de dados. As
        manipulações típicas são a recuperação, inserção, remoção e
        modificação dos dados.
                                                       9
Tipos de Dados

                 (4 GB)
                          (4 GB)




                             10
Modelo Utilizado




                   11
Modelo Utilizado
Pessoa        (CPF, Nome, Sexo)

Piloto (CPF, Cart_Trab)
       CPF Referencia Pessoa

Passageiro(CPF, Dieta)
      CPF Referencia Pessoa

Voo(Numero, Data, P_CPF)
      CPF Referencia Piloto

Reserva(V_Numero, P_CPF)
      V_Numero Referencia Voo
      P_CPF Referencia Passageiro

Telefone(Numero, P_CPF)
      CPF Referencia Pessoa
                                    12
Linguagem de Definição de Dados (DDL)

   Criação de Tabelas:
    CREATE   TABLE NOME_TABELA(
     COL1     TIPO_COLUNA [NOT NULL],
     COL1     TIPO_COLUNA [NOT NULL],
     COL1     TIPO_COLUNA [NOT NULL]
     )




                                        13
Linguagem de Definição de Dados (DDL)

   Na criação de tabelas, é possível especificar vários
    tipos de restrições:
       Chave Primária: PRIMARY KEY ;
       Chave Estrangeira: FOREIGN KEY;
       Chave Alternativa (ou alternada): UNIQUE;
       Restrição de Domínio: CHECK.


   Pode-se atribuir        nomes      às    restrições   de
    integridade:
       CONSTRAINT NOME_RESTRIÇÃO TIPO RESTRIÇÃO.
                                                    14
Linguagem de Definição de Dados (DDL)

CREATE TABLE Pessoa(CPF         VARCHAR(11)   NOT NULL,
              Nome     VARCHAR(30)  NOT NULL UNIQUE,
              Sexo     VARCHAR(1)   NOT NULL,
              PRIMARY KEY (CPF));




CREATE TABLE Piloto(CPF            VARCHAR(11) NOT
NULL,
              Cart_Trab VARCHAR(13) NOT NULL UNIQUE ,
              PRIMARY KEY (CPF),
              FOREIGN KEY (CPF)
              REFERENCES Pessoa (CPF));

                                           15
Linguagem de Definição de Dados (DDL)
CREATE TABLE Passageiro(CPF      VARCHAR(11)          NOT NULL
               CONSTRAINT PK_PASSAGEIRO PRIMARY KEY
               CONSTRAINT FK_PESSOA REFERENCES Pessoa (CPF),
                     Dieta VARCHAR(1) CHECK (Dieta IN(‘S’, ‘N’)));




CREATE TABLE Voo(Numero       Numeric         NOT NULL
              CONSTRAINT PK_VOO PRIMARY KEY,
              Data            Date        NOT NULL,
              TIPO            VARCHAR2(15)     DEFAULT     ‘NACIONAL’,
              P_CPF           VARCHAR(11)      NOT NULL
              CONSTRAINT FK_PILOTO           REFERENCES Piloto (CPF));
                                                          16
Linguagem de Definição de Dados (DDL)
    Deleção de item referenciado:
... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
    REFERENCES Piloto (CPF)
    ON DELETE RESTRICT ); -- impede a exclusão (default)


... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
    REFERENCES Piloto (CPF)
    ON DELETE SET NULL); -- transforma o valor em nulo


... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
    REFERENCES Piloto (CPF)
    ON DELETE CASCADE ); -- exclui a linha da tabela
                                                         17
Linguagem de Definição de Dados (DDL)
   Criação de uma tabela com linhas de outra:

CREATE TABLE Pessoa_Nova
AS SELECT CPF, Nome, Sexo
FROM Pessoa;




                                           18
Linguagem de Definição de Dados (DDL)
CREATE VIEW <nome-de-visão> [ (lista-de-colunas) ]
   AS <comando-de-seleção>



CREATE VIEW Empregados_Sede
   AS SELECT (Nome, Endereco, Sexo, Data-nasc)
       FROM EMPREGADO




                                                     19
Linguagem de Definição de Dados (DDL)

   Alteração de Tabelas:
       Incluir novas colunas em uma tabela;
       Excluir colunas existentes em uma tabela;
       Adicionar a definição de uma restrição em uma tabela;
       Excluir a definição de uma restrição existente em uma
        tabela;
       Modificar uma coluna.




                                                 20
Linguagem de Definição de Dados (DDL)
CREATE TABLE Reserva(V_Numero Numeric      NOT NULL,
                P_CPF       VARCHAR(11)    NOT NULL);




CREATE TABLE Telefone(Numero        VARCHAR(15)         NOT NULL,
                 P_CPF    VARCHAR(11) NOT NULL,

                 PRIMARY KEY (Numero, P_CPF),
                 FOREIGN KEY (P_CPF)
                 REFERENCES Pessoa(CPF));




                                                  21
Linguagem de Definição de Dados (DDL)
ALTER TABLE Telefone
      ADD COLUMN TIPO VARCHAR2(5) DEFAULT ‘FIXO’ NOT NULL;

ALTER TABLE Telefone
     DROP COLUMN Tipo;

ALTER TABLE TELEFONE
     ADD CONSTRAINT TIPO_TELEFONE
     CHECK (TIPO IN(‘Fixo’, ‘Movel’));

ALTER TABLE TELEFONE
     DROP CONSTRAINT TIPO_TELEFONE;

ALTER TABLE TELEFONE
          MODIFY (TIPO VARCHAR2(5));
-- para diminuir tamanho a coluna precisa estar vazia.
                                                         22
Linguagem de Definição de Dados (DDL)
ALTER TABLE Reserva
      ADD CONSTRAINT PK_RESERVA PRIMARY KEY (V_Numero, P_CPF);


ALTER TABLE Reserva
      ADD CONSTRAINT FK_RESERVA_VOO FOREIGN KEY (V_Numero)
        REFERENCES Voo (Numero);


ALTER TABLE Reserva
     ADD CONSTRAINT FK_RESERVA_PASSAGEIRO FOREIGN KEY (P_CPF)
        REFERENCES Passageiro (CPF);

ALTER TABLE Reserva ENABLE CONSTRAINT
FK_RESERVA_PASSAGEIRO;

ALTER TABLE Reserva DISABLE CONSTRAINT
FK_RESERVA_PASSAGEIRO;
                                                   23
Linguagem de Definição de Dados (DDL)

   Renomear Tabela:
       Não é um comando SQL:2003.

        RENAME Pessoa TO Pessoa_Nova; -- Oracle

        RENAME TABLE Pessoa TO Pessoa_Nova;




   Deletar Tabela (estrutura):

        DROP TABLE Pessoa;


                                                  24
FIM

Mais conteúdo relacionado

Mais procurados

Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
julianaveregue
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
julianaveregue
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
Roberto Grande
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
elliando dias
 

Mais procurados (19)

Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
Aula2 - SQL
Aula2 - SQLAula2 - SQL
Aula2 - SQL
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
Sql - introdução
Sql -  introduçãoSql -  introdução
Sql - introdução
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Boa apostila sql
Boa  apostila sqlBoa  apostila sql
Boa apostila sql
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
 

Semelhante a SQL DDL

Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
Ed W. Jr
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
Gilson Figueredo
 

Semelhante a SQL DDL (20)

Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
SQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfSQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdf
 
Bd08
Bd08Bd08
Bd08
 
Fundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisFundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados Relacionais
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Bd ii material
Bd ii   materialBd ii   material
Bd ii material
 
1 semestre-aula8-introducao-dd le-dml
1 semestre-aula8-introducao-dd le-dml1 semestre-aula8-introducao-dd le-dml
1 semestre-aula8-introducao-dd le-dml
 
Comandos DML
Comandos DMLComandos DML
Comandos DML
 
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISL
 
Brevíssima introdução a bancos de dados relacionais
Brevíssima introdução a bancos de dados relacionaisBrevíssima introdução a bancos de dados relacionais
Brevíssima introdução a bancos de dados relacionais
 
Oracle 11g - Fundamentos
Oracle 11g - FundamentosOracle 11g - Fundamentos
Oracle 11g - Fundamentos
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
Sql01
Sql01Sql01
Sql01
 

SQL DDL

  • 3. Características dos SGBDs  Natureza auto-contida de um sistema de banco de dados:  metadados armazenados num catálogo ou dicionário de dados.  Independência entre programas e dados:  estrutura dos arquivos de dados armazenada no catálogo separadamente dos programas de acesso.  Abstração de dados:  representação conceitual dos dados através de modelos de dados.  Suporte de múltiplas visões de dados:  diferentes perspectivas ou visões de usuários.  Suporte a transações:  compartilhamento de dados e processamento multiusuário. 3
  • 4. Esquemas, Instâncias e Estado do BD  Esquema: descrição do banco de dados. É definido durante o projeto de banco de dados e não se espera que seja alterado freqüentemente.  Estado ou Instância: composto pelos dados do banco de dados em um determinado momento. 4
  • 6. Arquitetura de Três-Esquemas  Tem por objetivo separar o usuário da aplicação do banco de dados físico.  É organizada em três níveis:  Nível Interno: descreve a estrutura de armazenamento físico do banco de dados.  Nível Conceitual: descreve a estrutura de todo o banco de dados para a comunidade de usuários.  Nível Externo ou Visão: cada esquema externo descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo.  A maioria dos SGBDs não separa completamente os três níveis, mas suporta essa arquitetura de alguma forma. 6
  • 7. Independência de Dados  Consiste da capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações do esquema no próximo nível mais alto.  Independência lógica de dados: é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas.  Independência física de dados: é a capacidade de alterar o esquema interno sem mudar o esquema conceitual. 7
  • 8. Linguagens de SGBD  Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas Gerenciadores de Banco de Dados Relacionais.  ISO e ANSI lançou em 1986 a primeira versão do padrão da linguagem SQL, o SQL-86.  A linguagem passou por aperfeiçoamentos em 1989 e, em 1992, foi lançada a SQL-92 ou SQL2.  Um novo padrão, chamado de SQL-99 ou SQL3 foi lançado no ano de 2000. Foi o primeiro padrão a estender a linguagem para permitir a utilização de tipos de dados complexos e a incorporar características da orientação a objetos.  Após uma grande revisão do padrão SQL3 foi lançada a SQL:2003. Nesta verão foi adicionada uma nova parte ligada ao tratamento de XML. 8
  • 9. Linguagens de SGBD  Linguagem de Definição de Dados (DDL):  usada para especificar o esquema conceitual.  Linguagem de Definição de Armazenamento (SDL):  usada para especificar o esquema interno, mas na maioria dos SGBDs a DDL é usada para definir este esquema.  Linguagem de Definição de Visões (VDL):  usada para especificar as visões dos usuários e os seus mapeamentos para o esquema conceitual, mas na maioria dos SGBDs a DDL é usada para definir ambos os esquemas, o conceitual e o externo.  Linguagem de Manipulação de Dados (DML):  usada para manipular os dados em um banco de dados. As manipulações típicas são a recuperação, inserção, remoção e modificação dos dados. 9
  • 10. Tipos de Dados (4 GB) (4 GB) 10
  • 12. Modelo Utilizado Pessoa (CPF, Nome, Sexo) Piloto (CPF, Cart_Trab) CPF Referencia Pessoa Passageiro(CPF, Dieta) CPF Referencia Pessoa Voo(Numero, Data, P_CPF) CPF Referencia Piloto Reserva(V_Numero, P_CPF) V_Numero Referencia Voo P_CPF Referencia Passageiro Telefone(Numero, P_CPF) CPF Referencia Pessoa 12
  • 13. Linguagem de Definição de Dados (DDL)  Criação de Tabelas: CREATE TABLE NOME_TABELA( COL1 TIPO_COLUNA [NOT NULL], COL1 TIPO_COLUNA [NOT NULL], COL1 TIPO_COLUNA [NOT NULL] ) 13
  • 14. Linguagem de Definição de Dados (DDL)  Na criação de tabelas, é possível especificar vários tipos de restrições:  Chave Primária: PRIMARY KEY ;  Chave Estrangeira: FOREIGN KEY;  Chave Alternativa (ou alternada): UNIQUE;  Restrição de Domínio: CHECK.  Pode-se atribuir nomes às restrições de integridade:  CONSTRAINT NOME_RESTRIÇÃO TIPO RESTRIÇÃO. 14
  • 15. Linguagem de Definição de Dados (DDL) CREATE TABLE Pessoa(CPF VARCHAR(11) NOT NULL, Nome VARCHAR(30) NOT NULL UNIQUE, Sexo VARCHAR(1) NOT NULL, PRIMARY KEY (CPF)); CREATE TABLE Piloto(CPF VARCHAR(11) NOT NULL, Cart_Trab VARCHAR(13) NOT NULL UNIQUE , PRIMARY KEY (CPF), FOREIGN KEY (CPF) REFERENCES Pessoa (CPF)); 15
  • 16. Linguagem de Definição de Dados (DDL) CREATE TABLE Passageiro(CPF VARCHAR(11) NOT NULL CONSTRAINT PK_PASSAGEIRO PRIMARY KEY CONSTRAINT FK_PESSOA REFERENCES Pessoa (CPF), Dieta VARCHAR(1) CHECK (Dieta IN(‘S’, ‘N’))); CREATE TABLE Voo(Numero Numeric NOT NULL CONSTRAINT PK_VOO PRIMARY KEY, Data Date NOT NULL, TIPO VARCHAR2(15) DEFAULT ‘NACIONAL’, P_CPF VARCHAR(11) NOT NULL CONSTRAINT FK_PILOTO REFERENCES Piloto (CPF)); 16
  • 17. Linguagem de Definição de Dados (DDL)  Deleção de item referenciado: ... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE RESTRICT ); -- impede a exclusão (default) ... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE SET NULL); -- transforma o valor em nulo ... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF) REFERENCES Piloto (CPF) ON DELETE CASCADE ); -- exclui a linha da tabela 17
  • 18. Linguagem de Definição de Dados (DDL)  Criação de uma tabela com linhas de outra: CREATE TABLE Pessoa_Nova AS SELECT CPF, Nome, Sexo FROM Pessoa; 18
  • 19. Linguagem de Definição de Dados (DDL) CREATE VIEW <nome-de-visão> [ (lista-de-colunas) ] AS <comando-de-seleção> CREATE VIEW Empregados_Sede AS SELECT (Nome, Endereco, Sexo, Data-nasc) FROM EMPREGADO 19
  • 20. Linguagem de Definição de Dados (DDL)  Alteração de Tabelas:  Incluir novas colunas em uma tabela;  Excluir colunas existentes em uma tabela;  Adicionar a definição de uma restrição em uma tabela;  Excluir a definição de uma restrição existente em uma tabela;  Modificar uma coluna. 20
  • 21. Linguagem de Definição de Dados (DDL) CREATE TABLE Reserva(V_Numero Numeric NOT NULL, P_CPF VARCHAR(11) NOT NULL); CREATE TABLE Telefone(Numero VARCHAR(15) NOT NULL, P_CPF VARCHAR(11) NOT NULL, PRIMARY KEY (Numero, P_CPF), FOREIGN KEY (P_CPF) REFERENCES Pessoa(CPF)); 21
  • 22. Linguagem de Definição de Dados (DDL) ALTER TABLE Telefone ADD COLUMN TIPO VARCHAR2(5) DEFAULT ‘FIXO’ NOT NULL; ALTER TABLE Telefone DROP COLUMN Tipo; ALTER TABLE TELEFONE ADD CONSTRAINT TIPO_TELEFONE CHECK (TIPO IN(‘Fixo’, ‘Movel’)); ALTER TABLE TELEFONE DROP CONSTRAINT TIPO_TELEFONE; ALTER TABLE TELEFONE MODIFY (TIPO VARCHAR2(5)); -- para diminuir tamanho a coluna precisa estar vazia. 22
  • 23. Linguagem de Definição de Dados (DDL) ALTER TABLE Reserva ADD CONSTRAINT PK_RESERVA PRIMARY KEY (V_Numero, P_CPF); ALTER TABLE Reserva ADD CONSTRAINT FK_RESERVA_VOO FOREIGN KEY (V_Numero) REFERENCES Voo (Numero); ALTER TABLE Reserva ADD CONSTRAINT FK_RESERVA_PASSAGEIRO FOREIGN KEY (P_CPF) REFERENCES Passageiro (CPF); ALTER TABLE Reserva ENABLE CONSTRAINT FK_RESERVA_PASSAGEIRO; ALTER TABLE Reserva DISABLE CONSTRAINT FK_RESERVA_PASSAGEIRO; 23
  • 24. Linguagem de Definição de Dados (DDL)  Renomear Tabela:  Não é um comando SQL:2003. RENAME Pessoa TO Pessoa_Nova; -- Oracle RENAME TABLE Pessoa TO Pessoa_Nova;  Deletar Tabela (estrutura): DROP TABLE Pessoa; 24
  • 25. FIM