PHP y MySQL

MySQL SELECT: Realizar consultas a una base de datos

En este nuevo post vamos a ver la sentencia de MySQL SELECT, su funcionalidad es la de realizar consultas sobre una o varias tablas de una base de datos para extraer un determinado número de filas (resultados).

Otras sentencias de MySQL que os pueden ser útiles:

Sintaxis de MySQL SELECT

Veamos la sintaxis extraída de su web oficial:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
      [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

Repasemos brevemente la sintaxis superior:

  • Con SELECT podemos seleccionar una o varias columnas de datos.
  • FROM table_references nos vale para seleccionar una o varias tablas que almacenan las columnas previamente indicadas.
  • En WHERE where_condition se especifican la o las condiciones que se deben cumplir para los valores solicitados.

Dentro de la claúsula WHERE tenemos los siguientes condicionantes que son importantes y útiles:

  • GROUP BY: Nos permite agrupar los datos obtenidos de la base de datos.
  • HAVING: Permite hacer cálculos y condiciones más complejas que no se pueden hacer con la cláusula WHERE.
  • ORDER BY: Ordenación por columna.
  • LIMIT: Especificación del número de filas devueltas.

Ejemplos de MySQL SELECT

Vamos a comenzar con estos sencillos ejemplos, más adelante iré poniendo algunos más complejos con los condicionantes anteriormente mencionados:

SELECT * FROM usuarios

Con el ejemplo superior estamos seleccionando todas las columnas (SELECT *) de la tabla usuarios, se devolverán todas las filas ya que no tenemos ningún condicionante con WHERE.

SELECT nombre FROM usuarios

Con el ejemplo superior estamos seleccionando la columna ‘nombre’ de la tabla usuarios, se devolverán todas las filas ya que no tenemos ningún condicionante con WHERE.

SELECT nombre, apellidos FROM usuarios

Con el ejemplo superior estamos seleccionando las columnas ‘nombre y apellidos’ de la tabla usuarios, se devolverán todas las filas ya que no tenemos ningún condicionante con WHERE.

SELECT nombre, apellidos FROM usuarios, clientes

Con el ejemplo superior estamos seleccionando las columnas ‘nombre y apellidos’ de 2 tablas distintas, se devolverán todas las filas ya que no tenemos ningún condicionante con WHERE.

SELECT nombre FROM usuarios WHERE edad = 30

Con el ejemplo superior estamos seleccionando la columna nombre de la tabla usuarios, se devolverán todos los nombres de usuario cuya edad sea igual a 30.

compartir
Publicado por
Aner Barrena