SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Aprendendo


                SQL
Alan Beaulieu




                  Novatec
Sumário



Prefácio .............................................................................................................................11

CAPÍTULO 1 • Uma breve introdução ....................................................................................17
     Introdução aos bancos de dados ............................................................................ 17
         Sistemas de banco de dados não-relacional ....................................................... 18
         O modelo relacional.........................................................................................20
         Um pouco de terminologia............................................................................... 23
     O que é SQL? ....................................................................................................... 24
         Classes de instruções SQL ................................................................................ 24
         SQL: uma linguagem não-procedural ...............................................................26
         Exemplos em SQL............................................................................................ 27
     O que é MySQL?...................................................................................................30
     O que vem em seguida ...........................................................................................31

CAPÍTULO 2 • Criando e populando um banco de dados ........................................................33
     Criando um banco de dados MySQL ..................................................................... 33
     Usando a ferramenta de linha de comando mysql................................................... 35
     Tipos de dados do MySQL ....................................................................................36
        Dados do tipo caractere ....................................................................................36
        Dados de texto ................................................................................................. 39
        Dados numéricos .............................................................................................40
        Dados temporais ..............................................................................................42
     Criação de tabelas .................................................................................................44
        Passo 1: Projeto ................................................................................................44
        Passo 2: Refinamento ....................................................................................... 45
        Passo 3: Construindo instruções de esquema SQL ............................................ 47
     Povoando e modificando tabelas .............................................................................51
        Inserindo dados ................................................................................................51
        Atualizando dados ...........................................................................................56
        Exclusão de dados ...........................................................................................56
     Quando boas instruções se dão mal ....................................................................... 57
        Chaves primárias não-únicas ............................................................................ 57
        Chave estrangeira não-existente ........................................................................ 57
        Violações dos valores das colunas .....................................................................58
        Conversões de data inválidas ............................................................................58

                                                                                                                                      5
6                                                                                                         Aprendendo SQL

    Esquema bank (bank schema) ............................................................................... 59

CAPÍTULO 3 • Introdução a consultas ...................................................................................62
    Funcionamento das consultas ................................................................................ 62
    Cláusulas de consulta............................................................................................64
    Cláusula select ...................................................................................................... 65
       Aliases de colunas ............................................................................................ 67
       Removendo duplicatas .....................................................................................68
    Cláusula from ....................................................................................................... 70
       Tabelas ............................................................................................................ 70
       Vínculos de tabela............................................................................................ 73
       Definindo aliases de tabela ............................................................................... 74
    Cláusula where ..................................................................................................... 75
    Cláusulas group by e having ..................................................................................77
    Cláusula order by.................................................................................................. 78
       Ordenação ascendente versus ordenação descendente .......................................80
       Ordenação por meio de expressões ................................................................... 81
       Ordenando por meio de referências numéricas ..................................................82
    Teste seu conhecimento .........................................................................................83

CAPÍTULO 4 • Filtragem .......................................................................................................85
    Avaliação de condições .......................................................................................... 85
       Usando parênteses ...........................................................................................86
       Usando o operador not ....................................................................................87
    Construindo uma condição ...................................................................................88
    Tipos de condições................................................................................................89
       Condições de igualdade ...................................................................................89
       Condições de intervalo..................................................................................... 91
       Condições de adesão ........................................................................................94
       Condições de correspondência .........................................................................96
    Null: aquela palavra de quatro letras.................................................................... 100
    Teste seu conhecimento ....................................................................................... 103

CAPÍTULO 5 • Consultando múltiplas tabelas...................................................................... 105
    O que é uma junção? .......................................................................................... 105
       Produto cartesiano ......................................................................................... 106
       Junções internas ............................................................................................ 108
       A sintaxe ANSI de junção ................................................................................110
    Juntando três ou mais tabelas ............................................................................... 113
       Usando subconsultas como tabelas .................................................................116
       Usando a mesma tabela duas vezes .................................................................. 117
    Autojunções......................................................................................................... 118
Sumário                                                                                                               7

    Junções equivalentes versus não-equivalentes ........................................................ 119
    Condições de junção versus condições de filtro .................................................... 122
    Teste seu conhecimento ........................................................................................123

