Usando a sintaxe SELECT no ADO
Autor:Eve Cole
Data da Última Atualização:2009-05-30 19:54:37
Expressão SELECIONADA
A seguir, vejamos a expressão SELECT. SELECT é usado para localizar registros que atendem a condições específicas na tabela.
SELECT [palavra-chave] { * | nome da tabela.* | [nome da tabela.] nome do campo 1 [alias do AS 1] [, [nome da tabela.] nome do campo 2 [alias do AS 2] [, ...]]}
FROM tabela expressão [, ...] [IN tabela externa]
[ONDE... ]
[GRUPAR POR...]
[TENDO...]
[ENCOMENDAR POR...]
[COM OPÇÃO DE ACESSO PROPRIETÁRIO]
Palavra-chave: pode ser usada para limitar o número de registros retornados e pode ser definida como ALL, DISTINCT, DISTINCTROW ou TOP. Se nenhum predicado for especificado, o valor padrão será ALL.
*: Selecione todos os campos.
Alias: substitua o nome do campo original na tabela.
Expressão de tabela: um ou mais nomes de tabelas separados por vírgula.
Tabela externa: Se a tabela não existir na tabela atual, o nome da tabela que contém a tabela na operação de tabela deve ser definido.
A execução da expressão SELECT não alterará os dados existentes na tabela.
A sintaxe mais básica de uma expressão SELECT é:
SELECT * FROM expressão de tabela
Você pode usar um asterisco (*) para selecionar todos os campos de uma tabela. Por exemplo, o exemplo a seguir seleciona todos os campos da tabela [Produto]:
SELECIONE * DOS produtos
Quando um nome de campo contém espaços ou sinais de pontuação, ele deve ser colocado entre colchetes [ ]. Por exemplo:
SELECIONE [Produtos de informática]
Se o nome do campo na cláusula FROM contiver várias tabelas, será necessário adicionar o nome da tabela e o operador ponto (.) antes do nome do campo, ou seja, nome da tabela.nome do campo. Por exemplo, o exemplo a seguir seleciona o campo [Preço] da tabela [Produto] e o campo [Quantidade] da tabela [Pedido]:
SELECIONE produto.preço, pedido.quantidade
DE produtos, pedidos
ONDE produto.código = pedido.código
Ao usar o objeto Recordset, o Recordset não reconhece o formato rs (nome da tabela. nome do campo), ou seja, rs ("produto. preço") causará um erro e você deve usar AS para definir o alias do campo nome. por exemplo:
SELECIONE produto.preçoAS preço, quantidade pedido.quantidadeAS
DE produtos, pedidos
ONDE produto.código = pedido.código
Desta forma, você pode utilizar rs (“preço”) e rs (“quantidade”) para ler os dados de seus campos.
Sintaxe relacionada às expressões SELECT:
Palavras-chave: TODOS/ DISTINTOS/ DISTINTOS/TOP.
ONDE: Encontre registros de dados na tabela FROM que atendam a condições específicas. WHERE pode usar os seguintes operadores BETWEEN, LIKE e IN:
Entre...E: determine se o valor da expressão está dentro do intervalo especificado.
Como: Encontre palavras-chave correspondentes.
Expressão IN: faixa limitada.
Expressão NOT IN: Indica que não pertence ao intervalo especificado.
Cláusula ORDER BY: você pode definir os campos de classificação.
Cláusula GROUP BY: Faça estatísticas sobre os resultados da consulta.
Cláusula HAVING: Usada na expressão SELECT para filtrar registros que foram estatísticas GROUP BY.
União: Os resultados de vários conjuntos de consultas podem ser combinados.
JOIN: Une registros de campo em duas tabelas.
Subconsulta: a expressão pode incluir uma expressão SELECT.
Selecione...Into: Crie uma tabela gerada com base nos resultados da consulta.
Os detalhes são os seguintes:
TODAS/DISTINCT/DISTINCTROW/TOP palavras-chave
Ao usar a consulta SELECT, você pode adicionar palavras-chave para selecionar os registros que estão sendo consultados. do seguinte modo:
TODOS: Retorna todos os registros.
DISTINTO: Quando houver registros duplicados no campo especificado, apenas um registro será retornado e os registros não serão duplicados.
DISTINCTROW: Nenhum dos registros no campo especificado será retornado se houver duplicatas.
TOP: Retorna os registros anteriores ou percentuais de registros.
A sintaxe é a seguinte:
SELECIONE [TODOS | DISTINTOS | DISTINTOS | [TOP n [PERCENT]]]
DA tabela
ALL retorna todos os registros. Quando nenhuma palavra-chave é adicionada, tem o mesmo significado que adicionar ALL e todos os registros serão retornados. Por exemplo, os dois exemplos a seguir têm os mesmos resultados de execução, ambos retornando todos os registros da tabela de produtos:
SELECIONE TODOS * DOS produtos
O resultado da execução é o mesmo que:
SELECIONE * DOS produtos
DISTINCT não seleciona dados duplicados no campo especificado. Após usar DISTINCT, os resultados da consulta listarão os valores dos dados de cada campo após SELECT DISTINCT. Se forem iguais, apenas um registro será obtido. Por exemplo, existem alguns produtos com o mesmo nome de produto na tabela de produtos, e a expressão SQL de DISTINCT retornará apenas um registro cujo campo possui os mesmos dados de nome de produto:
SELECIONE o nome do produto DISTINTO DO produto
Se você não incluir DISTINCT, o exemplo de consulta acima retornará vários registros contendo o mesmo nome de produto.
Se vários campos forem especificados após a cláusula SELECT DISTINCT, os valores combinados de todos os campos nos resultados da consulta não serão repetidos.
DISTINCTROW não retorna todos os registros duplicados do campo especificado.
TOP n [PERCENT], retorna os registros anteriores ou porcentagem de registros. A ordem de classificação pode ser especificada usando a cláusula ORDER BY. Por exemplo, encontre os nomes dos 10 melhores alunos:
SELECIONE OS 10 PRINCIPAIS Nomes
DOS alunos
Pontuações ORDER BY
Se você não incluir a cláusula ORDER BY, a consulta retornará 10 registros arbitrários da tabela Student.
TOP não escolhe entre os mesmos valores. Se o 10º e o 11º resultados forem iguais, a consulta retornará 11 registros.
Você pode usar PERCENT para definir os registros das primeiras porcentagens, por exemplo, para encontrar os nomes dos 10% melhores alunos:
SELECIONE OS 10 POR CENTO PRINCIPAIS Nome
DOS alunos
Pontuações ORDER BY
Vejamos um exemplo de uso deste comando SQL em um programa ASP.
Você pode usar Distinct para localizar registros exclusivos. Por exemplo, o programa ASP rs7.asp é o seguinte, [Inserir no produto (nome do código, nome) Selecione Nome do código distinto, nome Do produto onde nome do código = 'C2000'] Usando Distinct. e Insert Into, o novo codinome é registros C2000:
<%
'Código distinto, o nome apenas determina o código, se os nomes são iguais, apenas adiciona um registro se forem iguais
sql = "Inserir no produto (nome de código, nome) Selecione Nome de código distinto, nome Do produto onde código = 'C2000'"
Defina a = conn1.Execute(sql)
Definir rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Selecione * do produto onde code='C2000'"
rs3.Abrir sql,conn1,1,1,1
%>
<TABELA COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Código</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nome</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Preço</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Quantidade</FONT></TD>
</TR>
<% Faça enquanto não rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("codename")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("nome")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("preço")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("quantidade")%></TD>
</TR>
<%
rs3.MoveNext
Laço
rs3.Fechar
%>
</TABELA>
ONDE
WHERE procura registros de dados que atendam a condições específicas na tabela FROM. WHERE é usado em expressões SELECT, UPDATE ou DELETE.
Se a cláusula WHERE não for especificada na consulta SELECT, todos os dados da tabela serão retornados. Se você consultar diversas tabelas em SELECT sem usar a cláusula WHERE ou a cláusula JOIN, o resultado da consulta será o produto dos dados em diversas tabelas.
WHERE define condições específicas, como:
FROM produto WHERE Categoria = 'Computador': Indica a seleção de [Produto] cuja [Categoria] é [Computador]
ONDE Preço entre 1.000 e 5.000: Indica que o preço está entre 1.000 e 5.000.
Uma cláusula WHERE pode conter até 40 expressões operacionais, que são conectadas por operadores lógicos como AND ou OR.
Ao definir condições específicas, adicione símbolos diferentes antes e depois de acordo com o tipo de campo, por exemplo:
Texto: Adicione aspas simples antes e depois, por exemplo, WHERE categoria = 'Computador'.
Números: Sem sinais antes e depois, como ONDE quantidade > 100.
Data: Adicione # sinais antes e depois, por exemplo, WHERE data = #5/15/99#.
WHERE pode usar os seguintes operadores BETWEEN, LIKE e IN.