Usando la sintaxis SELECT en ADO
Autor:Eve Cole
Fecha de actualización:2009-05-30 19:54:37
SELECCIONAR expresión
A continuación, veamos la expresión SELECT. SELECT se utiliza para buscar registros que cumplan condiciones específicas en la tabla. La sintaxis es la siguiente:
SELECT [palabra clave] { * | nombre de la tabla.* | [nombre de la tabla.] nombre del campo 1 [alias AS 1] [, [nombre de la tabla.] nombre del campo 2 [alias AS 2] [, ...]]}
FROM expresión de tabla [, ...] [EN tabla externa]
[DÓNDE... ]
[GRUPO POR... ]
[TENIENDO...]
[ORDENAR POR... ]
[CON OPCIÓN DE ACCESO DE PROPIEDAD]
Palabra clave: se puede utilizar para limitar la cantidad de registros devueltos y se puede configurar en TODOS, DISTINCT, DISTINCTROW o TOP. Si no se especifica ningún predicado, el valor predeterminado es TODOS.
*: Seleccionar todos los campos.
Alias: reemplaza el nombre del campo original en la tabla.
Expresión de tabla: uno o más nombres de tablas separados por comas.
Tabla externa: si la tabla no existe en la tabla actual, se debe configurar el nombre de la tabla que contiene la tabla en la operación de tabla.
La ejecución de la expresión SELECT no cambiará los datos existentes en la tabla.
La sintaxis más básica de una expresión SELECT es:
SELECCIONAR * DE la expresión de la tabla
Puede utilizar un asterisco (*) para seleccionar todos los campos de una tabla. Por ejemplo, el siguiente ejemplo selecciona todos los campos de la tabla [Producto]:
SELECCIONAR * DE productos
Cuando el nombre de un campo contiene espacios o signos de puntuación, debe estar entre corchetes [ ]. Por ejemplo:
SELECCIONAR [Productos informáticos]
Si el nombre del campo en la cláusula FROM contiene varias tablas, debe agregar el nombre de la tabla y el operador de punto (.) antes del nombre del campo, es decir, nombre de la tabla.nombre del campo. Por ejemplo, el siguiente ejemplo selecciona el campo [Precio] de la tabla [Producto] y el campo [Cantidad] de la tabla [Pedido]:
SELECCIONAR producto.precio, pedido.cantidad
DE productos, pedidos
DONDE producto.código = pedido.código
Cuando usa el objeto Recordset, Recordset no reconoce el formato rs (nombre de tabla. nombre de campo), es decir, rs ("producto. precio") causará un error y debe usar AS para establecer el alias del campo. nombre. Por ejemplo:
SELECCIONAR producto.precioAS precio, pedido.cantidadAS cantidad
DE productos, pedidos
DONDE producto.código = pedido.código
De esta forma, puedes utilizar rs ("precio") y rs ("cantidad") para leer los datos de sus campos.
Sintaxis relacionada con expresiones SELECT:
Palabras clave: TODOS/ DISTINCT/ DISTINCTROW/ TOP.
DÓNDE: busque registros de datos en la tabla DESDE que cumplan condiciones específicas. DÓNDE puede utilizar los siguientes operadores ENTRE, ME GUSTA y EN:
Entre...Y: determina si el valor de la expresión se encuentra dentro del rango especificado.
Me gusta: busque palabras clave coincidentes.
Expresión IN: rango limitado.
Expresión NOT IN: Indica que no pertenece al rango especificado.
Cláusula ORDER BY: puede configurar los campos de clasificación.
Cláusula GROUP BY: Realiza estadísticas sobre los resultados de la consulta.
Cláusula HAVING: Se utiliza en la expresión SELECT para filtrar registros que han sido estadísticas GROUP BY.
Unión: se pueden combinar los resultados de varios conjuntos de consultas.
UNIRSE: Une registros de campo en dos tablas.
Subconsulta: La expresión puede incluir una expresión SELECT.
Seleccionar...En: crea una tabla generada basada en los resultados de la consulta.
Los detalles son los siguientes:
TODOS/DISTINCT/DISTINCTROW/TOP palabras clave
Al utilizar la consulta SELECT, puede agregar palabras clave para seleccionar los registros que se consultan. como sigue:
TODOS: Devuelve todos los registros.
DISTINTO: Cuando hay registros duplicados en el campo especificado, solo se devolverá un registro y los registros no se duplicarán.
DISTINCTROW: Ninguno de los registros en el campo especificado se devolverá si hay duplicados.
ARRIBA: Devuelve los registros anteriores o porcentajes de registros.
La sintaxis es la siguiente:
SELECCIONAR [TODO | DISTINTO | DISTINCTROW | [ARRIBA n [POR CIENTO]]]
DE la mesa
TODOS devuelve todos los registros. Cuando no se agrega ninguna palabra clave, tiene el mismo significado que agregar TODOS y se devolverán todos los registros. Por ejemplo, los dos ejemplos siguientes tienen los mismos resultados de ejecución y ambos devuelven todos los registros de la tabla de productos:
SELECCIONAR TODO * DE productos
El resultado de la ejecución es el mismo que:
SELECCIONAR * DE productos
DISTINCT no selecciona datos duplicados en el campo especificado. Después de usar DISTINCT, los resultados de la consulta enumerarán el valor de los datos de cada campo después de SELECT DISTINCT. Si son iguales, solo se tomará un registro. En otras palabras, no habrá duplicación de datos en el campo especificado. Por ejemplo, hay algunos productos con el mismo nombre de producto en la tabla de productos y la expresión SQL de DISTINCT solo devolverá un registro cuyo campo tenga los mismos datos de nombre de producto:
SELECCIONE el nombre del producto DISTINTO DEL producto
Si no incluye DISTINCT, la consulta del ejemplo anterior devolverá varios registros que contienen el mismo nombre de producto.
Si se especifican varios campos después de la cláusula SELECT DISTINCT, los valores combinados de todos los campos en los resultados de la consulta no se repetirán.
DISTINCTROW no devuelve todos los registros duplicados del campo especificado.
TOP n [PERCENT], devuelve los registros anteriores o porcentaje de registros. El orden de clasificación se puede especificar mediante la cláusula ORDER BY. Por ejemplo, busque los nombres de los 10 mejores estudiantes:
SELECCIONE LOS 10 MEJORES Nombres
DE estudiantes
ORDENAR POR puntuaciones
Si no incluye la cláusula ORDER BY, la consulta devolverá 10 registros arbitrarios de la tabla de Estudiantes.
TOP no elige entre los mismos valores. Si los resultados 10 y 11 son iguales, la consulta devolverá 11 registros.
Puede utilizar PORCENTAJE para establecer los registros de los primeros porcentajes, por ejemplo, para encontrar los nombres del 10% de los mejores estudiantes:
SELECCIONE EL 10 POR CIENTO SUPERIOR Nombre
DE estudiantes
ORDENAR POR puntuaciones
Veamos un ejemplo del uso de este comando SQL en un programa ASP.
Puede usar Distinct para buscar registros únicos. Por ejemplo, el programa ASP rs7.asp es el siguiente: [Insertar en el producto (nombre en código, nombre) Seleccione Nombre en código distinto, nombre Del producto donde nombre en código = 'C2000'] Usando Distinct. e Insertar en, el nuevo nombre del código es registros C2000:
<%
'Código distinto, el nombre solo determina el código, si los nombres son iguales, solo agrega un registro si son iguales
sql = "Insertar en el producto (nombre en clave, nombre) Seleccione Nombre en clave distinto, nombre Del producto donde código='C2000'"
Establecer a = conn1.Execute(sql)
Establecer rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Seleccione * del producto donde código = 'C2000'"
rs3.Abrir sql,conn1,1,1,1
%>
<TABLA COLSPAN=8 CELLPADDING=5 BORDE=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Código</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nombre</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Precio</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Cantidad</FONT></TD>
</TR>
<% Hacer mientras no rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("nombre en clave")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("nombre")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("precio")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("cantidad")%></TD>
</TR>
<%
rs3.MoverSiguiente
Bucle
rs3.Cerrar
%>
</TABLA>
DÓNDE
WHERE busca registros de datos que cumplan condiciones específicas en la tabla FROM se utiliza en expresiones SELECT, UPDATE o DELETE.
Si la cláusula WHERE no se especifica en la consulta SELECT, se devolverán todos los datos de la tabla. Si consulta varias tablas en SELECT sin utilizar la cláusula WHERE o la cláusula JOIN, el resultado de la consulta será el producto de los datos de varias tablas.
DÓNDE establece condiciones específicas, tales como:
DESDE producto DONDE Categoría = 'Computadora': Indica seleccionar [Producto] cuya [Categoría] es [Computadora]
DONDE Precio entre 1000 y 5000: Indica que el precio está entre 1000 y 5000.
Una cláusula WHERE puede contener hasta 40 expresiones operativas, que están conectadas mediante operadores lógicos como AND u OR.
Al establecer condiciones específicas, agregue diferentes símbolos antes y después según el tipo de campo, por ejemplo:
Texto: agregue comillas simples antes y después, por ejemplo, WHERE categoría = 'Computadora'.
Números: No hay signos antes y después, como DÓNDE cantidad > 100.
Fecha: agregue signos # antes y después, por ejemplo, DONDE fecha = #15/5/99#.
DÓNDE puede utilizar los siguientes operadores ENTRE, ME GUSTA y EN.