CAPÍTULO 6 • Trabalhando com conjuntos .......................................................................... 125
    Introdução à teoria dos conjuntos ........................................................................ 125
    Teoria dos conjuntos na prática ........................................................................... 128
    Operadores de conjunto ...................................................................................... 129
        Operador union ............................................................................................. 130
        Operador intersect ..........................................................................................132
        Operador except ............................................................................................ 134
    Regras das operações de conjunto .........................................................................135
        Ordenando resultados de consultas compostas ................................................135
        Precedência das operações de conjunto ........................................................... 136
    Teste seu conhecimento ........................................................................................139

CAPÍTULO 7 • Geração, conversão e manipulação de dados ................................................. 140
    Trabalhando com strings ..................................................................................... 140
       Geração de strings .......................................................................................... 141
       Manipulação de strings .................................................................................. 146
    Trabalhando com dados numéricos ..................................................................... 154
       Realizando funções aritméticas ........................................................................155
       Controlando a precisão numérica ................................................................... 156
       Tratando dados sinalizados ............................................................................ 159
    Trabalhando com dados temporais ...................................................................... 159
       Trabalhando com fusos horários .................................................................... 160
       Gerando dados temporais .............................................................................. 162
       Manipulando dados temporais ........................................................................167
    Funções de conversão ........................................................................................... 171
    Teste seu conhecimento ........................................................................................173

CAPÍTULO 8 • Agrupamentos e agregações......................................................................... 174
    Conceitos de agrupamento ...................................................................................174
    Funções de agregação .......................................................................................... 177
       Grupos implícitos versus grupos explícitos ......................................................178
       Contando valores distintos ..............................................................................179
       Usando expressões ......................................................................................... 180
       Como nulls são tratados ................................................................................. 181
    Gerando grupos.................................................................................................. 182
       Agrupamento por uma coluna........................................................................ 183
       Agrupamento por múltiplas colunas ............................................................... 183
       Agrupamento por meio de expressões ............................................................. 184
8                                                                                                       Aprendendo SQL

       Gerando resumos (rollups) ............................................................................. 184
    Condições de filtro de grupo ............................................................................... 187
    Teste seu conhecimento ....................................................................................... 189

CAPÍTULO 9 • Subconsultas................................................................................................ 190
    O que é uma subconsulta? .................................................................................. 190
    Tipos de subconsultas .......................................................................................... 191
    Subconsultas não-correlatas ................................................................................ 192
       Subconsultas de linhas múltiplas e coluna única ............................................. 193
       Subconsultas de múltiplas colunas.................................................................. 199
    Subconsultas correlatas ........................................................................................201
       Operador exists ............................................................................................. 203
       Manipulação de dados usando subconsultas correlatas ................................... 205
    Quando usar subconsultas .................................................................................. 206
       Subconsultas como fontes de dados ................................................................ 206
       Subconsultas em condições de filtro ................................................................212
       Subconsultas como geradoras de expressões.....................................................213
    Resumo das subconsultas .....................................................................................217
    Teste seu conhecimento ........................................................................................218

CAPÍTULO 10 • Junções revisitadas..................................................................................... 219
    Junções externas ..................................................................................................219
       Junção externa esquerda versus junção externa direita..................................... 223
       Junções externas de três tabelas ...................................................................... 225
       Autojunções externas ..................................................................................... 227
    Junções cruzadas ................................................................................................ 229
    Junções naturais ................................................................................................. 236
    Teste seu conhecimento ....................................................................................... 238

CAPÍTULO 11 • Lógica condicional ...................................................................................... 240
    O que é lógica condicional? ................................................................................ 240
    Expressão case .....................................................................................................241
    Expressões case pesquisadas ................................................................................ 242
       Expressões case simples .................................................................................. 244
    Exemplos de expressões case................................................................................ 245
       Transformações de conjuntos-resultados ......................................................... 245
       Agregação seletiva .......................................................................................... 247
       Verificando a existência .................................................................................. 248
       Erros de divisão por zero ................................................................................ 250
       Atualizações condicionais .............................................................................. 252
       Tratando valores null ..................................................................................... 252
    Teste seu conhecimento ....................................................................................... 254
