Hay tantos tipos diferentes de productos SQL que puede simplemente quitarse la manga y comenzar sin ocuparse del resto. Pero si desea utilizar ASP y SQL al mismo tiempo, es posible que se sienta mareado.
MySQL, SQL Server y mSQL son excelentes herramientas SQL, pero desafortunadamente, no puede usarlas para crear declaraciones SQL prácticas en un entorno ASP. Sin embargo, puede utilizar sus propios conocimientos de Access y las habilidades de Access correspondientes. Junto con nuestros consejos y trucos, creo que podrá agregar SQL con éxito a su página web ASP.
1. Declaración SELECTEn el mundo de SQL, la operación más básica es la instrucción SELECT. Al utilizar SQL directamente en una herramienta de base de datos, muchas personas estarán familiarizadas con las siguientes operaciones:
SELECCIONA qué
DE cualMesa
DONDE criterios
La ejecución de la declaración anterior crea una consulta que almacena sus resultados.
En archivos de páginas ASP, también puede utilizar la sintaxis general anterior, pero la situación es ligeramente diferente. Cuando se programa en ASP, el contenido de la instrucción SELECT debe asignarse a una variable como una cadena:
SQL = "SELECCIONE qué DE qué Tabla DONDE criterios"
Bien, ahora que comprende la forma en que SQL "habla" en ASP, puede seguir el mismo método, siempre que satisfaga sus necesidades, se pueden utilizar los modos de consulta SQL tradicionales y las consultas condicionales.
Por ejemplo, suponga que tiene una tabla de datos en su base de datos llamada Productos y ahora desea recuperar todos los registros de esta tabla. Luego escribes el siguiente código:
SQL = "SELECCIONAR * DE Productos"
El código anterior: la función de la declaración SQL es recuperar todos los datos de la tabla; después de la ejecución, se seleccionarán todos los registros de la tabla de datos. Sin embargo, si solo desea recuperar una columna específica de la tabla, como p_name. Entonces no puede utilizar el carácter comodín *. Debe escribir el nombre de una columna específica. El código es el siguiente.
SQL = "SELECCIONE p_name DE Productos"
Después de ejecutar la consulta anterior, se seleccionará todo el contenido de la columna p_name en la tabla Productos.
2. Utilice la cláusula WHERE para establecer las condiciones de consulta.A veces, recuperar todos los registros de la base de datos puede satisfacer sus necesidades, pero en la mayoría de los casos normalmente solo necesitamos obtener parte de los registros. ¿Cómo debemos diseñar la consulta en este caso? Por supuesto, será necesario pensar un poco más, sin mencionar que este artículo deliberadamente no quiere que uses ese conjunto de registros de mierda.
Por ejemplo, si solo planea recuperar registros p_name y los nombres de estos registros deben comenzar con la letra w, entonces utilizará la siguiente cláusula WHERE:
SQL ="SELECCIONE p_name DE Productos DONDE p_name COMO 'W%'"
La palabra clave WHERE va seguida de las condiciones utilizadas para filtrar datos. Con la ayuda de estas condiciones, solo se consultarán los datos que cumplan ciertos criterios. En el ejemplo anterior, el resultado de la consulta solo obtendrá registros p_name cuyos nombres comiencen con w.
En el ejemplo anterior, el significado del símbolo de porcentaje (%) es indicar a la consulta que devuelva todas las entradas de registro que comiencen con la letra w y sean seguidas por cualquier dato o incluso ningún dato. Por lo tanto, al ejecutar la consulta anterior, west y willow se seleccionarán de la tabla Productos y se almacenarán en la consulta.
Como puede ver, con un diseño cuidadoso de su declaración SELECT, puede limitar la cantidad de información devuelta en el conjunto de registros, y una mayor reflexión siempre satisfará sus requisitos.
Estos son sólo el comienzo para dominar el uso de SQL. Para ayudarlo a dominar gradualmente el uso complejo de las declaraciones SELECT, echemos un vistazo a los términos estándar clave: operadores de comparación. Estas cosas se usan a menudo cuando construye su propia cadena SELECT para obtener datos específicos.
Conceptos básicos de la cláusula WHERE
Al comenzar a crear una cláusula WHERE, la forma más sencilla es utilizar los símbolos de comparación estándar, que son <, <=, >, >=, <> y =. Obviamente, comprenderá rápidamente el significado y los resultados específicos del siguiente código:
SELECCIONAR * DE Productos DONDE p_price >= 199.95
SELECCIONAR * DE Productos DONDE p_price <> 19,95
SELECCIONAR * DE Productos DONDE p_version = '4'
Nota: Notarás aquí que el número 4 en la última oración de ejemplo tiene comillas simples alrededor. La razón es esta: '4' en este ejemplo es un tipo de texto y no un tipo numérico. Debido a que usted incluye la instrucción SELECT entre comillas para asignarla como valor a una variable, también puede usar comillas dentro de la declaración.
operador de comparación
Los operadores de comparación especifican el rango de contenido de los datos que se recuperarán de la tabla. Puede usarlos para crear filtros para limitar el conjunto de registros a solo la información que le interesa para una tarea determinada.
3. ME GUSTA, NO ME GUSTA y ENTREHa visto el uso de LIKE en el ejemplo anterior de eliminación de registros que comienzan con w. El predicado LIKE es un símbolo muy útil. Sin embargo, usarlo puede proporcionarle demasiados datos en muchos casos, por lo que es mejor usar su cerebro para pensar más en qué datos desea obtener antes de usarlo. Supongamos que desea extraer un número SKU de 5 dígitos que comienza con 1 y termina con 5, luego puede usar el guión bajo (_) en lugar del símbolo %:
SQL = "SELECCIONAR * DE Productos DONDE p_sku COMO '1___5'"
El guión bajo representa cualquier carácter. Entonces, si ingresa "1 _ _ _ 5", su búsqueda se limitará a 5 dígitos que coincidan con el patrón específico.
Si desea hacer lo contrario, busque todas las entradas de SKU que no coincidan con el patrón "1_ _ _ 5". Entonces solo necesita agregar NOT delante de LIKE en el ejemplo de declaración de ahora.
ENTRE
Supongamos que desea recuperar datos dentro de un cierto rango y conoce el punto inicial y final del rango de antemano, entonces también podría usar la palabra de juicio ENTRE. Ahora supongamos que desea seleccionar registros en el rango entre 1 y 10 en una tabla determinada. Puede utilizar ENTRE de la siguiente manera:
…DONDE ID ENTRE 1 Y 10
O puede utilizar las palabras de juicio matemático con las que ya está familiarizado:
…DONDE ID >= 1 Y ID >= 10
4. Declaración sindicalLas declaraciones SQL de las que hemos hablado hasta ahora son relativamente simples. Si se pueden consultar a través de un bucle de conjunto de registros estándar, estas declaraciones también pueden cumplir con algunos requisitos más complejos. Sin embargo, ¿por qué tienes que ceñirte al nivel básico de simplemente intentarlo? Puedes agregar otros símbolos, como AND, OR y NOT para completar funciones más potentes.
Tome la siguiente declaración SQL como ejemplo:
SQL ="SELECCIONE c_firstname, c_lastname, c_email DE los clientes DONDE ESTÁ c_email
NO NULO Y c_purchase = '1' O c_purchase = '2' Y c_lastname ME GUSTA
'A%'"
Según su conocimiento actual de SQL, el ejemplo anterior no es difícil de explicar, pero la declaración anterior no le permite ver claramente cómo las declaraciones condicionales se unen en una sola declaración SQL.
declaración de varias líneas
Cuando la declaración SQL es difícil de entender, es posible que desee descomponer la declaración completa en varias líneas de código y luego agregar gradualmente cada componente de la declaración de consulta según las variables existentes y almacenarlo en la misma variable:
SQL = "SELECCIONE c_nombre, c_apellido, c_dirección de correo electrónico, c_teléfono"
SQL = SQL y "DE clientes"
SQL = SQL & "DONDE c_firstname COMO 'A%' y c_emailaddress NO NULL"
SQL = SQL & "ORDENAR POR c_apellido, c_primer nombre"
En la última oración, la variable SQL contiene la siguiente declaración SELECT completa:
"SELECCIONE c_firstname, c_lastname, c_emailaddress, c_phone DE los clientes
DONDE c_firstname COMO 'A%' y c_emailaddress NO HAY ORDEN NULO POR c_lastname,
c_nombre"
Después de desglosar la oración completa como se muestra arriba, ¡obviamente es mucho más fácil de leer! Al depurar, es posible que prefiera escribir algunos caracteres más para que el programa sea más legible. Pero debe recordar que debe agregar espacios antes de cerrar las comillas o después de abrirlas, para asegurarse de no juntar varias palabras cuando las cadenas están conectadas.
5. Iniciar la ejecución
Después de conocer la estructura y el propósito de la declaración SELECT, es hora de aprender a usarla. Dependiendo de la herramienta de base de datos que tenga a su disposición, esto podría significar presionar un botón que dice "Ir". En una página web ASP, las declaraciones SQL se pueden ejecutar inmediatamente o llamarse como procedimientos almacenados.
Una vez que cree la declaración SQL, aún tendrá que acceder a los resultados de su consulta. Obviamente, la clave aquí es el conjunto de registros ASP. Cuando se utiliza un conjunto de registros que no es SQL, el código para crear el conjunto de registros normalmente tiene este aspecto:
ObjRec tenue
Establecer objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "clientes", objConn, 0, 1, 2
Si está familiarizado con ASP, el código anterior le resultará familiar. Debe saber que "clientes" significa el nombre de una tabla de datos en la base de datos que abre.
Abrir conjunto de registros
Para aprovechar al máximo sus conocimientos de SQL más familiares, deberá adaptar el conjunto de registros más comúnmente utilizado en las páginas web ASP normales:
ObjRec tenue
Establecer objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open SQL, objConn, 0, 1, 2
La única modificación aquí está en objRec.Open, después de lo cual el nombre de la tabla de datos a consultar se reemplaza con una variable que contiene la declaración SQL.
Una de las ventajas de este enfoque es que puede especificar el tipo de cursor (que se muestra como 0, 1, 2 arriba).
Ejecutar SQL
Puede crear un conjunto de registros ejecutando una instrucción SQL con una línea de código compacta. Aquí está la sintaxis:
ObjRec tenue
establecer objRec = objConn.Execute(SQL)
En el ejemplo anterior, el SQL que ve es la variable en la que almacena su propia instrucción SQL SELECT. Esta línea de código "ejecuta" una declaración SQL (o consulta la base de datos), selecciona datos y los almacena en un conjunto de registros, en este caso la variable objRec. La principal desventaja de este enfoque es que no puedes elegir el tipo de cursor que deseas utilizar. Por el contrario, los conjuntos de registros siempre se abren con un cursor hacia adelante.
Debido a los cursores, es posible que desee familiarizarse con dos métodos para crear un conjunto de registros. Ejecutar la consulta directamente ahorra el tiempo dedicado a escribir caracteres, pero luego hay que usar el cursor predeterminado, lo que puede encontrar problemas que a menudo no funcionan correctamente. No importa qué método utilice, la mayor diferencia entre los dos es simplemente si el código es conciso o no. Independientemente de qué campos obtenga, cuáles sean sus estándares o cómo almacene los datos, el conjunto de registros de estilo SQL será mucho más pequeño que el conjunto de registros estándar abierto en ASP, y mucho menos fácil de operar. Después de todo, al filtrar los datos, se eliminan las pruebas si-entonces que consumen mucho tiempo y los posibles bucles.
Escribir SQL de prueba
Aquí hay un truco: muchos programadores ASP profesionales están acostumbrados a "escribir" sus propias declaraciones SQL cuando prueban páginas web. Hacer esto puede ayudarle a depurar su código porque puede ver la cadena que se pasa al servidor para su ejecución. Y todo lo que tienes que hacer es agregar Response. WriteyourVariable para mostrar la información relevante en la pantalla. Debe incluir esta información cuando envíe una pregunta relacionada con SQL al grupo de discusión de ASP.
6. Consulta de almacenamientoCuando su consulta es relativamente simple, no requiere mucho esfuerzo crear una declaración SQL desde cero cada vez. Sin embargo, la situación es diferente con consultas complejas, comenzar desde cero cada vez producirá muchos errores de desarrollo. Por lo tanto, una vez que el SQL funcione sin problemas, será mejor que los guarde y los llame cuando sea necesario. De esta manera, incluso para una consulta simple, puede utilizar la declaración de consulta almacenada en cualquier momento.
Suponga que tiene que hacer un informe semanal a su equipo, señalando los problemas actuales de soporte comercial. Estos datos deben seleccionarse de su base de datos y los registros deben seleccionarse según la fecha y ordenarse según la categoría de problema de soporte adoptada por su equipo. equipo. . Una vez que diseñe esta consulta, ¿por qué necesitaría reescribirla cada semana? En lugar de crear la consulta en su página HTML, debe usar su herramienta de base de datos para crear la consulta y guardarla.
Luego puede usar el atributo ActiveCommand para insertar la consulta en su página ASP. Puede que pienses que no es interesante la primera o segunda vez, pero en realidad son solo unas pocas líneas de código:
Establecer objSQ = Server.CreateObject ("ADODB.Command")
objSQ.ActiveConnection = "nombre de la base de datos"
objSQ.CommandText = "nombre de consulta almacenada"
objSQ.CommandType = adCmdStoredProc
establecer objRec = objSQ.Execute
Tenga en cuenta que usar adCmdStoredProc significa que ha incluido el archivo adovbs.inc en la página. Este archivo define constantes de acceso a las que puede acceder por nombre en lugar de por número. Simplemente incluya el archivo en la página (<!--#INCLUDE -->) y luego podrá usar un nombre como adCmdStoredProc. De esta manera, le resultará más fácil comprender qué significa la consulta almacenada anterior cuando la vea en el futuro.