Agostinho Sousa Pinto
                        1
Sistemas de Informação - Bases de Dados




   Structured Query Language – SQL
SQL (Structured Query Language)

   Linguagem comercial para BD relacional
    ◦ padrão ISO desde a década de 80
       SQL-1 (86); SQL-2 (92); SQL-3 (99)


   Funcionalidades principais
    ◦ definição (DDL- Data Definition Language)
     Alterações na estrutura da base são feitas através de instruções SQL
     DDL

    ◦ manipulação      (DML - Data Manipulation Language)
     Modificações na base de dados são feitas através de um conjunto
     de instruções SQL DML, as quais não podem alterar sua estrutura
Principais Componentes e Comandos
                    Create table
                    Drop table
                    Alter table
                    Constraint
             DDL    Grant
                    Revoke



     SQL
                    Select
                    Insert
                    Delete
                    Update
            DML     Commit
                    Rollback
SQL – DDL

 SQL DDL permite, por exemplo:
   • definir e criar tabelas
   • remover e alterar a definição/esquema de uma
     tabela
   • definir o domínio de valores associados a cada
     atributo
   • criar uma tabela virtual (visão)
   • estabelecer regras de integridade
   • criar o conjunto de índices para manutenção de cada
     tabela
   • estabelecer mecanismos de segurança e controle
     sobre cada tabela
SQL – DDL

 A DDL oferece três instruções para definição do
  esquema da base de dados:

   Create Table
     define a estrutura de uma tabela, suas restrições de
     integridade e cria a tabela vazia

   Drop Table
     elimina a tabela da base de dados

   Alter Table
     permite modificar a definição/esquema de uma
     tabela
Criar Tabelas
 Create Table EMPREGADOS(
   CodEmp    CHAR(3)          NOT NULL,
   Nome      VARCHAR(50)      NOT NULL,
   Depto     CHAR(3)          NOT NULL,
   Salario   REAL             DEFAULT 0.00,
   PRIMARY KEY(CodEmp)
   FOREIGN KEY(Depto) REFERENCES DEPARTAMENTOS(CodD))



                              Não garantida a integridade
                              referencial. Se apagar um
                              valor no departamento fica um
                              erro
ON DELETE e ON UPDATE
Create Table EMPREGADOS(
    CodEmp    CHAR(3)          NOT NULL,
    Nome      VARCHAR(50)      NOT NULL,
    Depto     CHAR(3)          NOT NULL,
    Salario   REAL             DEFAULT 0.00,
    PRIMARY KEY CodEmp),
    FOREIGN KEY (Depto) REFERENCES DEPARTAMENTOS(CodD)
    ON DELETE SET NULL ON UPDATE CASCADE
)
                               Garantida a integridade
                               referencial. Se apagar um
                               valor no Departamento fica
                               um NULL
Valores para ON DELETE e ON UPDATE
• CASCADE
   • Qualquer alteração na chave primária é propagada para as
     chaves estrangeiras que a referenciam
• SET NULL
   • Especifica que as chaves estrangeiras que referenciam a linha
     excluída devem receber o valor NULL
• SET DEFAULT
   • Especifica que as chaves estrangeiras que referenciam a linha
     excluída devem receber o seu valor “por defeito” (previamente
     definido)
• RESTRICT
   • Especifica que uma linha não pode ser excluída caso existam
     chaves estrangeiras que a referenciem
Como alterar Tabelas
ALTER TABLE serve para modificar a definição original da
tabela.

    Alter Table Empregado
      Add nome VARCHAR(30)

    Alter Table Empregado
      Drop COLUMN Est_Civil

    Alter Table Cliente
      Drop PRIMARY KEY

    Alter Table Filho
      Add FOREIGN KEY (numero) REFERENCES Ambulatórios
SQL – CONSTRAINTS (Restrição sobre os valores do domínio)
A tendência em SQL é tratar de forma uniforme todas restrições de integridade
     chave primária, chave única, chave estrangeira, por isso usa-se o Constraints
create table EMBARQ
(     CODFORNEC     CHAR(4)         not null,
      CODPECA       CHAR(4)         not null,
      QUANT         INTEGER         not null,
      constraint PK_EMBARQ          primary key(CODFORNEC,CODPECA))

alter table EMBARQ
  add constraint FK_EMBARQ_PECAS
      foreign key (CODPECA) references PECAS (CODPECA)

alter table EMBARQ
  add constraint FK_EMBARQ_FORNEC
      foreign key (CODFORNEC) references FORNEC (CODFORNEC)
SQL – DML


   Define operações de manipulação de dados
    ◦   insert
    ◦   update
    ◦   delete
    ◦   select

   Instruções declarativas
    ◦ manipulação de conjuntos
    ◦ especifica-se o que fazer e não como fazer
Inserção de Dados


   Exemplos

    insert into Funcionario
    (Numero, nome, idade, categoria, NIF, cidade)
     values
    (4,‘Carlos’,28,’Engenheiro’,150908765,‘Porto’);


    insert into Funcionario
     values
    (4,‘Carlos’,28,’Engenheiro’,150908765, ‘Porto’);
Alteração de Dados


   Exemplos

       update Funcionario
       set cidade = ‘Braga’

       update Funcionario
       set idade = idade + 1, cidade = ‘Braga’
       where numero = 2