Sumário                                                                                                                        9

CAPÍTULO 12 • Transações ................................................................................................. 255
    Bancos de dados multiusuários............................................................................ 255
       Locking ......................................................................................................... 256
       Granularidade dos bloqueios ......................................................................... 256
    O que é uma transação? ..................................................................................... 257
       Iniciando uma transação ................................................................................ 259
       Finalizando uma transação............................................................................. 260
       Pontos de gravação de transações ................................................................... 262
       Teste seu conhecimento .................................................................................. 265
       Exercício 12.1.................................................................................................. 265

CAPÍTULO 13 • Índices e restrições ..................................................................................... 266
    Índices ................................................................................................................266
       Criação de índices.......................................................................................... 267
       Tipos de índices ..............................................................................................271
       Como os índices são usados ........................................................................... 274
       O lado negativo dos índices ............................................................................ 277
    Restrições ........................................................................................................... 278
       Criação de restrições ...................................................................................... 279
       Restrições e índices ........................................................................................ 280
       Restrições em cascata ......................................................................................281
    Teste seu conhecimento ....................................................................................... 284

CAPÍTULO 14 • Views ......................................................................................................... 285
    O que são views?................................................................................................. 285
    Por que usar as views? ........................................................................................288
       Segurança de dados .......................................................................................288
       Agregação de dados ....................................................................................... 289
       Escondendo a complexidade ...........................................................................291
       Juntando dados particionados .........................................................................291
    Views atualizáveis ............................................................................................... 292
       Atualizando views simples ............................................................................. 293
       Atualizando views complexas ......................................................................... 294
    Teste seu conhecimento ....................................................................................... 297

CAPÍTULO 15 • Metadados ................................................................................................. 298
    Dados sobre dados .............................................................................................. 298
    Information_schema ........................................................................................... 300
    Trabalhando com metadados............................................................................... 304
        Scripts de geração de esquemas ...................................................................... 304
        Verificação de implantação ............................................................................. 308
        Geração dinâmica de SQL .............................................................................. 309
10                                                                                                           Aprendendo SQL

     Teste seu conhecimento ........................................................................................312

APÊNDICE A • Diagrama ER do banco de dados de exemplo................................................. 313

APÊNDICE B • Extensões do MySQL para a linguagem SQL ................................................... 315
     Extensões para a instrução select ..........................................................................315
         Cláusula limit .................................................................................................315
     Cláusula into outfile.............................................................................................319
     Instruções insert/update combinadas................................................................... 322
     Atualizações e exclusões ordenadas...................................................................... 323
     Atualizações e exclusões em múltiplas tabelas ...................................................... 325

APÊNDICE C • Soluções dos exercícios ................................................................................. 329

Índice remissivo ...............................................................................................................XXX

Mais conteúdo relacionado

Mais procurados

REDES SEM FIO NO MUNDO EM DESENVOLVIMENTO
REDES SEM FIO NO MUNDO EM DESENVOLVIMENTOREDES SEM FIO NO MUNDO EM DESENVOLVIMENTO
REDES SEM FIO NO MUNDO EM DESENVOLVIMENTORogerio Silva
 
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-Store
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-StoreExame de Suficiência em Contabilidade – 5ª edição | IOB e-Store
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-StoreIOB News
 
Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)chfceilandia
 
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...IOB News
 
Apostila excel vba completa portugues
Apostila excel vba completa portuguesApostila excel vba completa portugues
Apostila excel vba completa portuguesMario Mario
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicasCarlos Pereira
 
Guia de Instrumentos Financeiros – 2ª edição - IOB e-Store
Guia de Instrumentos Financeiros – 2ª edição - IOB e-StoreGuia de Instrumentos Financeiros – 2ª edição - IOB e-Store
Guia de Instrumentos Financeiros – 2ª edição - IOB e-StoreIOB News
 
Manual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalManual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalBlog Mídia8!
 
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-Store
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-StoreExame de Suficiência em Contabilidade - 3ª edição - IOB e-Store
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-StoreIOB News
 
Apostila visual basic 5
Apostila visual basic 5Apostila visual basic 5
Apostila visual basic 5Fabiano Sales
 
