Fundamentos de SQL Microsoft SQL Server 2005 Emiliano Eloi <emiliano.eloi@gmail.com>
Objetivos Ser capaz se fazer intervenções em bancos de dados que utilizem esta linguagem. Definições das bases de dados. Manipulação dos dados. Recuperação dos dados. Compreender Diagramas de entidade-relacionamento. Pensar em SQL.
Para hoje Na aula passada, vimos: Inserção Seleção, Predicados e alguns conceitos de banco de dados. Hoje veremos mais alguns predicados, inserção, atualização e exclusão. Além de ver alguns conceitos de Entidade-relacionamento.
Lista de Verificação Micro computado ligado. Teclado e mouse. Autenticação no Windows. Internet Explorer funcionando. Microsoft SQL Server Management Studio.
Diagrama de Entidade-Relacionamento O Diagrama ER é uma ferramenta para modelagem conceitual de banco de dados amplamente utilizada no projeto de banco de dados, sendo considerada praticamente um padrão para modelagem, por ser de fácil compreensão apresentar poucos conceitos: Entidades, Atributos, Ocorrência, Relacionamento e Identificador ou atributo determinante.
DER
Entidades As entidades são o conjunto de objetos de mesma natureza, com as mesmas características, com um nome genérico.  É considerada ocorrência de um entidade um objeto que pertence a ela. Cada ocorrência da entidade se apresenta como uma coleção de elementos de dados ou atributos. O  atributo determinante é aquele que identifica unicamente uma ocorrência da entidade.
DER - ENTIDADES
Atributos Representam uma propriedade de uma entidade que necessita ser armazenada, como, por exemplo, o matrícula ou o nome e um aluno que o horário o aluno irá estar em determinada sala. Um atributo pode conter apenas um valor atômico, ou seja, um valor indivisível.
DER - Atributos
Classificador nome-descritivo Os atributos devem ser enquadrados em categorias básicas de dados como: nome, valor, data, descrição, quantidade etc.  Essas categorias são conhecidas como qualificadores e são utilizadas, em geral antes do complemento a esse qualificadores.
Tabela de qualificadores Qualificadores Significado ID Código/Identificador NM Nome NR Número VL Valor QT Quantidade TX Taxa ou pércentual DS Descrição SG Sigla DT Data HR Hora
DER – DB_ESCOLINHA
Cláusula INSERT Use a sentença INSERT para inserir novos registros em uma tabela. Os valores na cláusula VALUES correspondem às colunas listadas após o nome da tabela: INSERT INTO  TBL_DISCIPLINAS (ID_DISCIPLINA,NM_NOME_DISCIPLINA) VALUES  (5,  'Educação Física')
Cláusula UPDATE Para modificar dados existentes em uma tabela,use a sentença UPDATE. Você pode atualizar um ou vários registros, pode especificar um único conjunto de novos valores na sentença ou pode gerar novos valores através de um subquerys.
Cláusula UPDATE - Usando UPDATE  TBL_PAIS SET  NM_EMAIL_PAI =  'emiliano@gmail.com' WHERE  NM_PSS_PAI =  'EMILIANOELO'
Cláusula DELETE Use a sentença DELETE para excluir registros de uma tabela. Na maioria das vezes ,você escreverá uma cláusula WHERE para identificar um ou mais registros específicos a serem excluídos.
Cláusula DELETE - Usando DELETE  FROM  TBL_ALUNOS WHERE  NM_PSS_ALUNO =  'EMILIANOELO'
Predicado Predicados são condições que você escreve na clausula WHERE (também nas cláusulas ON e HAVING) de uma sentença de SQL que determinam que registros são afetadas ou retornadas por essa sentença.  O Predicado  NM_NOME_ALUNO = 'Emiliano Eloi'  retorna somente os dados do aluno específico.
Predicado - IN Use o IN para testar um valor se encontra dentro de um conjunto dos valores. Você pode enumerar esse conjunto como uma lista de valores literais ou retornar o conjunto como o resultado de uma subquery.
Predicado – IN - Usando SELECT  NM_NOME_ALUNO FROM  TBL_ALUNOS WHERE  ID_ALUNO  IN  (1,2)
Predicado – IN – Usando  SELECT  NM_NOME_ALUNO FROM  TBL_ALUNOS WHERE  ID_ALUNO  IN  ( SELECT  ID_ALUNO   FROM  TBL_ALUNOS_PREMIADOS)
Predicado - BETWEEN   Use BETWEEN para ver se um valor se encontra em uma determinada faixa, podendo ser uma faixa numérica ou de datas.
Predicado – BETWEEN – Usando  SELECT  NM_NOME_ALUNO FROM  TBL_ALUNOS WHERE  ID_ALUNO  BETWEEN  3  AND  9
Predicado – BETWEEN – Usando  SELECT  ID_ALUNOS FROM  TBL_ALUNOS_PREMIADIS WHERE  DT_DATA_PREMIACAO  BETWEEN   '2009-05-09'  AND  '2009-05-16'
Exercícios  Organizem-se em Duplas. Os componentes dessa dupla são pai e filho. 1) Cadastre o pai na tabela TBL_PAIS. 2) Cadastre o filho na tabela TBL_ALUNOS Essa sentença deve ser um bloco que funcione em harmonia, por isso escreva utilizando tratamento de erros e com controle de transação.
Transações Uma transação é um conjunto de operações tratado como uma unidade. Ou todas as operações que compõem a unidade são concluídas ou nenhuma delas é.
Transações – Usando  Iniciar a transação BEGIN  TRANSACTION DEMOSTRACAO Tornar a transação permanente. Confirmar a transação. COMMIT  TRANSACTION DEMOSTRACAO Voltar a transação, abortar. ROLLBACK  TRANSACTION DEMOSTRACAO
Tratamento de Erro Um grupo de instruções pode ser incluído em um bloco TRY. Se ocorrer um erro no bloco TRY, o controle passará para outro grupo de instruções que está incluído em um bloco CATCH. BEGIN  TRY SELECT  NM_CEP_ALUNO   FROM  TBL_ALUNOS END  TRY BEGIN  CATCH PRINT   'Houve um erro' END  CATCH
Exemplo USE  DB_ESCOLINHA BEGIN   TRY BEGIN   TRANSACTION  INSERIR_ALUNO -- INSERIR MÃE INSERT   INTO  TBL_PAIS   ( ID_PAI ,  NM_NOME_PAI ,  NM_SOBRENOME_PAI ,     NM_PSS_PAI ,  NM_CEP_PAI ) VALUES  ( 10 , 'Tatiane' , 'Silva' ,   'TATIANESILV' , '30730-230' ) -- INSERIR ALUNO INSERT   INTO  TBL_ALUNOS   ( ID_ALUNO ,  NM_NOME_ALUNO ,  NM_SOBRENOME_ALUNO ,       NM_PSS_ALUNO ,  NM_CEP_ALUNO ) VALUES  ( 10 , 'Tatiane' , 'Silva' ,   'TATIANESILV' , '30730-230' ) COMMIT   TRANSACTION  INSERIR_ALUNO PRINT   'INSERIDO COM SUCESSO!' END   TRY BEGIN   CATCH ROLLBACK   TRANSACTION  INSERIR_ALUNO PRINT   'HOUVE UM ERRO NA INSERSAO!' PRINT   ERROR_MESSAGE () END   CATCH
Comando USE Altera o contexto de banco de dados para o banco de dados especificado. USE  DB_ESCOLINHA
Comentário Os comentários são importantes para identificar cada instrução e dar sentido na sua utilização. -- Comentário de uma linha /* Comentário de inúmeras linhas */

