Existem tantos tipos diferentes de produtos SQL que você pode simplesmente tirar as mangas e começar sem cuidar do resto. Mas se você quiser usar ASP e SQL ao mesmo tempo, poderá ficar tonto.
MySQL, SQL Server e mSQL são excelentes ferramentas SQL, mas infelizmente você não pode usá-las para criar instruções SQL práticas em um ambiente ASP. No entanto, você pode usar seu próprio conhecimento de Access e habilidades de Access correspondentes, juntamente com nossas dicas e truques. Acredito que você será capaz de adicionar SQL com sucesso à sua página da web ASP.
1. Instrução SELECTNo mundo SQL, a operação mais básica é a instrução SELECT. Ao usar SQL diretamente em uma ferramenta de banco de dados, muitas pessoas estarão familiarizadas com as seguintes operações:
SELECIONE o que
DE qualTabela
ONDE critérios
A execução da instrução acima cria uma consulta que armazena seus resultados.
Em arquivos de página ASP, você também pode usar a sintaxe geral acima, mas a situação é um pouco diferente. Ao programar em ASP, o conteúdo da instrução SELECT deve ser atribuído a uma variável como uma string:
SQL = "SELECIONE o que FROM whichTable WHERE critérios"
Ok, agora que você entende como o SQL “fala” no ASP, você pode seguir o mesmo método, desde que atenda às suas necessidades, os modos de consulta SQL tradicionais e as consultas condicionais podem ser úteis.
Por exemplo, suponha que você tenha uma tabela de dados em seu banco de dados chamada Produtos e agora queira recuperar todos os registros dessa tabela. Então você escreve o seguinte código:
SQL="SELECT * FROM Produtos"
O código acima - a função da instrução SQL é recuperar todos os dados da tabela - após a execução, todos os registros da tabela de dados serão selecionados. Porém, se você quiser recuperar apenas uma coluna específica da tabela, como p_name. Então você não pode usar o caractere curinga *. Você deve digitar o nome de uma coluna específica.
SQL ="SELECT p_name FROM Produtos"
Após executar a consulta acima, todo o conteúdo da coluna p_name da tabela Produtos será selecionado.
2. Use a cláusula WHERE para definir as condições de consultaÀs vezes, a recuperação de todos os registros do banco de dados pode atender apenas aos seus requisitos, mas na maioria dos casos, geralmente só precisamos obter parte dos registros. Como devemos projetar a consulta neste caso? É claro que será necessário pensar um pouco mais, sem mencionar que este artigo deliberadamente não quer que você use esse conjunto de registros de baixa qualidade.
Por exemplo, se você planeja recuperar apenas registros p_name e os nomes desses registros devem começar com a letra w, você usará a seguinte cláusula WHERE:
SQL ="SELECT p_name FROM Produtos WHERE p_name LIKE 'W%'"
A palavra-chave WHERE é seguida por condições usadas para filtrar dados. Com a ajuda dessas condições, apenas os dados que atendem a determinados critérios serão consultados. No exemplo acima, os resultados da consulta obterão apenas registros p_name cujos nomes começam com w.
No exemplo acima, o significado do símbolo de porcentagem (%) é instruir a consulta a retornar todas as entradas de registro que começam com a letra w e são seguidas por quaisquer dados ou mesmo nenhum dado. Portanto, ao executar a consulta acima, oeste e salgueiro serão selecionados na tabela Produtos e armazenados na consulta.
Como você pode ver, com um design cuidadoso de sua instrução SELECT, você pode limitar a quantidade de informações retornadas no conjunto de registros, e um pouco mais de reflexão sempre satisfará seus requisitos.
Este é apenas o começo para dominar o uso do SQL. Para ajudá-lo a dominar gradualmente o uso complexo de instruções SELECT, vamos dar uma olhada nos principais termos padrão: operadores de comparação. Esses itens são frequentemente usados quando você cria sua própria string SELECT para obter dados específicos.
Noções básicas da cláusula WHERE
Ao começar a criar uma cláusula WHERE, a maneira mais fácil é usar os símbolos de comparação padrão, que são <, <=, >, >=, <> e =. Obviamente, você entenderá rapidamente o significado e os resultados específicos do código a seguir:
SELECIONE * A PARTIR DE Produtos ONDE p_price >= 199,95
SELECIONE *FROM Produtos ONDE p_price <> 19,95
SELECIONE * DE Produtos ONDE p_versão = '4'
Nota: Você notará aqui que o número 4 na última frase do exemplo está entre aspas simples. A razão é esta: '4' neste exemplo é um tipo de texto e não um tipo numérico. Como você coloca a instrução SELECT entre aspas para atribuí-la como um valor a uma variável, também pode usar aspas na instrução.
operador de comparação
Os operadores de comparação especificam o intervalo de conteúdo dos dados a serem recuperados da tabela. Você pode usá-los para criar filtros para restringir o conjunto de registros apenas às informações importantes para uma determinada tarefa.
3. GOSTO, NÃO GOSTO e ENTREVocê viu o uso de LIKE no exemplo acima de remoção de registros começando com w. O predicado LIKE é um símbolo muito útil. No entanto, em muitos casos, usá-lo pode fornecer muitos dados, por isso é melhor usar seu cérebro para pensar mais sobre quais dados deseja obter antes de usá-los. Suponha que você queira extrair um número SKU de 5 dígitos que começa com 1 e termina com 5, então você pode usar o sublinhado (_) em vez do símbolo %:
SQL = "SELECT * FROM Produtos WHERE p_sku LIKE '1___5'"
O sublinhado representa qualquer caractere. Portanto, se você inserir "1 _ _ _ 5", sua pesquisa será limitada a 5 dígitos que correspondam ao padrão específico.
Se quiser fazer o oposto, encontre todas as entradas de SKU que não correspondam ao padrão "1_ _ _ 5". Então você só precisa adicionar NOT na frente de LIKE no exemplo de instrução agora.
ENTRE
Suponha que você queira recuperar dados dentro de um determinado intervalo e saiba o ponto inicial e final do intervalo com antecedência, então você também pode usar a palavra de julgamento BETWEEN. Agora vamos supor que você deseja selecionar registros no intervalo entre 1 e 10 em uma determinada tabela. Você pode usar BETWEEN da seguinte forma:
… ONDE ID ENTRE 1 E 10
Ou você pode usar as palavras de julgamento matemático com as quais já está familiarizado:
…ONDE ID >= 1 E ID >= 10
4. Declaração sindicalAs instruções SQL de que falamos até agora são relativamente simples. Se puderem ser consultadas por meio de um loop de conjunto de registros padrão, essas instruções também poderão atender a alguns requisitos mais complexos. No entanto, por que você precisa se limitar ao nível básico de apenas tentar? Você pode adicionar outros símbolos, como AND, OR e NOT para completar funções mais poderosas.
Tomemos a seguinte instrução SQL como exemplo:
SQL ="SELECT c_firstname, c_lastname, c_email FROM clientes ONDE c_email ESTÁ
NÃO NULO E c_purchase = '1' OU c_purchase = '2' E c_lastname LIKE
'UM%'"
Com base no seu conhecimento atual de SQL, o exemplo acima não é difícil de explicar, mas a instrução acima não permite que você veja claramente como as instruções condicionais são coladas em uma única instrução SQL.
declaração multilinha
Quando a instrução SQL é difícil de entender, você pode decompor a instrução inteira em várias linhas de código e, em seguida, adicionar gradualmente cada componente da instrução de consulta com base nas variáveis existentes e armazená-lo na mesma variável:
SQL = "SELECIONE c_nome, c_sobrenome, c_emailaddress, c_phone"
SQL = SQL & "DE clientes"
SQL = SQL & "WHERE c_firstname LIKE 'A%' e c_emailaddress NOT NULL"
SQL = SQL & "ORDER BY c_lastname, c_firstname"
Na última frase, a variável SQL contém a seguinte instrução SELECT completa:
"SELECIONE c_firstname, c_lastname, c_emailaddress, c_phone FROM clientes
WHERE c_firstname LIKE 'A%' e c_emailaddress NO NULL ORDER BY c_lastname,
c_nome"
Depois que toda a frase for dividida conforme mostrado acima, é obviamente muito mais fácil de ler! Ao depurar, você pode preferir digitar mais alguns caracteres para tornar o programa mais legível. Mas é preciso lembrar que é necessário adicionar espaços antes de fechar as aspas ou depois de abrir as aspas, para evitar juntar várias palavras na concatenação das strings.
5. Comece a execução
Depois de aprender a estrutura e o propósito da instrução SELECT, é hora de aprender como usá-la. Dependendo da ferramenta de banco de dados à sua disposição, isso pode significar pressionar um botão que diz “Ir”. Em uma página da Web ASP, as instruções SQL podem ser executadas imediatamente ou chamadas como procedimentos armazenados.
Depois de criar a instrução SQL, você ainda precisará acessar os resultados da consulta. Obviamente, a chave aqui é o conjunto de registros ASP. Ao usar um conjunto de registros não SQL, o código para criar o conjunto de registros geralmente é semelhante a este:
Dim objRec
Definir objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "clientes", objConn, 0, 1, 2
Se você estiver familiarizado com ASP, o código acima será familiar para você. Você deve saber que “clientes” significa o nome de uma tabela de dados no banco de dados que você abre.
Conjunto de registros aberto
Para aproveitar ao máximo suas habilidades SQL mais familiares, você precisará adaptar o conjunto de registros mais comumente usado em páginas da Web ASP regulares:
Dim objRec
Definir objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open SQL, objConn, 0, 1, 2
A única modificação aqui é em objRec.Open, após a qual o nome da tabela de dados a ser consultada é substituído por uma variável contendo a instrução SQL.
Uma das vantagens desta abordagem é que você pode especificar o tipo de cursor (mostrado como 0, 1, 2 acima).
Executar SQL
Você pode criar um conjunto de registros executando uma instrução SQL com uma linha compacta de código. Aqui está a sintaxe:
Dim objRec
definir objRec = objConn.Execute (SQL)
No exemplo acima, o SQL que você vê é a variável na qual você armazena sua própria instrução SQL SELECT. Esta linha de código “executa” uma instrução SQL (ou consulta o banco de dados), seleciona dados e os armazena em um conjunto de registros, neste caso a variável objRec. A principal desvantagem dessa abordagem é que você não pode escolher o tipo de cursor que deseja usar. Por outro lado, os conjuntos de registros são sempre abertos com um cursor para frente.
Por causa dos cursores, talvez você queira se familiarizar com dois métodos de criação de um conjunto de registros. Executar a consulta diretamente economiza o tempo gasto digitando caracteres, mas então você terá que usar o cursor padrão, o que pode encontrar problemas que muitas vezes não funcionam corretamente. Não importa qual método você use, a maior diferença entre os dois é a simplicidade do código. Independentemente de quais campos você obtém, quais são seus padrões ou como você armazena os dados, o conjunto de registros no estilo SQL será muito menor em tamanho do que o conjunto de registros padrão aberto no ASP, e muito menos no Simplicity. Afinal, ao filtrar os dados, você elimina testes se-então demorados e possíveis loops.
Escrever SQL de teste
Aqui está um truque. Muitos programadores ASP profissionais estão acostumados a "escrever" suas próprias instruções SQL ao testar páginas da web. Fazer isso pode ajudá-lo a depurar seu código porque você pode ver a string sendo passada ao servidor para execução. E tudo que você precisa fazer é adicionar Response.WriteyourVariable para exibir as informações relevantes na tela. Você deve incluir essas informações ao enviar uma pergunta relacionada a SQL ao grupo de discussão do ASP.
6. Consulta de armazenamentoQuando sua consulta é relativamente simples, não é necessário muito esforço para criar uma instrução SQL do zero sempre. No entanto, a situação é diferente com consultas complexas. Começar do zero sempre produzirá muitos erros de desenvolvimento. Portanto, depois que o SQL estiver funcionando perfeitamente, é melhor salvá-los e chamá-los quando necessário. Dessa forma, mesmo para uma consulta simples, você pode usar a instrução de consulta armazenada a qualquer momento.
Suponha que você tenha que fazer um relatório semanal para sua equipe, apontando os problemas atuais de suporte ao negócio. Esses dados precisam ser selecionados em seu banco de dados, e os registros devem ser selecionados de acordo com a data, e classificados de acordo com a categoria de problemas de suporte adotados. sua equipe. Depois de criar essa consulta, por que você precisaria reescrevê-la toda semana? Em vez de criar a consulta na sua página HTML, você deve usar a ferramenta de banco de dados para criar a consulta e salvá-la.
Você pode então usar o atributo ActiveCommand para inserir a consulta em sua página ASP. Você pode pensar que não é interessante na primeira ou na segunda vez, mas na verdade são apenas algumas linhas de código:
Definir objSQ = Server.CreateObject ("ADODB.Command")
objSQ.ActiveConnection = "nomedobanco de dados"
objSQ.CommandText = "storedQueryName"
objSQ.CommandType = adCmdStoredProc
definir objRec = objSQ.Execute
Observe que usar adCmdStoredProc significa que você incluiu o arquivo adovbs.inc na página. Este arquivo define constantes de acesso que você pode acessar por nome em vez de número. Basta incluir o arquivo na página (<!--#INCLUDE -->) e então você pode usar um nome como adCmdStoredProc. Dessa forma, será mais fácil entender o que significa a consulta armazenada acima quando você a vir novamente no futuro.