Mini Curso – Controle e Segurança com Iptables
Mini Curso – Controle e Segurança com IptablesMini Curso – Controle e Segurança com Iptables
Mini Curso – Controle e Segurança com Iptablesedmafer
 
javscript para iniciantes
javscript para iniciantesjavscript para iniciantes
javscript para iniciantesbradock1964
 
EXCEL 2007 Manual
EXCEL 2007 ManualEXCEL 2007 Manual
EXCEL 2007 ManualVitor Roque
 

Mais procurados (19)

REDES SEM FIO NO MUNDO EM DESENVOLVIMENTO
REDES SEM FIO NO MUNDO EM DESENVOLVIMENTOREDES SEM FIO NO MUNDO EM DESENVOLVIMENTO
REDES SEM FIO NO MUNDO EM DESENVOLVIMENTO
 
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-Store
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-StoreExame de Suficiência em Contabilidade – 5ª edição | IOB e-Store
Exame de Suficiência em Contabilidade – 5ª edição | IOB e-Store
 
Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...
ICMS e Obrigações Acessórias para empresas de telecom (Telecomunicação) - IOB...
 
Apostila: CSS
Apostila: CSSApostila: CSS
Apostila: CSS
 
Apostila excel vba completa portugues
Apostila excel vba completa portuguesApostila excel vba completa portugues
Apostila excel vba completa portugues
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicas
 
Guia de Instrumentos Financeiros – 2ª edição - IOB e-Store
Guia de Instrumentos Financeiros – 2ª edição - IOB e-StoreGuia de Instrumentos Financeiros – 2ª edição - IOB e-Store
Guia de Instrumentos Financeiros – 2ª edição - IOB e-Store
 
Manual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalManual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo Federal
 
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-Store
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-StoreExame de Suficiência em Contabilidade - 3ª edição - IOB e-Store
Exame de Suficiência em Contabilidade - 3ª edição - IOB e-Store
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Apostila visual basic 5
Apostila visual basic 5Apostila visual basic 5
Apostila visual basic 5
 
Mini Curso – Controle e Segurança com Iptables
Mini Curso – Controle e Segurança com IptablesMini Curso – Controle e Segurança com Iptables
Mini Curso – Controle e Segurança com Iptables
 
Apostilha8
Apostilha8Apostilha8
Apostilha8
 
javscript para iniciantes
javscript para iniciantesjavscript para iniciantes
javscript para iniciantes
 
EXCEL 2007 Manual
EXCEL 2007 ManualEXCEL 2007 Manual
EXCEL 2007 Manual
 
Diretrizes básicas para indexação
Diretrizes básicas para indexaçãoDiretrizes básicas para indexação
Diretrizes básicas para indexação
 

Semelhante a Sumario9788575222102

Apostila de excel 2007 ok perfeita
Apostila de excel 2007 ok perfeitaApostila de excel 2007 ok perfeita
Apostila de excel 2007 ok perfeitaDiego Carrara
 
Tutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingTutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingEverson Wolf
 
Apostila excel Avançado.pdf
Apostila excel Avançado.pdfApostila excel Avançado.pdf
Apostila excel Avançado.pdfCatarinnaSobral
 
Manual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalManual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalVincere Comunicação
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHPFernando Palma
 
Fortran_95_curso_basico_Editora_XXX.pdf
Fortran_95_curso_basico_Editora_XXX.pdfFortran_95_curso_basico_Editora_XXX.pdf
Fortran_95_curso_basico_Editora_XXX.pdfMarcosSilva130534
 
Jquery 38book-pt-br
Jquery 38book-pt-brJquery 38book-pt-br
Jquery 38book-pt-brJean Lopes
 
Programando ooo b
Programando ooo bProgramando ooo b
Programando ooo bvangney
 
Shell script
Shell scriptShell script
Shell scriptTiago
 
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdfRonaldoGoncalves6
 

Semelhante a Sumario9788575222102 (20)

Apostila de excel 2007 ok perfeita
Apostila de excel 2007 ok perfeitaApostila de excel 2007 ok perfeita
Apostila de excel 2007 ok perfeita
 
Indesign cs5 help
Indesign cs5 helpIndesign cs5 help
Indesign cs5 help
 
Tutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swingTutorial sistema vendas_em_java_com_swing
Tutorial sistema vendas_em_java_com_swing
 
Indesign cs5
Indesign cs5Indesign cs5
Indesign cs5
 
Apostila excel Avançado.pdf
Apostila excel Avançado.pdfApostila excel Avançado.pdf
Apostila excel Avançado.pdf
 
Guia xerox workcentre_3550
Guia xerox workcentre_3550Guia xerox workcentre_3550
Guia xerox workcentre_3550
 
Php
PhpPhp
Php
 
Cake php cookbook
Cake php cookbookCake php cookbook
Cake php cookbook
 
Material LINUX
Material LINUXMaterial LINUX
Material LINUX
 
Apostila aspnet mvc
Apostila aspnet mvcApostila aspnet mvc
Apostila aspnet mvc
 
Manual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo FederalManual de orientação para atuação em redes sociais - Governo Federal
Manual de orientação para atuação em redes sociais - Governo Federal
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
 
Cake php cookbook
Cake php cookbookCake php cookbook
Cake php cookbook
 
Fortran_95_curso_basico_Editora_XXX.pdf
Fortran_95_curso_basico_Editora_XXX.pdfFortran_95_curso_basico_Editora_XXX.pdf
Fortran_95_curso_basico_Editora_XXX.pdf
 
Jquery 38book-pt-br
Jquery 38book-pt-brJquery 38book-pt-br
Jquery 38book-pt-br
 
Tutorial ruby
Tutorial rubyTutorial ruby
Tutorial ruby
 
Programando ooo b
Programando ooo bProgramando ooo b
Programando ooo b
 
48607264 nx5
48607264 nx548607264 nx5
48607264 nx5
 
Shell script
Shell scriptShell script
Shell script
 
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf
02. Excel avançado Autor Escola de Serviço Público do Espírito Santo.pdf
 

