Array
(
)

Diferença entre junção, união e subconsulta em sql

Anacleto Linux
   - 27 dez 2013

1 - Qual a diferença entre os comandos do sql server e o usado actualmente?
:
a) JUNÇÃO DE TABELAS
b) UNIÃO DE TABELAS
c) SUBCONSULTA O SUBQUERY
2 - Qual a necessidade de criar um select into (copiar os dados de uma tabela para outra nova)?

Faabiianooc
   - 27 dez 2013

Não entendi esse junção que voce se refere..
Uniaão de tabela pode-se usar para unir dois select em um unico resultado (union e union all), exemplo:
#Código

Select 1
union
select 2
union
select 3

A diferença é que no union é retornado valores distintos (unicos) e union all pode trazer valores duplicados.

Subselect é o mesmo que
#Código
Select * fom tabela1 where id in (select id from tabela2)


E select into é utilizado para criar copias de tabela, caso tenha dúvida se o resultado de um delete ou update será o esperado, pode se criar tabelas fisicas ou temporarias para o teste.

Anacleto Linux
   - 28 dez 2013

no caso a junçaõ é:

- CROSS JOIN
- INNER JOIN
- LEFT JOIN
- RAGHT JOIN
- FULL JOIN

e quaj dos três é a mais usado hoje em dia?

junção de tabela
união de tabela
subconsulta

Anacleto Linux
   - 01 jan 2014


Citação:
Não entendi esse junção que voce se refere..
Uniaão de tabela pode-se usar para unir dois select em um unico resultado (union e union all), exemplo:
#Código

Select 1
union
select 2
union
select 3

A diferença é que no union é retornado valores distintos (unicos) e union all pode trazer valores duplicados.

Subselect é o mesmo que
#Código
Select * fom tabela1 where id in (select id from tabela2)


E select into é utilizado para criar copias de tabela, caso tenha dúvida se o resultado de um delete ou update será o esperado, pode se criar tabelas fisicas ou temporarias para o teste.

no caso a junçaõ é:

- CROSS JOIN
- INNER JOIN
- LEFT JOIN
- RAGHT JOIN
- FULL JOIN

e quaj dos três é a mais usado hoje em dia?

junção de tabela
união de tabela
subconsulta

Anacleto Linux
   - 01 jan 2014


Citação:
Não entendi esse junção que voce se refere..
Uniaão de tabela pode-se usar para unir dois select em um unico resultado (union e union all), exemplo:
#Código

Select 1
union
select 2
union
select 3

A diferença é que no union é retornado valores distintos (unicos) e union all pode trazer valores duplicados.

Subselect é o mesmo que
#Código
Select * fom tabela1 where id in (select id from tabela2)


E select into é utilizado para criar copias de tabela, caso tenha dúvida se o resultado de um delete ou update será o esperado, pode se criar tabelas fisicas ou temporarias para o teste.

no caso a junçaõ é:

- CROSS JOIN
- INNER JOIN
- LEFT JOIN
- RAGHT JOIN
- FULL JOIN

e quaj dos três é a mais usado hoje em dia?

junção de tabela
união de tabela
subconsulta

Anacleto Linux
   - 01 jan 2014


Citação:
Não entendi esse junção que voce se refere..
Uniaão de tabela pode-se usar para unir dois select em um unico resultado (union e union all), exemplo:
#Código

Select 1
union
select 2
union
select 3

A diferença é que no union é retornado valores distintos (unicos) e union all pode trazer valores duplicados.

Subselect é o mesmo que
#Código
Select * fom tabela1 where id in (select id from tabela2)


E select into é utilizado para criar copias de tabela, caso tenha dúvida se o resultado de um delete ou update será o esperado, pode se criar tabelas fisicas ou temporarias para o teste.

no caso a junçaõ é:

- CROSS JOIN
- INNER JOIN
- LEFT JOIN
- RAGHT JOIN
- FULL JOIN

e quaj dos três é a mais usado hoje em dia?

junção de tabela
união de tabela
subconsulta

Roniere Almeida
   - 01 jan 2014

acredito que a subconsulta seja mais utilizada.

Faabiianooc
   - 02 jan 2014

JOIN são mais utilizados.