Fundamentos de SQL - Parte 2 de 8

  • 1.
    Fundamentos de SQLMicrosoft SQL Server 2005 Emiliano Eloi <[email protected]>
  • 2.
    Objetivos Ser capazse fazer intervenções em bancos de dados que utilizem esta linguagem. Definições das bases de dados. Manipulação dos dados. Recuperação dos dados. Compreender Diagramas de entidade-relacionamento. Pensar em SQL.
  • 3.
    Para hoje Naaula passada, vimos: Inserção Seleção, Predicados e alguns conceitos de banco de dados. Hoje veremos mais alguns predicados, inserção, atualização e exclusão. Além de ver alguns conceitos de Entidade-relacionamento.
  • 4.
    Lista de VerificaçãoMicro computado ligado. Teclado e mouse. Autenticação no Windows. Internet Explorer funcionando. Microsoft SQL Server Management Studio.
  • 5.
    Diagrama de Entidade-RelacionamentoO Diagrama ER é uma ferramenta para modelagem conceitual de banco de dados amplamente utilizada no projeto de banco de dados, sendo considerada praticamente um padrão para modelagem, por ser de fácil compreensão apresentar poucos conceitos: Entidades, Atributos, Ocorrência, Relacionamento e Identificador ou atributo determinante.
  • 6.
  • 7.
    Entidades As entidadessão o conjunto de objetos de mesma natureza, com as mesmas características, com um nome genérico. É considerada ocorrência de um entidade um objeto que pertence a ela. Cada ocorrência da entidade se apresenta como uma coleção de elementos de dados ou atributos. O atributo determinante é aquele que identifica unicamente uma ocorrência da entidade.
  • 8.
  • 9.
    Atributos Representam umapropriedade de uma entidade que necessita ser armazenada, como, por exemplo, o matrícula ou o nome e um aluno que o horário o aluno irá estar em determinada sala. Um atributo pode conter apenas um valor atômico, ou seja, um valor indivisível.
  • 10.
  • 11.
    Classificador nome-descritivo Osatributos devem ser enquadrados em categorias básicas de dados como: nome, valor, data, descrição, quantidade etc. Essas categorias são conhecidas como qualificadores e são utilizadas, em geral antes do complemento a esse qualificadores.
  • 12.
    Tabela de qualificadoresQualificadores Significado ID Código/Identificador NM Nome NR Número VL Valor QT Quantidade TX Taxa ou pércentual DS Descrição SG Sigla DT Data HR Hora
  • 13.
  • 14.
    Cláusula INSERT Usea sentença INSERT para inserir novos registros em uma tabela. Os valores na cláusula VALUES correspondem às colunas listadas após o nome da tabela: INSERT INTO TBL_DISCIPLINAS (ID_DISCIPLINA,NM_NOME_DISCIPLINA) VALUES (5, 'Educação Física')
  • 15.
    Cláusula UPDATE Paramodificar dados existentes em uma tabela,use a sentença UPDATE. Você pode atualizar um ou vários registros, pode especificar um único conjunto de novos valores na sentença ou pode gerar novos valores através de um subquerys.
  • 16.
    Cláusula UPDATE -Usando UPDATE TBL_PAIS SET NM_EMAIL_PAI = '[email protected]' WHERE NM_PSS_PAI = 'EMILIANOELO'
  • 17.
    Cláusula DELETE Usea sentença DELETE para excluir registros de uma tabela. Na maioria das vezes ,você escreverá uma cláusula WHERE para identificar um ou mais registros específicos a serem excluídos.
  • 18.
    Cláusula DELETE -Usando DELETE FROM TBL_ALUNOS WHERE NM_PSS_ALUNO = 'EMILIANOELO'
  • 19.
    Predicado Predicados sãocondições que você escreve na clausula WHERE (também nas cláusulas ON e HAVING) de uma sentença de SQL que determinam que registros são afetadas ou retornadas por essa sentença. O Predicado NM_NOME_ALUNO = 'Emiliano Eloi' retorna somente os dados do aluno específico.
  • 20.
    Predicado - INUse o IN para testar um valor se encontra dentro de um conjunto dos valores. Você pode enumerar esse conjunto como uma lista de valores literais ou retornar o conjunto como o resultado de uma subquery.
  • 21.
    Predicado – IN- Usando SELECT NM_NOME_ALUNO FROM TBL_ALUNOS WHERE ID_ALUNO IN (1,2)
  • 22.
    Predicado – IN– Usando SELECT NM_NOME_ALUNO FROM TBL_ALUNOS WHERE ID_ALUNO IN ( SELECT ID_ALUNO FROM TBL_ALUNOS_PREMIADOS)
  • 23.
    Predicado - BETWEEN Use BETWEEN para ver se um valor se encontra em uma determinada faixa, podendo ser uma faixa numérica ou de datas.
  • 24.
    Predicado – BETWEEN– Usando SELECT NM_NOME_ALUNO FROM TBL_ALUNOS WHERE ID_ALUNO BETWEEN 3 AND 9
  • 25.
    Predicado – BETWEEN– Usando SELECT ID_ALUNOS FROM TBL_ALUNOS_PREMIADIS WHERE DT_DATA_PREMIACAO BETWEEN '2009-05-09' AND '2009-05-16'
  • 26.
    Exercícios Organizem-seem Duplas. Os componentes dessa dupla são pai e filho. 1) Cadastre o pai na tabela TBL_PAIS. 2) Cadastre o filho na tabela TBL_ALUNOS Essa sentença deve ser um bloco que funcione em harmonia, por isso escreva utilizando tratamento de erros e com controle de transação.
  • 27.
    Transações Uma transaçãoé um conjunto de operações tratado como uma unidade. Ou todas as operações que compõem a unidade são concluídas ou nenhuma delas é.
  • 28.
    Transações – Usando Iniciar a transação BEGIN TRANSACTION DEMOSTRACAO Tornar a transação permanente. Confirmar a transação. COMMIT TRANSACTION DEMOSTRACAO Voltar a transação, abortar. ROLLBACK TRANSACTION DEMOSTRACAO
  • 29.
    Tratamento de ErroUm grupo de instruções pode ser incluído em um bloco TRY. Se ocorrer um erro no bloco TRY, o controle passará para outro grupo de instruções que está incluído em um bloco CATCH. BEGIN TRY SELECT NM_CEP_ALUNO FROM TBL_ALUNOS END TRY BEGIN CATCH PRINT 'Houve um erro' END CATCH
  • 30.
    Exemplo USE DB_ESCOLINHA BEGIN TRY BEGIN TRANSACTION INSERIR_ALUNO -- INSERIR MÃE INSERT INTO TBL_PAIS ( ID_PAI , NM_NOME_PAI , NM_SOBRENOME_PAI , NM_PSS_PAI , NM_CEP_PAI ) VALUES ( 10 , 'Tatiane' , 'Silva' , 'TATIANESILV' , '30730-230' ) -- INSERIR ALUNO INSERT INTO TBL_ALUNOS ( ID_ALUNO , NM_NOME_ALUNO , NM_SOBRENOME_ALUNO , NM_PSS_ALUNO , NM_CEP_ALUNO ) VALUES ( 10 , 'Tatiane' , 'Silva' , 'TATIANESILV' , '30730-230' ) COMMIT TRANSACTION INSERIR_ALUNO PRINT 'INSERIDO COM SUCESSO!' END TRY BEGIN CATCH ROLLBACK TRANSACTION INSERIR_ALUNO PRINT 'HOUVE UM ERRO NA INSERSAO!' PRINT ERROR_MESSAGE () END CATCH
  • 31.
    Comando USE Alterao contexto de banco de dados para o banco de dados especificado. USE DB_ESCOLINHA
  • 32.
    Comentário Os comentáriossão importantes para identificar cada instrução e dar sentido na sua utilização. -- Comentário de uma linha /* Comentário de inúmeras linhas */