Entendido.

Este sitio utiliza cookies para analizar la navegación. Si continúa navegando se entiende que acepta su uso. Ver más detalles.";

Logo

Aprende Web

Crea y diseña tus sitios en la Web.

Manual de SQL

SQL es el lenguaje para trabajar con bases de datos en la web.


Y ahora tambien aprende a programar en C++ con Aprende Web C++

logo rss RSS. Suscribir canal.

Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net





Sobre ésta página

Ültima modificación: 29-01-2016.

Visitas este mes: 206

Visitas el mes pasado: 318

logo
WEB-GRAFÍA

Mi agradecimiento a las siguientes páginas Web. en las cuales me he basado para la elaboración de este manual:


Bases de datos
monografías.com
Curso MySQL
Curso MySQL de AulaFácil
MySQL con clase
conclase.net
Introducción a MySQL
ProgramacionWeb.net
Manual práctico de SQL
www.cepeu.edu.py
MySQL 5.0 Reference Manual
dev.mysql.com
SQL Tutorial
w3schools.com
Tutorial de SQL
desarrolloweb.com
Tutorial de SQL: Curso de SQL
sql.1keydata.com

Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.




SQL (IX)

Buscar datos

imagen sql

Concepto de búsqueda

Buscar un dato concreto en una tabla significa la mayoría de las veces que tenemos que conocer otros que están relacionados, normalmente conocemos un dato de un registro y queremos saber los demás. Por ejemplo en una tabla "agenda" conocemos de un registro el dato de la columna "nombre", pero desconocemos el dato de la columna "telefono".

Es decir seleccionamos sólamente los registros que cumplan ciertas condiciones, en el caso anterior, los registros cuya columna "nombre" tenga el valor que conocemos.


Búsqueda exacta

En una búsqueda exacta tenemos que dar un dato exacto de un registro para poder obtener los demás datos del mismo.

La sentencia para buscar uno o varios datos en la tabla, es la misma sentencia que utilizamos para ver la tabla, es decir, SELECT, pero añadiendole una condición mediante la palabra clave WHERE:

SELECT columna/s FROM nombre_tabla WHERE columnaX='valor'

La sentencia SELECT es la misma que hemos visto en la página anterior, a la que le hemos añadido una condición mediante WHERE. Lo que escribimos después de WHERE es la condición.

La condición indica en este caso que la columna que se llama "columnaX" debe tener un dato igual a 'valor'.

Hay varias maneras de buscar un dato o datos en una tabla, Lo que hemo visto anteriormente es una "búsqueda exacta", porque tenemos que dar un dato de forma exacta para encontrar otros. Es decir el dato 'valor' expresado en la condición, debe coincidir totalmente con el dato que haya en la columna.

Veamos un ejemplo con la tabla "artistas" de la base "mi_música" creada en páginas anteriores de este manual.

Queremos buscar el registro de "Dire Straits" (en la columna "artista") de la tabla artistas, para verlo completo. lo haremos mediante el siguiente código SQL:

SELECT * FROM artistas WHERE artista='Dire Straits'

Evidentemente el código PHP necesario para verlo en la página es algo más complejo, pero es similar al visto en la página anterior para ver la tabla completa con SELECT. Sería algo así:

$db=mysql_connect("localhost","root","");
mysql_select_db("mi_musica",$db);
$sql="SELECT * FROM artistas WHERE artista='Dire Straits' ";
$datos=mysql_query($sql,$db);
mysql_close($db);
while ($row=mysql_fetch_assoc($datos)) {
    foreach ($row as $clave=>$valor) {
       echo "$clave = $valor ... ";
       }
    echo "<br/>";
    }

El resultado nos da los datos del registro completo que buscamos,

id_artistas = 2 ... artista = Dire Straits ... info_artista = Banda de rock británica fundada por Mark Knopfler en 1977 ...


A pesar de que sabemos que sólo hay un registro coincidente seguimos empleando el bucle while por si apareciera algún otro registro con el mismo artista. Hagamos otro ejemplo. Ahora que sabemos que la id o número de identidad de este artista es el 2, busquemos todos los discos de este artista, para ello en la tabla discos buscamos los discos que en la columna "ref_artista" tengan como valor 2. Cambiamos en el código anterior la sentencia SQL (marcada en rojo) por esta otra:

SELECT * FROM discos WHERE ref_artista='2':

Tenemos dos registros coincidentes, que corresponden a los dos discos de este artista que tenemos en la base de datos, y que son los siguientes:

id_disco = 2 ... titulo = Brothers in arms ... ref_artista = 2 ... num_pistas = 9 ... info = Quinto disco de la banda ...

id_disco = 3 ... titulo = Money for Nothng ... ref_artista = 2 ... num_pistas = 12 ... info = Primer disco recopilación de la banda tras sus 5 discos anteriores. ...


Cuando el valor de la condición es un número podemos ponerlo con las comillas o sin ellas, las dos formas son correctas, por lo que podríamos haber escrito también:

SELECT * FROM discos WHERE ref_artista=2:


Estructura de la condicional WHERE

Lo que escribimos después de WHERE es una condición, cuando ésta se cumple se muestra el registro. La forma de escribir la condición es la siguiente:

nombre_columna operador 'valor'

