Categorias
SQL

SQL: Relacionamentos

Equi Join: Funciona como o Join padrão porém obrigatoriamente as chaves pk e fk devem ter o mesmo nome, como consequência a coluna cpf aparecerá uma única vez. Obs: o termo “Equi” não precisa ser digitado, o using já define este join.

Ex: select *from pessoa join material using (cpf)

Non Equi Join: Quando as chaves pk e fk tem nomes diferentes.

Outer Join, Left Join ou Left Outer Join: Exibem todos os registros da relação, inclusive os que existem somente na tabela consultada.

Ex: Select *from pessoas left join veiculos on pessoas.cpf = veiculos.cpf

leftjoin
leftjoin

Right Join ou Right Outer Join: Mesmo processo do left join porém exibe os registros que só existem na tabela relacionada.

Full Outer Join ou full join: Combinação do left com o right, traz todos os registros de ambas tabelas independentemente de haver relação entre os registros.

Self Join: Relação da tabela com ela mesma.

Ex: Select a.nome,b.nome as indicado_por from pessoas a join pessoas b on a.indicado = b.cpf

selfjoin
selfjoin
Categorias
SQL

SQL: Conceitos, Licenças e Propriedades

Structured Query Language(Linguagem de Consulta Estruturada), ou SQL, é a principal linguagem de consulta estruturada em BD, capaz de fazer o gerenciamento de todos os dados baseados no modelo relacional, a partir dos SGBD’s que a implementam, os principais são: MySQL, Postgres, Firebird, Oracle Express, SQL Server Express.

É formada por: DDL(Data Definition Language): Responsável pelo gerenciamento do BD com Alter, Create e Drop. DML(Data Manipulation Language): Faz a gerência dos registros na tabela com Insert, Update, Delete. DQL(Data Query Language): Responsável por fazer as consultas com Select. DCL(Data Control Language): Libera ou bloqueia acesso/gerenciamento do BD, Grant e Revoke. DTL(Data Transaction Language): Inicia a transação, executa no BD com sucesso e anula a transação, Start Transaction, Commit, Rollback respectivamente.

Licenças: Licença Comercial Necessária: MySQL, Oracle e SQL Server. Licença Estudantil Disponibilizada: MySQL, Postgres, Firebird, Oracle Express, SQL Server Express.

Propriedades: Not Null, Chaves, Unsigned, Signed.

1. Not Null: Define o campo como não nulo, ou seja, obrigatoriamente deve receber um valor.

2. Chaves: Podem ser chave primária(primary key), secundária(foreign key) ou composta, e não podem ser nulas. A primária serve para identificar o campo como único assim evitando registros duplicados na tabela. Secundária funciona como campo que fará o link entre uma ou mais tabelas, para assim poder retornar uma nova tabela com os registros dos campos das tabelas consultadas, desde que possuam o valor do campo em comum. Composta usa mais de um campo na tabela como chave, exemplo nome+endereço definem uma chave composta pois não há mais de 1 pessoa com nome e endereço exatamente iguais, logo funcionaria em um bd de pequeno porte, mas em um de grande porte não seria a solução mais indicada.

3. Unsigned: remove o intervalo negativo do tamanho do campo e acrescenta no positivo, exemplo: o TinyInt com intervalo de tamanho indo de -127 à +128, muda para +255.