Eliminação de Dados


   Exemplos

       delete from funcionario

       delete from funcionario
       where categoria = ‘aprendiz’
                 or cidade < > ‘Gaia’

Basesdedados

  • 1.
  • 2.
    Sistemas de Informação- Bases de Dados Structured Query Language – SQL
  • 3.
    SQL (Structured QueryLanguage)  Linguagem comercial para BD relacional ◦ padrão ISO desde a década de 80  SQL-1 (86); SQL-2 (92); SQL-3 (99)  Funcionalidades principais ◦ definição (DDL- Data Definition Language) Alterações na estrutura da base são feitas através de instruções SQL DDL ◦ manipulação (DML - Data Manipulation Language) Modificações na base de dados são feitas através de um conjunto de instruções SQL DML, as quais não podem alterar sua estrutura
  • 4.
    Principais Componentes eComandos Create table Drop table Alter table Constraint DDL Grant Revoke SQL Select Insert Delete Update DML Commit Rollback
  • 5.
    SQL – DDL SQL DDL permite, por exemplo: • definir e criar tabelas • remover e alterar a definição/esquema de uma tabela • definir o domínio de valores associados a cada atributo • criar uma tabela virtual (visão) • estabelecer regras de integridade • criar o conjunto de índices para manutenção de cada tabela • estabelecer mecanismos de segurança e controle sobre cada tabela
  • 6.
    SQL – DDL A DDL oferece três instruções para definição do esquema da base de dados: Create Table define a estrutura de uma tabela, suas restrições de integridade e cria a tabela vazia Drop Table elimina a tabela da base de dados Alter Table permite modificar a definição/esquema de uma tabela
  • 7.
    Criar Tabelas CreateTable EMPREGADOS( CodEmp CHAR(3) NOT NULL, Nome VARCHAR(50) NOT NULL, Depto CHAR(3) NOT NULL, Salario REAL DEFAULT 0.00, PRIMARY KEY(CodEmp) FOREIGN KEY(Depto) REFERENCES DEPARTAMENTOS(CodD)) Não garantida a integridade referencial. Se apagar um valor no departamento fica um erro
  • 8.
    ON DELETE eON UPDATE Create Table EMPREGADOS( CodEmp CHAR(3) NOT NULL, Nome VARCHAR(50) NOT NULL, Depto CHAR(3) NOT NULL, Salario REAL DEFAULT 0.00, PRIMARY KEY CodEmp), FOREIGN KEY (Depto) REFERENCES DEPARTAMENTOS(CodD) ON DELETE SET NULL ON UPDATE CASCADE ) Garantida a integridade referencial. Se apagar um valor no Departamento fica um NULL
  • 9.
    Valores para ONDELETE e ON UPDATE • CASCADE • Qualquer alteração na chave primária é propagada para as chaves estrangeiras que a referenciam • SET NULL • Especifica que as chaves estrangeiras que referenciam a linha excluída devem receber o valor NULL • SET DEFAULT • Especifica que as chaves estrangeiras que referenciam a linha excluída devem receber o seu valor “por defeito” (previamente definido) • RESTRICT • Especifica que uma linha não pode ser excluída caso existam chaves estrangeiras que a referenciem
  • 10.
    Como alterar Tabelas ALTERTABLE serve para modificar a definição original da tabela. Alter Table Empregado Add nome VARCHAR(30) Alter Table Empregado Drop COLUMN Est_Civil Alter Table Cliente Drop PRIMARY KEY Alter Table Filho Add FOREIGN KEY (numero) REFERENCES Ambulatórios
  • 11.
    SQL – CONSTRAINTS(Restrição sobre os valores do domínio) A tendência em SQL é tratar de forma uniforme todas restrições de integridade chave primária, chave única, chave estrangeira, por isso usa-se o Constraints create table EMBARQ ( CODFORNEC CHAR(4) not null, CODPECA CHAR(4) not null, QUANT INTEGER not null, constraint PK_EMBARQ primary key(CODFORNEC,CODPECA)) alter table EMBARQ add constraint FK_EMBARQ_PECAS foreign key (CODPECA) references PECAS (CODPECA) alter table EMBARQ add constraint FK_EMBARQ_FORNEC foreign key (CODFORNEC) references FORNEC (CODFORNEC)
  • 12.
    SQL – DML  Define operações de manipulação de dados ◦ insert ◦ update ◦ delete ◦ select  Instruções declarativas ◦ manipulação de conjuntos ◦ especifica-se o que fazer e não como fazer
  • 13.
    Inserção de Dados  Exemplos insert into Funcionario (Numero, nome, idade, categoria, NIF, cidade) values (4,‘Carlos’,28,’Engenheiro’,150908765,‘Porto’); insert into Funcionario values (4,‘Carlos’,28,’Engenheiro’,150908765, ‘Porto’);
  • 14.
    Alteração de Dados  Exemplos update Funcionario set cidade = ‘Braga’ update Funcionario set idade = idade + 1, cidade = ‘Braga’ where numero = 2
  • 15.
    Eliminação de Dados  Exemplos delete from funcionario delete from funcionario where categoria = ‘aprendiz’ or cidade < > ‘Gaia’