Fundamentos de SQL Microsoft SQL Server 2005 Curso de curta duração Emiliano Eloi <emilianoeloi@gmail.com>
Objetivos Ser capaz se fazer intervenções nos dados de bancos de dados que utilizem esta linguagem. Definições das bases de dados. Manipulação dos dados. Recuperação dos dados. Compreender Diagrama de Entidade-Relacionamento (DER). Pensar em SQL.
Lista de Verificação Micro computado ligado. Teclado e mouse. Autenticação no Windows. Internet Explorer funcionando. Microsoft SQL Server Management Studio.
Para estudar http://msdn.microsoft.com/pt-br/express/aa718378.aspx
Conteúdo Definição de dados CREATE TABLE, ALTER TABLE Manipulação de dados INSERT, UPDATE, DELETE Transações COMMIT, ROLLBACK Funções SUBSTRING, GETDATE  Recuperação de dados SELECT, JOIN Conceitos básicos Banco de Dados, Entidade-Relacionamento e SGDB.
Cláusula SELECT Cada expressão da cláusula SELECT se transforma em uma coluna no conjunto de resultados retornados pela consulta. As expressões podem ser nomes simples de colunas, podem gerar um novo valor usando um valor de coluna como entrada ou podem não ter nada haver com nenhuma coluna. A cláusula SELECT especifica os elementos de dados individuais que você quer que a sentença retorne.
Cláusula SELECT - Usando SELECT  ID_ALUNO ,     NM_NOME_ALUNO ,     NM_EMAIL_ALUNO ,     NM_PSS_ALUNO
Cláusula FROM Use a cláusula FROM para especificar a fonte dos dados que você quer recuperar. O caso mais simples é se especificar uma única tabela ou visualização na cláusula FROM de uma sentença SELECT
Cláusula FROM - Usando SELECT  ID_ALUNO ,     NM_NOME_ALUNO ,     NM_EMAIL_ALUNO ,     NM_PSS_ALUNO FROM  TBL_ALUNOS
Cláusula WHERE Use a cláusula WHERE para restringir os resultados da query a somente aquelas linhas de interesse. Raramente você ira querer todas as linhas de uma tabela. Na maioria das vezes você querer  as linhas que atendam a um critério especifico.
Cláusula WHERE - Usando SELECT  ID_ALUNO ,     NM_NOME_ALUNO ,     NM_EMAIL_ALUNO ,     NM_PSS_ALUNO FROM  TBL_ALUNOS WHERE  NM_PSS_ALUNO  =   'BRIGIDAROES'
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 */
Networking Vamos fazer negócio?
Exercícios A tabela de origem dos dados é especificada na cláusula SELECT? Justifique. É natural precisar retornar 100% dos dados de uma tabela? Busque seus dados da Base de dados. Base de dados: DB_ESCOLINHA Tabela: TBL_ALUNOS Colunas: ID_ALUNO, NM_NOME_ALUNO
Predicado Predicados são condições que se 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 - LIKE Os predicados LIKE e NOT LIKE lhe oferecem recursos básicos de reconhecimento de padrões. Você pode usar os caracteres por cento (%) e sublinhado (_) para o reconhecimento de qualquer numero de caracteres ou qualquer caractere específico, respectivamente. Para encontrar todos os pais que contêm no seu nome 'Silva', especifique:
Predicado – LIKE – Usando  SELECT  ID_PAI ,     NM_NOME_PAI ,   NM_EMAIL_PAI ,   NM_PSS_PAI FROM  TBL_PAIS WHERE  NM_SOBRENOME_PAI  LIKE   '%Silva%‘ Maria Aparecida da  Silva  Duarte Tatiane  Silva  Barbosa Silva  e Souza   Amanda Almeida
Predicado – LIKE – Usando  Para encontrar todas os pais que possui o primeiro nome 'Maria', especifique: SELECT  ID_PAI,    NM_NOME_PAI,   NM_EMAIL_PAI,   NM_PSS_PAI FROM  TBL_PAIS WHERE  NM_NOME_PAI LIKE  ‘Maria%' Maria  Aparecida da Silva Duarte Tatiane Maria Barbosa Silva e Souza   Amanda Almeida
Predicado – LIKE – Usando  Para encontrar todos os pais que possui o '230' nos três últimos dígitos do CEP, especifique: SELECT  ID_PAI,    NM_NOME_PAI,   NM_EMAIL_PAI,   NM_PSS_PAI FROM  TBL_PAIS WHERE  NM_CEP_PAI LIKE  '%230‘ 30730230 30730235 30630230   30750444
Predicado – LIKE – Usando  Ou ainda, use: SELECT  ID_PAI,    NM_NOME_PAI,   NM_EMAIL_PAI,   NM_PSS_PAI FROM  TBL_PAIS WHERE  NM_CEP_PAI LIKE  ‘______230‘ 30730230 30730235 30630230   30750444
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
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')
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
SEQUEL História do SQL começa em 1970 com a publicação por  E. F. Codd , no ACM Journal, de um artigo intitulado “A RelationalModel of Data for Large Shared Data Banks”. O modelo proposto por Codd é hoje considerado a base de trabalho para qualquer Sistema de Gestão de Base de Dados Relacional (SGBDR). A primeira implementação da linguagem SEQUEL foi realizada pela  IBM  e tinha por objetivo a implementação do modelo de Codd. A evolução desta linguagem veio a dar origem ao SQL. A primeira implementação comercial de SQL foi realizada pela Relational Software, Inc., hoje conhecida por  Oracle Corporation . Nos dias de hoje, a linguagem SQL é considerada um standard dos Sistemas de Gestão de Base de Dados Relacionais (SGBDR); por isso, todos os fabricantes a integram nos seu produtos.
O dialeto O Transact-SQL é central para usar o SQL Server. Todos os aplicativos que se comunicam com uma instância do SQL Server o fazem enviando instruções Transact-SQL ao servidor, independentemente da interface do usuário do aplicativo.
Banco de Dados Os bancos de dados são ferramentas desenvolvidas com a finalidade de ajudar a organizar e recuperar dados de forma eficiente. Seu conceito não está diretamente vinculado a informática ou a qualquer meio eletrônico. Desse modo pode-se dizer que uma agenda, uma lista telefônica ou até uma enciclopédia são um banco de dados, pois a informação armazenada nesses meios está organizado e pode ser facilmente recuperada. utilizando essa mesma linha de raciocínio, não se poderia classificar um romance, por exemplo, como um banco de dados, pois a informação contida em uma romance, como as falas dos personagens, não pode ser facilmente recuperadas e não está armazenada de forma organizada.

