Dada la enorme cantidad de datos que se generan todos los días, es importante recuperarlos en función de algunas condiciones. En este artículo sobre la declaración CASE en MySQL, discutiré cómo usar esta declaración para recuperar datos en una sola condición o en múltiples condiciones.
Los siguientes temas se tratarán en este artículo:
- Introducción a SQL
- ¿Cuál es el propósito de SQL?
- CASO en MySQL
- Sintaxis de CASE en MySQL
- Ejemplo de CASE en MySQL
¿Qué es SQL?
SQL es un lenguaje específico de dominio que se usa ampliamente en la programación. Está diseñado para gestionar datos contenidos en un sistema de gestión de bases de datos relacionales (RDBMS) o para el procesamiento de flujos en un sistema de gestión de flujos de datos relacionales. En general, SQL es un lenguaje estándar que ayuda a almacenar, manipular y recuperar datos en bases de datos.
¿Cuál es el propósito de SQL?
SQL se usa básicamente para comunicarse con una base de datos. Según ANSI (American National Standards Institute), se considera como el lenguaje estándar para los sistemas de gestión de bases de datos relacionales (RDBMS). Usamos declaraciones SQL para realizar tareas como actualizar, insertar, eliminar o recuperar datos de una base de datos.
¿Qué es la instrucción CASE en MySQL?
La declaración CASE en MySQL es una forma de manejar la lógica if/else. Es una especie de declaración de control que forma la célula de los lenguajes de programación, ya que controlan la ejecución de otros conjuntos de declaraciones.
La declaración CASE pasa por varias condiciones y devuelve valores a medida que se cumple la primera condición (como una declaración IF-THEN-ELSE en lenguajes de bajo nivel). Una vez que una condición es verdadera, dejará de atravesar y devolverá el resultado. Si ninguna de las condiciones es verdadera, devuelve el valor de la cláusula ELSE.
Si no hay una cláusula ELSE y ninguna de las condiciones es verdadera, simplemente devuelve NULL.
Sintaxis de la instrucción CASE en MySQL
Sintaxis básica:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Puede haber dos formas de lograr sentencias CASE-Switch:
- Toma una variable llamada case_value y la compara con alguna declaración_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Considere una condición_de_búsqueda en lugar de igualdad de variables y ejecute la lista_de_instrucciones en consecuencia.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Ejemplo de sentencia CASE en MySQL
Consideremos una tabla:ESTUDIANTE
Mesa del estudiante
Identificación del estudiante | Nombre | Departamento | Género |
001 | Akash | CS | M |
002 | Bikram | Mecha | M |
003 | Chandan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | CE | F |
006 | Fernandes | Mecha | F |
Ejemplo: Considere un escenario en el que tiene que modificar los nombres de los departamentos a sus formas completas. Si el nombre del departamento es CS, debe convertirse a Informática; Asimismo, Mech debe convertirse a Mechanical.and EC a Electronic and Communication.
Consulta de muestra
CASE department_name WHEN 'CS' THEN UPDATE Student SET department='Computer Science'; WHEN 'EC' THEN UPDATE Student SET department='Electronics and Communication'; ELSE UPDATE Student SET department=’Mechanical'; END;
Salida:
Los nombres de los departamentos correspondientes se renombran de la siguiente manera:
Identificación del estudiante | Nombre | Departamento | Género |
001 | Akasha | Informática | M |
002 | Bikram | Mecánica | M |
003 | Chandan | Informática | M |
004 | Deepak | Informática | M |
005 | Elicia | Electrónica y Comunicación | F |
006 | Fernandes | Mecánica | F |
Ejemplo: Considere un escenario en el que tiene que seleccionar todos los campos correspondientes a la tabla Estudiante. Dado que los valores escritos en el campo Género son valores de un solo carácter (M/F), escribamos una consulta para cambiar M a Hombre y F a Mujer.
Consulta de muestra
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Salida:
Identificación del estudiante | Nombre | Departamento | Género |
001 | Akasha | Informática | Hombre |
002 | Bikram | Mecánica | Hombre |
003 | Chandan | Informática | Hombre |
004 | Deepak | Informática | Hombre |
005 | Elicia | Electrónica y Comunicación | Mujer |
006 | Fernandes | Mecánica | Mujer |
Conmutador CASE en SQL:clasificación personalizada
Consulta de muestra
CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS SELECT StudentID, Name, Gender, Department FROM Student ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE StudentID END;
Salida:
La salida se ordena de acuerdo con el campo proporcionado.
El procedimiento anterior (función) toma una variable de tipo de datos varchar como argumento y, sobre esa base, ordena las tuplas en la tabla Student. Además, también podemos usar sentencias CASE para comparar condiciones.
Ejemplo: Considere una tabla llamada CONTACTOS que contiene ID de contacto y un ID de sitio web. De acuerdo con estos detalles, un usuario puede navegar a través de estos enlaces:'TechOnTheNet.com' o 'CheckYourMath.com'.
Consulta de muestra
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Debe estar claro ahora que al escribir sentencias Case en MySQL, uno de los factores más importantes es 'ordenarlas de la manera correcta'. Solo recuerde que las condiciones se evalúan en el orden que usted indique. Una vez que cualquier condición se vuelve verdadera, la instrucción CASE devolverá el resultado y no evaluará más las condiciones. Así que tenga cuidado al seleccionar el orden en el que enumera sus condiciones.
Si desea obtener más información sobre MySQL y conocer esta base de datos relacional de código abierto, consulte nuestra Capacitación para la certificación de DBA de MySQL, que incluye capacitación en vivo dirigida por un instructor y Experiencia proyecto de vida. Esta capacitación lo ayudará a comprender MySQL en profundidad y lo ayudará a dominar el tema.
¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de esta "Declaración CASE en MySQL" y nos pondremos en contacto con usted.