Home Bases de Datos MySQL Consulta de datos

PostHeaderIcon Consulta de datos

Usar puntuación: / 0
MaloBueno 

Este tipo de sentencia se usa para seleccionar, uno o muchos, campos de una tabla. En el SELECT seleccionas los campos, * si son todos los campos. En el FROM se pone la tabla de la que se seleccionan dichos campos. Y en el WHERE pones la condición que tiene esa selección, no siempre se tiene que usar solo cuando la selección es con una condición.

 

SELECT columna1, columna2…|*

 

FROM tabla1, tabla2…

WHERE condición;

EJEMPLO: SELECT * FROM ALUMNOS;

Selecciona todos los registros y todos los campos de la tabla ALUMNOS

SELECT nombre FROM ALUMNOS WHERE FECHA_NACIMIENTO>'1995-01-01';

selecciona el nombre de los alumnos nacidos después del 1 de Enero de 1995

Para que cuando seleccionamos no se repita la misma información podemos encontrar el DISTINCT. De esta forma no repetimos información.

SELECT [DISTINCT] columna1, columna2…|*

FROM tabla1, tabla2…

WHERE condición;

EJEMPLO: 

SELECT DISTINCT alumno FROM CURSAN

Selecciona los distintos alumnos que se han matriculado en alguna asignatura. En caso de no poner el DISTINCT aparecerían repetidos los alumnos que se han matriculado en más de una asignatura.

A veces, después del WHERE, usamos el ORDER BY para ORDENAR los campos.

SELECT [DISTINCT] columna1, columna2…|*

FROM tabla1, tabla2…

WHERE condición

ORDER BY columna1 [DESC], columna2 [DESC]…;

EJEMPLO:

SELECT * FROM ALUMNOS ORDER BY NOMBRE, FECHA_NACIMIENTO DESC

Mostrará a todos los integrantes de la tabla alumnos (al no haber ningún WHERE) ordenados por orden alfabético del nombre y en caso de tener el mismo nombre, por la fecha de nacimiento, los más jóvenes primero.

Finalmente disponemos también de la cláusula GROUP BY que agrupa la selección por campos:

SELECT [DISTINCT] columna1, columna2…|*

FROM tabla1, tabla2…

WHERE condición

GROUP BY columna1

EJEMPLO:

SELECT nombre, fecha_nacimiento FROM ALUMNOS GROUP BY EXTRANJEROS

Nos devuelve el nombre y la fecha de nacimiento del primer extranjero y del primer nacional. ¿Es eso lo que queremos? ¿Tiene sentido? ¿Para qué sirve entonces el GROUP BY?

GROUP BY agrupa por columnas. Por lo tanto, ordena la salida según la columna seleccionada. Además elimina filas repetidas, no porque sean iguales al completo, sino las del campo del GROUP BY. Pero lo más importante del GROUP BY es la combinación con una serie de funciones, y sobre todo, con el COUNT().

SELECT extranjeros FROM ALUMNOS GROUP BY EXTRANJEROS

nos devolvería dos filas: Sí y NO mientras que 

SELECT extranjeros, COUNT (*) FROM ALUMNOS GROUP BY EXTRANJEROS 

nos devolvería el número de entranjeros (SÍ) y el número de nacionales (NO)

 

Comentarios   

 
0 #3 Administrator 06-05-2016 20:05
Cito a Marco Antonio:
Como puedo realizar una búsqueda parcial?,
osea que no requiera de todo del dato que se usa como referencia, donde me arroje un lista con elementos similares

Otra cosa. Si el campo es varchar en lugar de = el operador es LIKE
Saludos
Citar
 
 
0 #2 Administrator 06-05-2016 20:04
Cito a Marco Antonio:
Como puedo realizar una búsqueda parcial?,
osea que no requiera de todo del dato que se usa como referencia, donde me arroje un lista con elementos similares

Hola Marco Antonio. No sé si he entendido bien tu pregunta. Prueba a colocar el carácter % antes y después de lo que estés buscando. Por ejemplo si buscas todos los nombres que contengan "ma" prueba con "%ma%".
Saludos
Citar
 
 
0 #1 Marco Antonio 06-05-2016 19:18
Como puedo realizar una búsqueda parcial?,
osea que no requiera de todo del dato que se usa como referencia, donde me arroje un lista con elementos similares
Citar
 

Escribir un comentario


Código de seguridad
Refescar

PostHeaderIcon Más Comentado

PostHeaderIcon Últimos Comentarios

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy110
mod_vvisit_counterAyer750
mod_vvisit_counterEsta semana860
mod_vvisit_counterLa semana pasada4692
mod_vvisit_counterEste mes23876
mod_vvisit_counterEl mes pasado46803
mod_vvisit_counterTodos los días1476249

We have: 45 guests online
Hoy es: Ene 23, 2018