Donde nombre columna es el nombre de la columna o campo que tomamos de referencia para la condición (ref_artista). 'valor' es el valor que debe tomar el dato para cumplirse la condición ('2'). operador es la relación entre lo escrito en el código como valor y el dato encontrado en la columna. El operador se escribe siempre entre el "nombre_columna" y el 'valor', en el ejemplo anterior es el signo =, pero puede haber más operadores.


Operadores

Un operador en SQL dentro de la instrucción WHERE muestra lo que se debe hacer al comparar la muestra que nosotros damos ('valor') con los datos de la columna. Tenemos varios operadores.

El Signo igual ( = ) es un operador que indica que los dos datos deben ser iguales para que la condición se cumpla.

Con datos numéricos podemos usar también los signos "mayor que" ( > ), y "menor que" ( < ) y también los signos "mayor o igual que" ( >= ) y "menor o igual que" ( <= ). Esto hará que se seleccionen los registros que cumplan estas condiciones. Con registros no numéricos (de tipo texto), la selección al utilizar estos operadores, se hará teniendo en cuenta el número en ASCII del primer carácter de la escritura (coincide con el orden alfabético).

Operador LIKE: La palabra clave LIKE es también un operador, se emplea para buscar registros que sin ser iguales, tienen una cierta similitud o parecido con el que damos de muestra, tal como veremos más adelante.

Operadores IN y BETWEEN, Permiten elegir más de un valor de referencia en la instrucción WHERE. Veremos su uso más adelante.

OPERADORES LOGICOS

Podemos incluir más de una condición dentro de la instrucción WHERE utilizando los operadores logicos, estos son las palabras clave AND y OR.

Supongamos que tenemos una tabla "agenda" que tiene entre otras las columnas "nombre" y "apellido".

Esto nos permite buscar los registros mediante la columna "nombre" o mediante la columna "apellido". Pero si queremos incluir los datos de las dos columnas en la búsqueda lo haremos así:

SELECT * FROM agenda WHERE nombre='Pedro' AND apellido='González'

El operador lógico AND selecciona sólo a los que cumplen a la vez las dos condiciones.

Pero si lo que queremos es seleccionar a todos los que tengan como nombre 'Pedro' y además a todos los que tengan como apellido 'González', utilizaremos la siguiente sentencia:

SELECT * FROM agenda WHERE nombre='Pedro' OR apellido='González'

El operador lógico OR selecciona tanto a los que cumplen la primera condición como la segunda.


Búsqueda aproximada

Sin embargo a veces no sabemos el dato exacto de referencia para lo que buscamos, sino que tenemos una idea aproximada. En este caso podemos buscar los datos mediante el operador LIKE.

Veamos un ejemplo: queremos buscar en la tabla "artistas" de la base de datos "mi_musica" al artista Dire Straits, pero no sabemos bien cómo se escribe la segunda palabra (straits), la sentencia SQL será la siguiente:

SELECT * FROM artistas WHERE artista LIKE 'Dire%'

Observa que hemos escrito 'Dire%'. El signo de porcentaje ( % ) es un comodin que indica que puede ser sustituido por cualquier cadena. De esta manera obtendremos todos los artistas cuyo nombre comience por "Dire". El resultado de la búsqueda (utilizaremos un código PHP similar al mostrado anteriormente) nos dará como resultado lo siguiente:

id_artistas = 2 ... artista = Dire Straits ... info_artista = Banda de rock británica fundada por Mark Knopfler en 1977 ...


Si el dato que tenemos como referencia es el final de la cadena, pondremos el comodin ( % ) al principio de la palabra, por ejemplo si buscamos mediante la siguiente sentencia en la tabla "artistas" de la base "mi_musica":

SELECT * FROM artistas WHERE artista LIKE '%field'

Obtendremos como resultado el siguiente artista:

id_artistas = 3 ... artista = Mike Oldfield ... info_artista = Michael Gordon Oldfield, músico, compositor, multiinstrumentista y productor británico. ...


Colocando el comodín ( % ) tanto al principio como al final de la referencia de búsqueda, obtendremos todos los registros que contengan la cadena de referencia en el dato de la columna indicada. Por ejemplo, queremos ver en la tabla anterior todos los artistas cuyo nombre contenga la letra "r". Haremos la siguiente búsqueda:

SELECT * FROM artistas WHERE artista LIKE '%r%'

El resultado nos dará lo siguiente:

id_artistas = 1 ... artista = Amaral ... info_artista = Duo formado por Eva Amaral y Juan Aguirre ...

id_artistas = 2 ... artista = Dire Straits ... info_artista = Banda de rock británica fundada por Mark Knopfler en 1977 ...


Observa cómo todos los artistas que contienen en su nombre la letra "r" aparecen en la lista.


Comodines

Al ver el operador LIKE hemos usado el comodín ( % ) que sustituye parte de la cadena de texto. El comodin ( % ) puede sustituir cero, uno, o más carateres en una cadena.

Podemos usar también el comodín ( _ ) (guión bajo) que sustituye a sólo un caracter. por ejemplo:

$sql="SELECT * FROM artistas WHERE artista LIKE 'Amara_'"; El resultado será el siguiente:

id_artistas = 1 ... artista = Amaral ... info_artista = Duo formado por Eva Amaral y Juan Aguirre ...






En la siguiente pagina veremos Cómo modificar y borrar registros

Modificar registros



Manual de SQL

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com