Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MySQL: instrucción SELECCIONAR
Este tutorial de MySQL explica cómo usar MySQL declaración de selección Con sintaxis y ejemplos.
describir
La declaración SELECT de MySQL se usa para recuperar registros de una o más tablas en MySQL.
sintaxis
La forma más simple de una instrucción SELECT en MySQL es:
SELECT expressions FROM tables [WHERE conditions];
Sin embargo, la sintaxis completa de una declaración SELECT en MySQL es:
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 ] expressions FROM tables [WHERE conditions] [GROUP BY expressions] [HAVING condition] [ORDER BY expression [ ASC | DESC ]] [LIMIT [offset_value] number_rows | LIMIT number_rows OFFSET offset_value] [PROCEDURE procedure_name] [INTO [ OUTFILE 'file_name' options | DUMPFILE 'file_name' | @variable1, @variable2, ... @variable_n] [FOR UPDATE | LOCK IN SHARE MODE];
parámetro o parámetro
Todo opcional. Devuelve todas las filas coincidentes DISTINCT Opcional. Eliminar duplicados del conjunto de resultados. Obtenga más información sobre la cláusula DISTINCT. DISTINCTROW Opcional. Sinónimo de DISTINTO. Eliminar duplicados del conjunto de resultados. HIGH_PRIORITY Opcional. Le dice a MySQL que ejecute SELECT antes de cualquier instrucción UPDATE que espere el mismo recurso. Se puede usar con tablas MyISAM, MEMORY y MERGE que usan bloqueo a nivel de tabla. STRAIGHT_JOIN es opcional. Le dice a MySQL que una las tablas en el orden en que aparecen en la cláusula FROM. SQL_SMALL_RESULT Opcional. Use tablas temporales rápidas para almacenar resultados (usadas con DISTINCT y GROUP BY). SQL_BIG_RESULT Opcional. Prefiere ordenar en lugar de usar tablas temporales para almacenar resultados (usado con DISTINCT y GROUP BY). SQL_BUFFER_RESULT Opcional. Use tablas temporales para almacenar resultados (no se puede usar con subconsultas). SQL_CACHE Opcional. Almacene los resultados en la caché de consultas. SQL_NO_CACHE Opcional. No almacene los resultados en la caché de consultas. SQL_CALC_FOUND_ROWS Opcional. Cuente cuántos registros hay en el conjunto de resultados (independientemente del modificador LIMIT), que luego se pueden recuperar usando la función FOUND_ROWS. Expresión La columna o cálculo que desea recuperar. Utilice * si desea seleccionar todas las columnas. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Para seleccionar las condiciones que debe cumplir un registro. La expresión GROUP BY es opcional. Recopila datos a través de múltiples registros y agrupa los resultados por una o más columnas. Obtenga más información sobre la cláusula GROUP BY. La condición HAVING es opcional. Se usa junto con GROUP BY para limitar el grupo de filas devuelto a solo filas para las que la condición es VERDADERA. Obtenga más información sobre la cláusula HAVING. La expresión ORDER BY es opcional. Se utiliza para ordenar los registros en el conjunto de resultados. Obtenga más información sobre la cláusula ORDER BY. Las restricciones son opcionales. Si se proporciona LIMIT, controla el número máximo de registros para recuperar. Devuelve hasta el número de registros especificado por number_rows en el conjunto de resultados. La primera fila devuelta por LIMIT estará determinada por offset_value. Programa opcional. Si se proporciona, nombre_procedimiento es el nombre del procedimiento que debe procesar los datos en el conjunto de resultados.Ingresar
Electivo. Si se proporciona, le permite escribir el conjunto de resultados en un archivo o variable.
valor | explique |
---|---|
Opción INTO OUTFILE ‘nombre de archivo’ | Escribe el conjunto de resultados en un archivo llamado nombre de archivo en el host del servidor. Para las opciones, puede especificar:
Campos escapados por “carácter” líneas que terminan con “carácter” donde carácter es el carácter que se mostrará como un carácter ESCAPE, CERRADO o TERMINADO. Por ejemplo: Seleccione ID de proveedor, Nombre del proveedor |
EN DUMPFILE ‘nombre de archivo’ | Escribe una fila del conjunto de resultados en un archivo llamado nombre de archivo en el host del servidor. Con este método, no hay terminación de columna, terminación de línea o procesamiento de escape. |
EN @variable1, @variable2, … @variable_n | Escribe el conjunto de resultados en una o más variables especificadas por @variable1, @variable2, … @variable_n |
PARA ACTUALIZAR es opcional. Los registros afectados por la consulta están bloqueados contra escritura hasta que se completa la transacción. El modo de uso compartido bloqueado es opcional. Los registros afectados por la consulta pueden ser utilizados por otras transacciones, pero otras transacciones no pueden actualizarlos ni eliminarlos.
Ejemplo: seleccionar todos los campos de una tabla
Veamos cómo seleccionar todos los campos de una tabla usando una consulta SELECT de MySQL.
SELECT * FROM order_details WHERE quantity >= 10 ORDER BY quantity DESC;
En este ejemplo de declaración SELECT de MySQL, usamos * para indicar que queremos seleccionar todos los campos de la tabla order_details con una cantidad mayor o igual a 10. El conjunto de resultados se ordena en orden descendente por cantidad.
Ejemplo: seleccione un solo campo de una tabla
También puede usar la declaración SELECT de MySQL para seleccionar un solo campo de una tabla en lugar de todos los campos de la tabla.
Por ejemplo:
SELECT order_id, quantity, unit_price FROM order_details WHERE quantity < 500 ORDER BY quantity ASC, unit_price DESC;
Este ejemplo de MySQL SELECT devolverá solo los campos order_id, cantidad y unit_price en la tabla order_details con cantidades inferiores a 500. Los resultados se ordenan por cantidad en orden ascendente, luego por precio unitario en orden descendente.
Ejemplo: seleccionar campos de varias tablas
También puede recuperar campos de varias tablas utilizando la declaración SELECT de MySQL.
SELECT order_details.order_id, customers.customer_name FROM customers INNER JOIN order_details ON customers.customer_id = order_details.customer_id ORDER BY order_id;
Este ejemplo de MySQL SELECT une dos tablas, brindándonos un conjunto de resultados que muestra los campos order_id y customer_name, donde el valor de customer_id coincide en las tablas de clientes y detalles de pedido. Los resultados se ordenan por order_id en orden ascendente.
Ejemplo: escribir en el archivo
También puede usar declaraciones SELECT de MySQL para escribir conjuntos de resultados en archivos.
Por ejemplo:
SELECT order_id, quantity, unit_price FROM order_details WHERE quantity < 500 ORDER BY quantity INTO OUTFILE 'results.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY 'n';
Este ejemplo de MySQL SELECT devolverá solo los campos order_id, cantidad y unit_price en la tabla order_details cuya cantidad es inferior a 500. Los resultados se ordenan por número en orden ascendente y se escriben en un archivo llamado resultados.txt.