1. Operador Join
1.1. Join
1.1.1. junção em inglês
1.2. Utilizado quando temos que juntar tabelas que guardam uma correspondência entre si
1.3. Essa correspondência é representada através da chave estrangeira
1.3.1. um atributo que aponta para a chave primária de outra tabela
1.4. Tipos de junção da linguagem SQL
1.4.1. Inner Join
1.4.1.1. retorna linhas quando existe pelo menos uma combinação em ambas as tabelas
1.4.2. Left Join
1.4.2.1. retorna todas as linhas da tabela da esquerda
1.4.2.1.1. mesmo que as linhas não combinem com a tabela da direita
1.4.3. Right Join
1.4.3.1. retorna todas as linhas da tabela da direita
1.4.3.1.1. mesmo que as linhas não combinem com a tabela da esquerda
1.4.4. Outer Join
1.4.4.1. usado para juntar duas ou mais tabelas nas quais há ou não correspondências entre as tabelas
1.4.4.1.1. todos os dados
2. Índices
2.1. São estruturas que contêm uma chave de busca e um ponteiro
2.1.1. indicando a localização de determinado bloco de dados dentro da estrutura de armazenamento
2.1.1.1. a chave de busca é composta por um ou mais atributos de uma tupla
2.1.1.2. o ponteiro contém o endereço virtual do bloco de dados onde cada faixa de registros vai estar
2.1.1.3. se os atributos são pouco esparsos
2.1.1.3.1. a eficiência do índice é diminuída
2.2. Os índices são utilizados
2.2.1. principalmente
2.2.2. para melhorar o desempenho do banco de dados
2.2.2.1. embora a utilização não apropriada possa resultar em uma degradação desse desempenho
2.3. Você pode criar tantos índices quanto desejar em qualquer tabela
2.3.1. é possível ter um índice para cada coluna da tabela
2.3.1.1. assim como um índice para uma combinação de colunas
2.4. A eliminação de um índice não elimina as tabelas ou visões relacionadas com o índice
2.5. Excesso de índices pode ser tão prejudicial quanto sua falta
2.6. A manutenção de índices requer tempo e recursos
2.6.1. não crie índices que não serão usados efetivamente
3. Termos Importantes no Contexto da Linguagem SQL
3.1. SQL
3.1.1. Structured Query Language
3.1.1.1. Linguagem de Consulta Estruturada
3.1.2. linguagem de consulta padrão para acesso e manipulação em bancos de dados relacionais
3.2. É uma linguagem declarativa
3.2.1. descreve o que fazer e não como fazer
3.3. Cláusula
3.3.1. palavra-chave ou termo utilizado em uma linguagem para compor um comando
3.3.1.1. Exemplos
3.3.1.1.1. select
3.3.1.1.2. where
3.3.1.1.3. in
3.4. Registros ou tuplas
3.4.1. linhas de uma tabela no modelo relacional
3.5. Atributo ou campo
3.5.1. coluna de uma tabela no modelo relacional
3.5.2. coluna de uma tabela no modelo relacional
3.6. Null
3.6.1. representa vazio ou ausência de valor
3.7. Alias
3.7.1. é o apelido para uma coluna ou tabela
3.8. Consulta aninhada ou subconsulta
3.8.1. uma consulta interna a outra
3.9. Consultas em banco de dados podem ser muito lentas e demoradas
3.9.1. especialmente quando existem muitos
3.9.1.1. registros
3.9.1.2. tabelas
3.10. A eliminação de um índice não elimina as tabelas ou visões relacionadas com o índice
3.11. A SQL usa os termos tabela, linha e coluna
3.11.1. em vez dos termos de relação, tupla e atributo
3.11.2. para o modelo relacional formal
3.12. Stored Procedure
3.12.1. Procedimento Armazenado
3.12.2. código SQL preparado que você pode salvar
3.12.2.1. para que o código possa ser reutilizado repetidamente
3.13. Triggers ou gatilhos
3.13.1. programas armazenados que são executados ou disparados automaticamente quando alguns eventos ocorrem
3.14. Default
3.14.1. Valor padrão
4. Comandos Principais
4.1. DDL
4.1.1. Data Definition Language
4.1.1.1. Linguagem de Definição de Dados
4.1.2. Create
4.1.2.1. cria objetos na base de dados
4.1.3. Alter
4.1.3.1. altera a estrutura de um objeto da base
4.1.4. Drop
4.1.4.1. elimina determinado objeto da base de dados
4.1.5. para criar ou deletar um banco de dados
4.1.5.1. deve-se possuir privilégios de administrador
4.2. DML
4.2.1. Data Manipulation Language
4.2.1.1. Linguagem de Manipulação de Dados
4.2.2. Select
4.2.2.1. seleciona dados de uma base de dados
4.2.3. Insert
4.2.3.1. insere linhas em uma tabela
4.2.4. Update
4.2.4.1. altera os valores das linhas de uma tabela
4.2.5. Delete
4.2.5.1. exclui linhas em uma tabela
4.3. DCL
4.3.1. Data Contol Language
4.3.1.1. Linguagem de Controle de Dados
4.3.2. Grant
4.3.2.1. fornece permissão de acesso em objetos do banco de dados
4.3.3. Revoke
4.3.3.1. retira permissão de acesso em objetos do banco de dados
4.4. DTL
4.4.1. Data Transaction Language
4.4.1.1. Linguagem de Transação de Dados
4.4.2. Commit
4.4.2.1. efetiva as alterações feitas na base de dados
4.4.3. Rollback
4.4.3.1. desfaz qualquer alteração que ainda não tenha sido efetivada
4.4.3.1.1. de modo que a integridade do banco de dados seja mantida
4.4.4. Savepoint
4.4.4.1. estabelece pontos de retorno dentro de uma transação
5. Restrições SQL (Constraints)
5.1. Especificam regras para os dados em uma tabela
5.2. Podem limitar o tipo de dados que podem ser colocados em uma tabela
5.3. Podem ser no nível da coluna ou no nível da tabela
5.3.1. restrições de nível de coluna se aplicam a uma coluna
5.3.2. restrições de nível de tabela se aplicam à tabela inteira
5.4. Muito usadas no SQL
5.4.1. Not null
5.4.1.1. garante que uma coluna não pode ter um valor null
5.4.2. Unique
5.4.2.1. garante que todos os valores em uma coluna sejam diferentes
5.4.3. Primary key
5.4.3.1. uma combinação de not null e unique
5.4.3.2. identifica exclusivamente cada linha em uma tabela
5.4.4. Foreign key
5.4.4.1. identifica exclusivamente uma linha/registro em outra tabela
5.4.5. Check
5.4.5.1. garante que todos os valores em uma coluna satisfaçam uma condição específica
5.4.6. Default
5.4.6.1. define um valor padrão para uma coluna quando nenhum valor é especificado
5.4.7. Index
5.4.7.1. utilizado para criar e recuperar dados do banco de dados muito rapidamente
6. Select
6.1. Recuperar informações de um BD
6.1.1. operação de projeção
6.2. Sintaxe básica
6.2.1. SELECT coluna 1, coluna 2
6.2.1.1. * para não especificar colunas
6.2.1.1.1. retorna todos os atributos
6.2.1.2. SELECT DISTINCT
6.2.1.2.1. retorna apenas valores diferentes ou distintos
6.2.1.2.2. elimina duplicidades
6.2.2. FROM nome_da_tabela
6.2.3. WHERE condição
6.2.3.1. cláusula opcional
6.2.3.1.1. consulta pode ser realizada sem condição
6.3. Cláusula AS
6.3.1. alias
6.3.1.1. apelido
6.3.2. nome temporário a uma tabela ou coluna retornados para tornar os nomes das colunas mais legíveis
6.3.3. existe apenas para a duração da consulta
6.3.4. pode ser omitida
6.4. Cláusula WHERE
6.4.1. condição
6.4.2. mais de uma condição
6.4.2.1. and
6.4.2.1.1. todas as condições são verdadeiras
6.4.2.2. or
6.4.2.2.1. pelo menos uma condição é verdadeira
6.4.2.3. not
6.4.2.3.1. nenhuma das condições é verdadeira
6.4.3. operadores
6.4.3.1. =
6.4.3.2. <
6.4.3.3. <=
6.4.3.4. >
6.4.3.5. >=
6.4.3.6. <>
6.4.3.6.1. diferente
6.4.3.7. between
6.4.3.7.1. intervalo
6.4.3.8. like
6.4.3.8.1. padrão
6.4.3.9. in
6.4.3.9.1. possíveis valores
6.5. Cláusula ORDER BY
6.5.1. ordenação das tuplas/linhas no resultado da consulta
6.5.2. desc
6.5.2.1. ordem decrescente
6.5.3. asc
6.5.3.1. ordem crescente
6.5.3.1.1. padrão
6.6. SELECT * FROM Clientes WHERE NOT Pais='Mexico' ORDER BY Pais DESC
6.6.1. retornará todos os atributos
6.6.2. da tabela clientes
6.6.3. exceto México
6.6.4. em ordem decrescente de países
6.7. Produto cartesiano
6.7.1. combinação de linhas de duas ou mais tabelas
6.7.1.1. independentemente de ter os mesmos valores em atributos comuns
6.7.2. terceira tabela contendo toda as combinações possíveis entre as linhas das tabelas originais
6.7.3. número de linhas igual ao produto do número de suas linhas
6.7.4. SELECT tabela1.coluna1, tabela2.coluna2 FROM tabela1, tabela2 WHERE condição
6.7.4.1. é indicado pelo uso de vírgula entre as tabelas referenciadas
6.7.4.2. para verificar quais as tabelas em que os dados serão buscados
6.8. Funções de agregação
6.8.1. são usadas para resumir informações de várias tuplas em uma síntese de tupla única
6.8.2. SELECT FUNCAO(coluna1) FROM nome_da_tabela WHERE condição
6.8.3. min
6.8.3.1. menor valor de uma coluna
6.8.4. max
6.8.4.1. maior valor de uma coluna
6.8.5. count
6.8.5.1. número de linhas que atende a um critério
6.8.5.1.1. quantidade
6.8.6. avg
6.8.6.1. média dos valores de uma coluna numérica
6.8.7. sum
6.8.7.1. soma dos valores de uma coluna numérica
6.9. Agrupamentos
6.9.1. GROUP BY
6.9.2. especifica os atributos de agrupamento
6.9.2.1. que também devem aparecer na cláusula SELECT
6.9.3. having
6.9.3.1. condição com função agregadora
6.9.4. SELECT FornecedorID, COUNT(ProdutoID) FROM Produtos GROUP BY FornecedorID HAVING COUNT(ProdutoID) <= 2
6.9.4.1. consulta a quantidade de produtos que são fornecidos por cada fornecedor
6.9.4.1.1. porém somente aqueles que forneçam uma quantidade de produtos menor ou igual a 2
7. View (Visão)
7.1. É uma tabela única derivada de outras tabelas
7.2. Por não existir fisicamente
7.2.1. pode ser considerada uma tabela virtual
7.2.1.1. podem ser usadas para esconder determinadas informações de usuários específicos
7.2.1.1.1. não geram armazenamento no banco de dados
7.2.1.2. diferentemente das tabelas básicas
7.2.1.2.1. não contém suas tuplas armazenadas no banco de dados
7.3. São objetos do banco de dados que na verdade representam uma query que se deseja utilizar com frequência
7.4. Tabela virtual derivada de outras tabelas
7.5. Maneira alternativa de visualização dos dados
7.6. Consulta predefinida ou armazenada
7.6.1. executada sempre que referenciada