A maior rede de estudos do Brasil

Grátis
80 pág.
ESCM_Banco de Dados II

Pré-visualização | Página 6 de 14

destino, ou, os nomes dos campos dos 
quais se deve obter os dados, se estiverem após um argumento origem. 
tabela O nome da tabela ou tabelas das quais registros são inseridos. 
A tabela de origem pode especificar uma tabela ou uma consulta. 
 
Você pode usar INSERT INTO para anexar um conjunto de registros de outra tabela ou 
consulta usando a cláusula SELECT ... FROM como é mostrado acima na sintaxe. Neste 
caso, a cláusula SELECT especifica os campos para acrescentar à tabela destino 
especificada. 
 
Para achar quais registros serão anexados, antes de você executar a consulta anexação, 
primeiro execute uma consulta seleção que use o mesmo critério de seleção. 
 
Uma operação de consulta anexação copia os registros de uma ou mais tabelas em outra. 
As tabelas que contêm os registros que você anexa não são afetadas pela operação de 
consulta anexação. 
 
Vamos criar uma tabela chamada Novos_Clientes com a mesma estrutura da 
tabela Clientes. 
 
CREATE TABLE Novos_Clientes 
 ( 
 cliente numeric (8,0) not null PRIMARY KEY, 
 nome varchar (60) null, 
 telefone varchar (20) null 
 ) 
 
O exemplo abaixo seleciona todos os registros da tabela "Clientes" e os adiciona à tabela 
"Novos Clientes" (quando não são designadas colunas individuais, os nomes das colunas 
das tabelas SELECT devem corresponder exatamente aos da tabela INSERT INTO). 
 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
21 
ESCOLA SUPERIOR CANDIDO MENDES 
INSERT INTO Novos_Clientes SELECT * From clientes 
 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
22 
ESCOLA SUPERIOR CANDIDO MENDES 
 
Esse exemplo seleciona todos os estagiários de uma tabela hipotética "Estagiários" que 
foram contratados há mais de 30 dias e adiciona seus registros à tabela "Funcionários". 
 
INSERT INTO Funcionários SELECT Estagiários.* 
FROM Estagiários WHERE DataContrato < Now() - 30; 
 
Drop table Novos_Clientes 
 
 
SELECT INTO 
 
Consulta criação e anexação de vários registros. 
 
O exemplo abaixo permite executar o create e o Insert ao mesmo tempo, ou seja, de uma 
única vez, o comando seleciona todos os registros da tabela "Clientes", cria a tabela 
"Novos Clientes" e adiciona nesta tabela os registros da tabela Clientes. 
 
select * into Novos_clientes from clientes 
 
 
select nome, cliente into Novos_clientes from clientes 
 
 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
23 
ESCOLA SUPERIOR CANDIDO MENDES 
 
 
Aula 4 
 
SELECT 
 
Através do comando select, recuperamos os dados existentes no banco, de acordo com 
os critérios desejados. 
Instrui o programa principal do banco de dados para retornar a informação como um 
conjunto de registros. 
 
Sintaxe 
SELECT [predicado { * | tabela.* | [tabela.]campo1 [AS alias1] [, 
[tabela.]campo2 [AS alias2] [, ...]]} 
FROM expressãotabela [, ...] 
[WHERE... ] 
[GROUP BY... ] 
[HAVING... ] 
[ORDER BY... ] 
 
 
A instrução SELECT tem as partes abaixo: 
 
Parte Descrição 
predicado Um dos seguintes predicados: ALL, DISTINCT ou TOP. Você usa o predicado para restringir o número de registros que 
retornam. Se nenhum for especificado, o padrão será ALL. 
* Especifica que todos os campos da tabela ou tabelas especificadas são selecionados 
tabela O nome da tabela que contém os campos dos quais os registros são selecionados. 
campo1, campo2 Os nomes dos campos dos quais os dados serão recuperados. Se você incluir mais de um campo, eles serão recuperados na ordem 
listada. 
alias1, alias2 Os nomes que serão usados como títulos de colunas em vez dos nomes originais das colunas na tabela. 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
24 
ESCOLA SUPERIOR CANDIDO MENDES 
expressãotabela O nome da tabela ou tabelas contendo os dados que você quer recuperar. 
 
Para executar esta operação, o programa principal de banco de dados procura a tabela 
ou tabelas especificadas, extrai as colunas escolhidas, seleciona as linhas que satisfazem 
o critério e classifica ou agrupa as linhas resultantes na ordem especificada. 
 
 
A instrução SELECT não muda os dados no banco de dados. 
 
SELECT é normalmente a primeira palavra em uma instrução SQL. A maior parte das 
instruções SQL são instruções SELECT. 
 
A sintaxe mínima da instrução SELECT é: SELECT campos FROM tabela 
 
SELECT nome, telefone From clientes 
 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
25 
ESCOLA SUPERIOR CANDIDO MENDES 
 
Observação 
Caso exista mais de uma sentença em sua janela de queries, e você deseje executar 
apenas uma, selecione a sentença que você deseja executar, antes de comandar sua 
execução. O que não estiver selecionado será ignorado. 
 
 
 
 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
26 
ESCOLA SUPERIOR CANDIDO MENDES 
 
Dados inseridos na tabela pedidos 
1. select * from pedidos 
 
numero cliente telefone 
----------- ---------- ----------- 
123456 1002 33964567 
654321 1002 222222 
123 1003 33964567 
123456 1004 33964567 
654321 1004 222222 
 
(5 row(s) affected) 
 
Predicados: 
 
ALL: Seleciona todos os dados da coluna numero, inseridos na tabela pedidos. 
2. select all numero from pedidos 
 
numero 
----------- 
123456 
654321 
123 
123456 
654321 
 
(5 row(s) affected) 
 
Distinct: Seleciona os dados, sem repetição na tabela pedidos. 
3. select distinct numero from pedidos 
 
numero 
----------- 
123 
123456 
654321 
(3 row(s) affected) 
 
4. select distinct cliente from pedidos 
 
cliente 
---------- 
 
 
 
Rua da Assembléia, nº. 10 -3ºandar - sala 319 CEP 20011-901 • Rio de Janeiro • RJ 
 Tels.: (21) 3543-6442 e 3543-6413 
 escm@candidomendes.edu.br • www.candidomendes.edu.br/escm 
27 
ESCOLA SUPERIOR CANDIDO MENDES 
1002 
1003 
1004 
(3 row(s) affected) 
 
TOP: Seleciona o primeiro dado, da coluna cliete na tabela pedidos. 
5. select top 1 cliente from pedidos 
 
cliente 
---------- 
1002 
(1 row(s) affected) 
 
Podemos recuperar todas as colunas de uma tabela utilizando o caracter curinga *. 
SELECT * From clientes 
 
 
A utilização da cláusula WHERE faz com que o uso do comando SELECT seja dos mais 
freqüentes no dia a dia, pois através dela, poderemos especificar condições de busca, as 
quais determinarão a quantidade de informações retornadas pelo servidor, ou, muitas 
vezes, trarão exatamente o que precisamos. Esta última característica, de obtermos exata 
e somente aquilo que necessitamos é que faz a grande diferença entre um servidor de 
arquivos, que envia pela rede o arquivo todo, e um gerenciador de bancos de dados, que 
envia somente o suficiente. 
 
Usando Letras 
Usando Strings em select e Apelidos para colunas" 
6. SELECT