Reglas para escribir valores de búsqueda
Actualización: noviembre 2007
En este tema se tratan las convenciones que hay que utilizar para especificar los siguientes tipos de valores literales en una condición de búsqueda:
Valores de texto
Valores numéricos
Fechas
Valores lógicos
Nota: |
---|
La información de este tema procede de las reglas de SQL-92 estándar. Sin embargo, cada base de datos puede implementar SQL de manera propia. Por tanto, estas instrucciones podrían no ser válidas en algunos casos. Si tiene dudas sobre cómo se escriben valores de búsqueda en una base de datos específica, consulte la documentación de la base de datos. |
Realizar búsquedas con valores de texto
Para escribir valores de texto en las condiciones de búsqueda, debe tener en cuenta las siguientes instrucciones:
Comillas Escriba los valores de texto entre comillas sencillas, como en el siguiente ejemplo de apellido:
'Smith'
Cuando escriba una condición de búsqueda en el panel Criterios, sólo tiene que escribir el valor del texto; el Diseñador de consultas y vistas agregará automáticamente las comillas sencillas.
Nota: En algunas bases de datos, los términos entre comillas sencillas se interpretan como valores literales, mientras que los términos entre comillas dobles se interpretan como objetos de base de datos, como las referencias a tablas o columnas. Por tanto, aunque el Diseñador de consultas y vistas puede aceptar términos entre comillas dobles, se podrían interpretar de una forma distinta de la esperada.
Apóstrofos incrustados Si los datos que busca contienen una comilla sencilla (un apóstrofo), puede escribir dos comillas sencillas para indicar que lo que desea indicar con la comilla sencilla es un valor literal y no un delimitador. Por ejemplo, la siguiente condición busca el valor "Swann's Way":
='Swann''s Way'
Límites de longitud Cuando escriba cadenas largas, su longitud no debe superar el límite admitido por la base de datos para instrucciones SQL.
Distinción entre mayúsculas y minúsculas Debe tener en cuenta las reglas de distinción de mayúsculas y minúsculas de la base de datos que esté utilizando. Esta base de datos determinará si las búsquedas de texto distinguen mayúsculas de minúsculas. Por ejemplo, algunas bases de datos interpretan que el operador "=" implica una coincidencia de mayúsculas y minúsculas, pero otras permiten coincidencias de cualquier combinación de caracteres en mayúsculas y minúsculas.
Si no está seguro de que la base de datos distinga mayúsculas de minúsculas en las búsquedas, puede utilizar las funciones UPPER o LOWER en la condición de búsqueda para convertir las mayúsculas y minúsculas de los datos de búsqueda, como se indica en el siguiente ejemplo:
WHERE UPPER(lname) = 'SMITH'
Para obtener información detallada sobre las funciones de conversión a mayúsculas y minúsculas, vea Funciones de expresiones.
Realizar búsquedas con valores numéricos
Para escribir valores numéricos en las condiciones de búsqueda, debe tener en cuenta las siguientes instrucciones:
Comillas No debe escribir números entre comillas.
Caracteres no numéricos No incluya caracteres no numéricos, salvo el separador decimal (el definido en el cuadro de diálogo Configuración regional del Panel de control de Windows) y el signo negativo (-). No incluya símbolos de agrupación de dígitos (como el punto entre los millares) ni símbolos de moneda.
Marcas decimales Si escribe números enteros, puede incluir una marca decimal, independientemente de si el valor que busca es un número entero o real.
Notación científica Puede utilizar la notación científica para escribir números muy grandes o muy pequeños, como en el siguiente ejemplo:
> 1.23456e-9
Realizar búsquedas con fechas
El formato empleado para escribir fechas dependerá de la base de datos utilizada y del panel del Diseñador de consultas y vistas en el que escriba la fecha.
Nota: |
---|
Si no sabe qué formato utiliza el origen de datos, escriba una fecha en la columna Filtro del panel Criterios en cualquier formato. El diseñador convertirá la mayoría de estas entradas al formato adecuado. |
El Diseñador de consultas y vistas permite trabajar con los siguientes formatos de fecha:
Específico de la configuración regional Formato especificado para las fechas en el cuadro de diálogo Propiedades de la Configuración regional de Windows.
Específico de la base de datos Cualquier formato válido para la base de datos.
Fecha ANSI estándar Formato que utiliza llaves, el marcador 'd' para designar la fecha y una cadena de fecha, como en el siguiente ejemplo:
{ d '1990-12-31' }
Fecha y hora ANSI estándar Similar a la fecha ANSI estándar, pero utiliza 'ts' en lugar de 'd' y agrega horas, minutos y segundos a la fecha (con un reloj de 24 horas), como en el siguiente ejemplo del 31 de diciembre de 1990:
{ ts '1990-12-31 00:00:00' }
En general, las bases de datos que representan las fechas mediante un tipo de datos de fecha real utilizan el formato de fecha estándar ANSI. En cambio, las bases de datos que admiten un tipo de datos datetime utilizan el formato de fecha y hora.
En la tabla siguiente se resumen los formatos de fecha que se pueden utilizar en los distintos paneles del Diseñador de consultas y vistas.
Panel |
Formato de fecha |
---|---|
Criterios |
Específico de la configuración regional Específico de la base de datos Estándar ANSI Las fechas escritas en el panel Criterios se convierten a un formato compatible con la base de datos en el panel SQL. |
SQL |
Específico de la base de datos Estándar ANSI |
Resultados |
Específico de la configuración regional |
Realizar búsquedas con valores lógicos
El formato de los datos lógicos varía de una base de datos a otra. Los valores False suelen almacenarse como cero (0). Los valores True suelen almacenarse, en la mayoría de los casos, como 1 y, en ocasiones, como –1. Se aplicarán las siguientes directrices cuando se introduzcan valores lógicos en las condiciones de búsqueda:
Para buscar un valor False, utilice un cero, como se indica en el siguiente ejemplo:
SELECT * FROM authors WHERE contract = 0
Si no está seguro del formato que debe utilizar al buscar un valor True, pruebe a utilizar 1, como se indica en el siguiente ejemplo:
SELECT * FROM authors WHERE contract = 1
Como alternativa, puede ampliar el ámbito de la búsqueda a cualquier valor distinto de cero, como se indica en el siguiente ejemplo:
SELECT * FROM authors WHERE contract <> 0