Thomas Nield Novatec Authorized Portuguese translation of the English edition of Getting Started with SQL, ISBN 9781491938614 © 2016 Thomas Nield. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Getting Started with SQL, ISBN 9781491938614 © 2016 Thomas Nield. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. © Novatec Editora Ltda. 2016. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates PY20160419 Assistente editorial: Priscila A. Yoshimatsu Tradução: Aldir José Coelho Corrêa da Silva Revisão gramatical: Smirna Cavalheiro Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-501-1 Histórico de impressões: Abril/2016 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 E-mail: [email protected] Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec PY20160419 Sumário Introdução...............................................................................................................9 Prefácio.................................................................................................................11 Capítulo 1 ■ Por que aprender SQL?.........................................................................17 O que é SQL e por que ele é vendável?........................................................17 Para quem se destina o SQL?......................................................................18 Capítulo 2 ■ Bancos de dados..................................................................................19 O que é um banco de dados?......................................................................19 Examinando os bancos de dados relacionais...............................................19 Por que tabelas separadas?.........................................................................20 Selecionando uma solução de banco de dados.............................................21 Capítulo 3 ■ SQLite.................................................................................................25 O que é SQLite?........................................................................................ 25 SQLiteStudio............................................................................................ 26 Importando e procurando bancos de dados................................................27 Capítulo 4 ■ SELECT.................................................................................................33 Recuperando dados com SQL....................................................................33 Expressões em instruções SELECT............................................................36 Concatenação de texto...............................................................................41 Resumo.....................................................................................................42 Capítulo 5 ■ WHERE................................................................................................43 Filtrando registros.....................................................................................43 Usando WHERE com números................................................................. 44 Instruções AND, OR e IN..........................................................................45 Usando WHERE com texto.......................................................................47 Usando WHERE com booleanos............................................................... 49 5 6 Introdução à linguagem SQL Manipulando NULL..................................................................................50 Agrupando condições................................................................................52 Resumo.....................................................................................................53 Capítulo 6 ■ GROUP BY e ORDER BY..........................................................................55 Agrupando registros..................................................................................55 Ordenando registros..................................................................................57 Funções de agregação................................................................................58 A instrução HAVING................................................................................61 Obtendo registros distintos........................................................................62 Resumo.................................................................................................... 63 Capítulo 7 ■ Instruções CASE...................................................................................65 A instrução CASE..................................................................................... 65 Agrupando instruções................................................................................67 O truque da instrução CASE “Zero/Null”..................................................67 Resumo.....................................................................................................71 Capítulo 8 ■ JOIN....................................................................................................73 Associando tabelas....................................................................................73 INNER JOIN............................................................................................75 LEFT JOIN...............................................................................................79 Outros tipos de operador JOIN..................................................................82 Associando várias tabelas...........................................................................82 Agrupando JOINs..................................................................................... 85 Resumo.....................................................................................................87 Capítulo 9 ■ Design de banco de dados....................................................................89 Planejando um banco de dados..................................................................89 A conferência SurgeTech............................................................................91 Participantes .........................................................................................92 Empresas...............................................................................................92 Apresentações.......................................................................................92 Salas......................................................................................................93 Comparecimento nas apresentações.......................................................93 Chaves primária e externa..........................................................................93 O esquema................................................................................................95 Criando um novo banco de dados............................................................. 96 CREATE TABLE...................................................................................... 98 Sumário Definindo as chaves externas...................................................................106 Criando views.........................................................................................109 Resumo...................................................................................................112 Capítulo 10 ■ Gerenciando dados.......................................................................... 113 INSERT................................................................................................... 114 Inserções múltiplas..............................................................................115 Testando as chaves externas................................................................. 116 DELETE.................................................................................................. 117 TRUNCATE TABLE...............................................................................118 UPDATE.................................................................................................118 DROP TABLE.........................................................................................119 Resumo...................................................................................................119 Capítulo 11 ■ Seguindo em frente......................................................................... 121 Apêndice A ■ Operadores e funções....................................................................... 125 Apêndice A1 – consultas com expressões de literais..................................125 Apêndice A2 – operadores matemáticos...................................................126 Apêndice A3 – operadores de comparação................................................126 Apêndice A4 – operadores lógicos............................................................127 Apêndice A5 – operadores de texto..........................................................127 Apêndice A6 – funções básicas comuns....................................................128 Apêndice A7 – funções de agregação........................................................129 Apêndice A8 – funções de data e hora......................................................130 Funções de data...................................................................................130 Funções de hora..................................................................................131 Funções de data/hora..........................................................................132 Apêndice B ■ Tópicos suplementares..................................................................... 133 Apêndice B1 – outros tópicos de interesse.................................................133 Apêndice B2 – melhorando o desempenho com índices.............................134 Apêndice B3 – transações.........................................................................136 7