Sumario9788575222102

  • 1. Aprendendo SQL Alan Beaulieu Novatec
  • 2. Sumário Prefácio .............................................................................................................................11 CAPÍTULO 1 • Uma breve introdução ....................................................................................17 Introdução aos bancos de dados ............................................................................ 17 Sistemas de banco de dados não-relacional ....................................................... 18 O modelo relacional.........................................................................................20 Um pouco de terminologia............................................................................... 23 O que é SQL? ....................................................................................................... 24 Classes de instruções SQL ................................................................................ 24 SQL: uma linguagem não-procedural ...............................................................26 Exemplos em SQL............................................................................................ 27 O que é MySQL?...................................................................................................30 O que vem em seguida ...........................................................................................31 CAPÍTULO 2 • Criando e populando um banco de dados ........................................................33 Criando um banco de dados MySQL ..................................................................... 33 Usando a ferramenta de linha de comando mysql................................................... 35 Tipos de dados do MySQL ....................................................................................36 Dados do tipo caractere ....................................................................................36 Dados de texto ................................................................................................. 39 Dados numéricos .............................................................................................40 Dados temporais ..............................................................................................42 Criação de tabelas .................................................................................................44 Passo 1: Projeto ................................................................................................44 Passo 2: Refinamento ....................................................................................... 45 Passo 3: Construindo instruções de esquema SQL ............................................ 47 Povoando e modificando tabelas .............................................................................51 Inserindo dados ................................................................................................51 Atualizando dados ...........................................................................................56 Exclusão de dados ...........................................................................................56 Quando boas instruções se dão mal ....................................................................... 57 Chaves primárias não-únicas ............................................................................ 57 Chave estrangeira não-existente ........................................................................ 57 Violações dos valores das colunas .....................................................................58 Conversões de data inválidas ............................................................................58 5
  • 3. 6 Aprendendo SQL Esquema bank (bank schema) ............................................................................... 59 CAPÍTULO 3 • Introdução a consultas ...................................................................................62 Funcionamento das consultas ................................................................................ 62 Cláusulas de consulta............................................................................................64 Cláusula select ...................................................................................................... 65 Aliases de colunas ............................................................................................ 67 Removendo duplicatas .....................................................................................68 Cláusula from ....................................................................................................... 70 Tabelas ............................................................................................................ 70 Vínculos de tabela............................................................................................ 73 Definindo aliases de tabela ............................................................................... 74 Cláusula where ..................................................................................................... 75 Cláusulas group by e having ..................................................................................77 Cláusula order by.................................................................................................. 78 Ordenação ascendente versus ordenação descendente .......................................80 Ordenação por meio de expressões ................................................................... 81 Ordenando por meio de referências numéricas ..................................................82 Teste seu conhecimento .........................................................................................83 CAPÍTULO 4 • Filtragem .......................................................................................................85 Avaliação de condições .......................................................................................... 85 Usando parênteses ...........................................................................................86 Usando o operador not ....................................................................................87 Construindo uma condição ...................................................................................88 Tipos de condições................................................................................................89 Condições de igualdade ...................................................................................89 Condições de intervalo..................................................................................... 91 Condições de adesão ........................................................................................94 Condições de correspondência .........................................................................96 Null: aquela palavra de quatro letras.................................................................... 100 Teste seu conhecimento ....................................................................................... 103 CAPÍTULO 5 • Consultando múltiplas tabelas...................................................................... 105 O que é uma junção? .......................................................................................... 105 Produto cartesiano ......................................................................................... 106 Junções internas ............................................................................................ 108 A sintaxe ANSI de junção ................................................................................110 Juntando três ou mais tabelas ............................................................................... 113 Usando subconsultas como tabelas .................................................................116 Usando a mesma tabela duas vezes .................................................................. 117 Autojunções......................................................................................................... 118
  • 4. Sumário 7 Junções equivalentes versus não-equivalentes ........................................................ 119 Condições de junção versus condições de filtro .................................................... 122 Teste seu conhecimento ........................................................................................123 CAPÍTULO 6 • Trabalhando com conjuntos .......................................................................... 125 Introdução à teoria dos conjuntos ........................................................................ 125 Teoria dos conjuntos na prática ........................................................................... 128 Operadores de conjunto ...................................................................................... 129 Operador union ............................................................................................. 130 Operador intersect ..........................................................................................132 Operador except ............................................................................................ 134 Regras das operações de conjunto .........................................................................135 Ordenando resultados de consultas compostas ................................................135 Precedência das operações de conjunto ........................................................... 136 Teste seu conhecimento ........................................................................................139 CAPÍTULO 7 • Geração, conversão e manipulação de dados ................................................. 140 Trabalhando com strings ..................................................................................... 140 Geração de strings .......................................................................................... 141 Manipulação de strings .................................................................................. 146 Trabalhando com dados numéricos ..................................................................... 154 Realizando funções aritméticas ........................................................................155 Controlando a precisão numérica ................................................................... 156 Tratando dados sinalizados ............................................................................ 159 Trabalhando com dados temporais ...................................................................... 159 Trabalhando com fusos horários .................................................................... 160 Gerando dados temporais .............................................................................. 162 Manipulando dados temporais ........................................................................167 Funções de conversão ........................................................................................... 171 Teste seu conhecimento ........................................................................................173 CAPÍTULO 8 • Agrupamentos e agregações......................................................................... 174 Conceitos de agrupamento ...................................................................................174 Funções de agregação .......................................................................................... 177 Grupos implícitos versus grupos explícitos ......................................................178 Contando valores distintos ..............................................................................179 Usando expressões ......................................................................................... 180 Como nulls são tratados ................................................................................. 181 Gerando grupos.................................................................................................. 182 Agrupamento por uma coluna........................................................................ 183 Agrupamento por múltiplas colunas ............................................................... 183 Agrupamento por meio de expressões ............................................................. 184
  • 5. 8 Aprendendo SQL Gerando resumos (rollups) ............................................................................. 184 Condições de filtro de grupo ............................................................................... 187 Teste seu conhecimento ....................................................................................... 189 CAPÍTULO 9 • Subconsultas................................................................................................ 190 O que é uma subconsulta? .................................................................................. 190 Tipos de subconsultas .......................................................................................... 191 Subconsultas não-correlatas ................................................................................ 192 Subconsultas de linhas múltiplas e coluna única ............................................. 193 Subconsultas de múltiplas colunas.................................................................. 199 Subconsultas correlatas ........................................................................................201 Operador exists ............................................................................................. 203 Manipulação de dados usando subconsultas correlatas ................................... 205 Quando usar subconsultas .................................................................................. 206 Subconsultas como fontes de dados ................................................................ 206 Subconsultas em condições de filtro ................................................................212 Subconsultas como geradoras de expressões.....................................................213 Resumo das subconsultas .....................................................................................217 Teste seu conhecimento ........................................................................................218 CAPÍTULO 10 • Junções revisitadas..................................................................................... 219 Junções externas ..................................................................................................219 Junção externa esquerda versus junção externa direita..................................... 223 Junções externas de três tabelas ...................................................................... 225 Autojunções externas ..................................................................................... 227 Junções cruzadas ................................................................................................ 229 Junções naturais ................................................................................................. 236 Teste seu conhecimento ....................................................................................... 238 CAPÍTULO 11 • Lógica condicional ...................................................................................... 240 O que é lógica condicional? ................................................................................ 240 Expressão case .....................................................................................................241 Expressões case pesquisadas ................................................................................ 242 Expressões case simples .................................................................................. 244 Exemplos de expressões case................................................................................ 245 Transformações de conjuntos-resultados ......................................................... 245 Agregação seletiva .......................................................................................... 247 Verificando a existência .................................................................................. 248 Erros de divisão por zero ................................................................................ 250 Atualizações condicionais .............................................................................. 252 Tratando valores null ..................................................................................... 252 Teste seu conhecimento ....................................................................................... 254
  • 6. Sumário 9 CAPÍTULO 12 • Transações ................................................................................................. 255 Bancos de dados multiusuários............................................................................ 255 Locking ......................................................................................................... 256 Granularidade dos bloqueios ......................................................................... 256 O que é uma transação? ..................................................................................... 257 Iniciando uma transação ................................................................................ 259 Finalizando uma transação............................................................................. 260 Pontos de gravação de transações ................................................................... 262 Teste seu conhecimento .................................................................................. 265 Exercício 12.1.................................................................................................. 265 CAPÍTULO 13 • Índices e restrições ..................................................................................... 266 Índices ................................................................................................................266 Criação de índices.......................................................................................... 267 Tipos de índices ..............................................................................................271 Como os índices são usados ........................................................................... 274 O lado negativo dos índices ............................................................................ 277 Restrições ........................................................................................................... 278 Criação de restrições ...................................................................................... 279 Restrições e índices ........................................................................................ 280 Restrições em cascata ......................................................................................281 Teste seu conhecimento ....................................................................................... 284 CAPÍTULO 14 • Views ......................................................................................................... 285 O que são views?................................................................................................. 285 Por que usar as views? ........................................................................................288 Segurança de dados .......................................................................................288 Agregação de dados ....................................................................................... 289 Escondendo a complexidade ...........................................................................291 Juntando dados particionados .........................................................................291 Views atualizáveis ............................................................................................... 292 Atualizando views simples ............................................................................. 293 Atualizando views complexas ......................................................................... 294 Teste seu conhecimento ....................................................................................... 297 CAPÍTULO 15 • Metadados ................................................................................................. 298 Dados sobre dados .............................................................................................. 298 Information_schema ........................................................................................... 300 Trabalhando com metadados............................................................................... 304 Scripts de geração de esquemas ...................................................................... 304 Verificação de implantação ............................................................................. 308 Geração dinâmica de SQL .............................................................................. 309
  • 7. 10 Aprendendo SQL Teste seu conhecimento ........................................................................................312 APÊNDICE A • Diagrama ER do banco de dados de exemplo................................................. 313 APÊNDICE B • Extensões do MySQL para a linguagem SQL ................................................... 315 Extensões para a instrução select ..........................................................................315 Cláusula limit .................................................................................................315 Cláusula into outfile.............................................................................................319 Instruções insert/update combinadas................................................................... 322 Atualizações e exclusões ordenadas...................................................................... 323 Atualizações e exclusões em múltiplas tabelas ...................................................... 325 APÊNDICE C • Soluções dos exercícios ................................................................................. 329 Índice remissivo ...............................................................................................................XXX