Jair A.n.
   - 02 jan 2014

é mais fácil sua compreensão com uso de exemplos

-- CRIANDO TABELAS
CREATE TABLE t1 (num INTEGER, inf VARCHAR(25), CONSTRAINT pk_t1 PRIMARY KEY (num));
CREATE TABLE t2 (num INTEGER, inf VARCHAR(25), CONSTRAINT pk_t2 PRIMARY KEY (num));
CREATE TABLE t3 (num INTEGER, inf VARCHAR(25), CONSTRAINT pk_t3 PRIMARY KEY (num));
-- INSERINDO TABELA UM
INSERT INTO t1 VALUES (1,'cerveja');
INSERT INTO t1 VALUES (2,'tequila');
INSERT INTO t1 VALUES (3,'vodka');
INSERT INTO t1 VALUES (4,'whisky');
-- INSERINDO TABELA DOIS
INSERT INTO t2 VALUES (1,'cerveja');
INSERT INTO t2 VALUES (2,'tequila');
INSERT INTO t2 VALUES (3,'vodka');
INSERT INTO t2 VALUES (5,'vinho');
-- INSERINDO TABELA TRÊS
INSERT INTO t3 VALUES (2,'tequila');
INSERT INTO t3 VALUES (3,'vodka');
INSERT INTO t3 VALUES (4,'whisky');
INSERT INTO t3 VALUES (5,'vinho');
/*/

SELECT inf FROM t1; -- {'cerveja','tequila','vodka','whisky'}
SELECT inf FROM t2; -- {'ceverja','tequila','vodka','vinho'}
SELECT inf FROM t3; -- {'tequila','vodka','whisky','vinho'}

SELECT t1.inf AS inf1, t2.inf AS inf2, t3.inf AS inf3
FROM t1
INNER JOIN t2
ON (t2.num = t1.num)
INNER JOIN t3
ON (t3.num = t2.num)

SELECT t1.inf AS inf1, t2.inf AS inf2, t3.inf AS inf3
FROM t1
FULL JOIN t2
ON (t2.num = t1.num)
FULL JOIN t3
ON (t3.num = t2.num)

SELECT t1.inf AS inf1, t2.inf AS inf2, T3.inf AS inf3
FROM t1
CROSS JOIN t2
CROSS JOIN t3

SELECT t1.inf AS inf1, t2.inf AS inf2, t3.inf AS inf3
FROM t1
CROSS JOIN t2
CROSS JOIN t3
WHERE (t1.num = t2.num)
OR (t2.num = t3.num)
OR (t3.num = t1.num)

SELECT t1.inf AS inf1, t2.inf AS inf2, t3.inf AS inf3
FROM t1
LEFT JOIN t2
ON (t2.num = t1.num)
LEFT JOIN t3
ON (t3.num = t2.num)

SELECT t1.inf AS inf1, t2.inf AS inf2, t3.inf AS inf3
FROM t1
RIGHT JOIN t2
ON (t2.num = t1.num)
RIGHT JOIN t3
ON (t3.num = t2.num)

Bem, quanto a junção interna ou externa, satisfazendo cada situação cabe ao retorno do procedimento retornar linhas de dados que corresponde a essa sua junção utilizada.

Citação:

Citação:
Não entendi esse junção que voce se refere..
Uniaão de tabela pode-se usar para unir dois select em um unico resultado (union e union all), exemplo:
#Código

Select 1
union
select 2
union
select 3

A diferença é que no union é retornado valores distintos (unicos) e union all pode trazer valores duplicados.

Subselect é o mesmo que
#Código
Select * fom tabela1 where id in (select id from tabela2)


E select into é utilizado para criar copias de tabela, caso tenha dúvida se o resultado de um delete ou update será o esperado, pode se criar tabelas fisicas ou temporarias para o teste.

no caso a junçaõ é:

- CROSS JOIN
- INNER JOIN
- LEFT JOIN
- RAGHT JOIN
- FULL JOIN

e quaj dos três é a mais usado hoje em dia?

junção de tabela
união de tabela
subconsulta

Chiodini
   - 02 jan 2014

Anacleto,

segue um artigo mt interessante sobre isto.

http://www.macoratti.net/sql_acc.htm

att,