SlideShare a Scribd company logo
1 of 15
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’

More Related Content

What's hot

Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Marco Pinheiro
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Arley Rodrigues
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesWilliam Costa
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysqlLeo Frazão
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
Aula de SQL - Básico
Aula de SQL - BásicoAula de SQL - Básico
Aula de SQL - BásicoAirton Zanon
 

What's hot (19)

Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidades
 
Sql - introdução
Sql -  introduçãoSql -  introdução
Sql - introdução
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
 
Bd acomandos
Bd acomandosBd acomandos
Bd acomandos
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Aula de SQL - Básico
Aula de SQL - BásicoAula de SQL - Básico
Aula de SQL - Básico
 

Similar to Basesdedados

introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxSaraR49
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darinTicianne Darin
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)Fabrício Catae
 
Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1fabriciodenis
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppta08008
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 

Similar to Basesdedados (20)

introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
07 sql - parte 01
07   sql - parte 0107   sql - parte 01
07 sql - parte 01
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darin
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
 
SQL DDL
SQL DDLSQL DDL
SQL DDL
 
Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 

Basesdedados

  • 2. Sistemas de Informação - Bases de Dados Structured Query Language – SQL
  • 3. 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
  • 4. Principais Componentes e Comandos 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 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 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’