Fundamentos de SQL - Parte 1 de 8

  • 1.
    Fundamentos de SQLMicrosoft SQL Server 2005 Curso de curta duração Emiliano Eloi <emilianoeloi@gmail.com>
  • 2.
    Objetivos Ser capazse fazer intervenções nos dados de bancos de dados que utilizem esta linguagem. Definições das bases de dados. Manipulação dos dados. Recuperação dos dados. Compreender Diagrama de Entidade-Relacionamento (DER). Pensar em SQL.
  • 3.
    Lista de VerificaçãoMicro computado ligado. Teclado e mouse. Autenticação no Windows. Internet Explorer funcionando. Microsoft SQL Server Management Studio.
  • 4.
  • 5.
    Conteúdo Definição dedados CREATE TABLE, ALTER TABLE Manipulação de dados INSERT, UPDATE, DELETE Transações COMMIT, ROLLBACK Funções SUBSTRING, GETDATE Recuperação de dados SELECT, JOIN Conceitos básicos Banco de Dados, Entidade-Relacionamento e SGDB.
  • 6.
    Cláusula SELECT Cadaexpressão da cláusula SELECT se transforma em uma coluna no conjunto de resultados retornados pela consulta. As expressões podem ser nomes simples de colunas, podem gerar um novo valor usando um valor de coluna como entrada ou podem não ter nada haver com nenhuma coluna. A cláusula SELECT especifica os elementos de dados individuais que você quer que a sentença retorne.
  • 7.
    Cláusula SELECT -Usando SELECT ID_ALUNO , NM_NOME_ALUNO , NM_EMAIL_ALUNO , NM_PSS_ALUNO
  • 8.
    Cláusula FROM Usea cláusula FROM para especificar a fonte dos dados que você quer recuperar. O caso mais simples é se especificar uma única tabela ou visualização na cláusula FROM de uma sentença SELECT
  • 9.
    Cláusula FROM -Usando SELECT ID_ALUNO , NM_NOME_ALUNO , NM_EMAIL_ALUNO , NM_PSS_ALUNO FROM TBL_ALUNOS
  • 10.
    Cláusula WHERE Usea cláusula WHERE para restringir os resultados da query a somente aquelas linhas de interesse. Raramente você ira querer todas as linhas de uma tabela. Na maioria das vezes você querer as linhas que atendam a um critério especifico.
  • 11.
    Cláusula WHERE -Usando SELECT ID_ALUNO , NM_NOME_ALUNO , NM_EMAIL_ALUNO , NM_PSS_ALUNO FROM TBL_ALUNOS WHERE NM_PSS_ALUNO = 'BRIGIDAROES'
  • 12.
    Comando USE Alterao contexto de banco de dados para o banco de dados especificado. USE DB_ESCOLINHA
  • 13.
    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 */
  • 14.
  • 15.
    Exercícios A tabelade origem dos dados é especificada na cláusula SELECT? Justifique. É natural precisar retornar 100% dos dados de uma tabela? Busque seus dados da Base de dados. Base de dados: DB_ESCOLINHA Tabela: TBL_ALUNOS Colunas: ID_ALUNO, NM_NOME_ALUNO
  • 16.
    Predicado Predicados sãocondições que se 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.
  • 17.
    Predicado - LIKEOs predicados LIKE e NOT LIKE lhe oferecem recursos básicos de reconhecimento de padrões. Você pode usar os caracteres por cento (%) e sublinhado (_) para o reconhecimento de qualquer numero de caracteres ou qualquer caractere específico, respectivamente. Para encontrar todos os pais que contêm no seu nome 'Silva', especifique:
  • 18.
    Predicado – LIKE– Usando SELECT ID_PAI , NM_NOME_PAI , NM_EMAIL_PAI , NM_PSS_PAI FROM TBL_PAIS WHERE NM_SOBRENOME_PAI LIKE '%Silva%‘ Maria Aparecida da Silva Duarte Tatiane Silva Barbosa Silva e Souza Amanda Almeida
  • 19.
    Predicado – LIKE– Usando Para encontrar todas os pais que possui o primeiro nome 'Maria', especifique: SELECT ID_PAI, NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI FROM TBL_PAIS WHERE NM_NOME_PAI LIKE ‘Maria%' Maria Aparecida da Silva Duarte Tatiane Maria Barbosa Silva e Souza Amanda Almeida
  • 20.
    Predicado – LIKE– Usando Para encontrar todos os pais que possui o '230' nos três últimos dígitos do CEP, especifique: SELECT ID_PAI, NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI FROM TBL_PAIS WHERE NM_CEP_PAI LIKE '%230‘ 30730230 30730235 30630230 30750444
  • 21.
    Predicado – LIKE– Usando Ou ainda, use: SELECT ID_PAI, NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI FROM TBL_PAIS WHERE NM_CEP_PAI LIKE ‘______230‘ 30730230 30730235 30630230 30750444
  • 22.
    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 é.
  • 23.
    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
  • 24.
    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
  • 25.
    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')
  • 26.
    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
  • 27.
    SEQUEL História doSQL começa em 1970 com a publicação por E. F. Codd , no ACM Journal, de um artigo intitulado “A RelationalModel of Data for Large Shared Data Banks”. O modelo proposto por Codd é hoje considerado a base de trabalho para qualquer Sistema de Gestão de Base de Dados Relacional (SGBDR). A primeira implementação da linguagem SEQUEL foi realizada pela IBM e tinha por objetivo a implementação do modelo de Codd. A evolução desta linguagem veio a dar origem ao SQL. A primeira implementação comercial de SQL foi realizada pela Relational Software, Inc., hoje conhecida por Oracle Corporation . Nos dias de hoje, a linguagem SQL é considerada um standard dos Sistemas de Gestão de Base de Dados Relacionais (SGBDR); por isso, todos os fabricantes a integram nos seu produtos.
  • 28.
    O dialeto OTransact-SQL é central para usar o SQL Server. Todos os aplicativos que se comunicam com uma instância do SQL Server o fazem enviando instruções Transact-SQL ao servidor, independentemente da interface do usuário do aplicativo.
  • 29.
    Banco de DadosOs bancos de dados são ferramentas desenvolvidas com a finalidade de ajudar a organizar e recuperar dados de forma eficiente. Seu conceito não está diretamente vinculado a informática ou a qualquer meio eletrônico. Desse modo pode-se dizer que uma agenda, uma lista telefônica ou até uma enciclopédia são um banco de dados, pois a informação armazenada nesses meios está organizado e pode ser facilmente recuperada. utilizando essa mesma linha de raciocínio, não se poderia classificar um romance, por exemplo, como um banco de dados, pois a informação contida em uma romance, como as falas dos personagens, não pode ser facilmente recuperadas e não está armazenada de forma organizada.