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

27/12/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)?

Anacleto Linux

Respostas

27/12/2013

Fabiano Carvalho

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:
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
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.
Responder Citar

28/12/2013

Anacleto Linux

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
Responder Citar

01/01/2014

Anacleto Linux

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:
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
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
Responder Citar

01/01/2014

Anacleto Linux

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:
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
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
Responder Citar

01/01/2014

Anacleto Linux

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:
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
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
Responder Citar

01/01/2014

Roniere Almeida

acredito que a subconsulta seja mais utilizada.
Responder Citar

02/01/2014

Fabiano Carvalho

JOIN são mais utilizados.
Responder Citar

02/01/2014

Jair A.n.

é 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.

[quote]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:
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
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[/quote]
Responder Citar

02/01/2014

Chiodini

Anacleto,

segue um artigo mt interessante sobre isto.

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

att,

Responder Citar