logo

CLÁUSULAS SQL

  • La cláusula SQL nos ayuda a recuperar un conjunto o paquetes de registros de la tabla.
  • La cláusula SQL nos ayuda a especificar una condición en las columnas o registros de una tabla.

Las diferentes cláusulas disponibles en el lenguaje de consulta estructurado son las siguientes:

  1. DÓNDE CLÁUSULA
  2. GRUPO POR CLÁUSULA
  3. TENER CLÁUSULA
  4. ORDEN POR CLÁUSULA

Veamos cada cláusula una por una con un ejemplo. Usaremos la base de datos MySQL para escribir las consultas en ejemplos.

1. CLÁUSULA WHERE

Se utiliza una cláusula WHERE en SQL con la consulta SELECT, que es uno de los comandos del lenguaje de manipulación de datos. Las cláusulas WHERE se pueden utilizar para limitar el número de filas que se mostrarán en el conjunto de resultados, lo que generalmente ayuda a filtrar los registros. Devuelve sólo aquellas consultas que cumplen las condiciones específicas de la cláusula WHERE. La cláusula WHERE se utiliza en las declaraciones SELECT, UPDATE, DELETE, etc.

Cláusula WHERE con consulta SELECT

El símbolo de asterisco se utiliza con una cláusula WHERE en una consulta SELECT para recuperar todos los valores de columna para cada registro de una tabla.

Sintaxis de la cláusula where con una consulta de selección para recuperar todos los valores de columna para cada registro de una tabla:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Si, según el requisito, solo queremos recuperar columnas selectivas, usaremos la siguiente sintaxis:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Considere la tabla de empleados con los siguientes datos:

ID_E Nombre Salario Ciudad Designación Fecha de inscripción Edad
1 sakshi kumari 50000 Bombay Gerente de proyecto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Ingeniero de sistemas 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Gerente 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Probadores de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Gerente de proyecto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Gerente 2019-07-17 26
7 La voz de Baviskar. 55000 Jaipur Ingeniero de sistemas 2021-10-10 24
8 Hay jeque 45000 Pune Ingeniero de software 2020-09-10 26
9 Swati Kumari 50000 Pune Probadores de software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Gerente de proyecto 2020-10-02 24
11 Simran Khanna 45500 Kolhapur HORA 2019-01-02 26
12 Shivani Wagh 50500 Delhi Desarrollador de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HORA 2013-12-12 23
14 Tejal Jain 40000 Delhi Gerente de proyecto 2017-11-10 25
15 Mohini Shah 38000 Pune Desarrollador de software 2019-03-05 20

Ejemplo 1:

Escriba una consulta para recuperar todos aquellos registros de un empleado cuyo salario sea superior a 50000.

Consulta:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

La consulta anterior mostrará todos aquellos registros de un empleado cuyo salario sea superior a 50000. El salario inferior a 50000 no se mostrará según las condiciones.

Obtendrá el siguiente resultado:

ipconfig gratis
CLÁUSULAS SQL

Según el resultado esperado, solo se muestran aquellos registros en los que el salario de un empleado es superior a 50000. Hay seis registros en la tabla de empleados que satisfacen la condición dada.

Ejemplo 2:

Escriba una consulta para actualizar el registro del empleado y establezca el nombre actualizado como 'Harshada Sharma' donde el nombre de la ciudad del empleado es Jaipur.

Consulta:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

CLÁUSULAS SQL

La consulta anterior actualizará el nombre del empleado a 'Harshada Sharma', donde la ciudad del empleado es Jaipur.

Para verificar si los registros están actualizados o no, ejecutaremos una consulta de selección.

 mysql> SELECT * FROM employees; 

CLÁUSULAS SQL

Sólo hay un registro en la tabla de empleados donde la ciudad del empleado es 'Jaipur'. La identificación del registro es 3, que satisface la condición dada. Por lo tanto, según la condición dada, el nombre del empleado con identificación de empleado 3 ahora se cambia a 'Harshada Sharma'.

Ejemplo 3:

Escriba una consulta para eliminar el registro de un empleado cuya fecha de incorporación sea '2013-12-12'.

Consulta:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

CLÁUSULAS SQL

La consulta anterior eliminará los detalles del empleado cuya fecha de incorporación es '2013-12-12'.

Para verificar los resultados de la consulta anterior, ejecutaremos la consulta de selección.

 mysql> SELECT *FROM employees; 

CLÁUSULAS SQL

Solo hay un registro en la tabla de empleados donde la fecha de incorporación del empleado es '2013-12-12'. La identificación del registro es 13, que satisface la condición dada. Por lo tanto, de acuerdo con la condición dada, el empleado con ID de empleado 13 ahora se elimina de la tabla de empleados.

2. GRUPO POR CLÁUSULA

La cláusula Agrupar por se utiliza para organizar tipos similares de registros en grupos en el lenguaje de consulta estructurado. La cláusula Agrupar por en el lenguaje de consulta estructurado se utiliza con la instrucción Select. La cláusula Group by se coloca después de la cláusula Where en la declaración SQL. La cláusula Group By se usa especialmente con la función agregada, es decir, max (), min (), avg (), sum (), count () para agrupar el resultado en función de una o más de una columna.

La sintaxis de la cláusula Group By:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

La sintaxis anterior seleccionará todos los datos o registros de la tabla, pero organizará todos esos datos o registros en grupos según el nombre de la columna proporcionada en la consulta.

La sintaxis de la cláusula Group By con funciones agregadas:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Entendamos la cláusula Agrupar por con la ayuda de ejemplos.

Considere la tabla de empleados con los siguientes datos:

ID_E Nombre Salario Ciudad Designación Fecha de inscripción Edad
1 sakshi kumari 50000 Bombay Gerente de proyecto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Ingeniero de sistemas 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Gerente 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Probadores de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Gerente de proyecto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Gerente 2019-07-17 26
7 La voz de Baviskar. 55000 Jaipur Ingeniero de sistemas 2021-10-10 24
8 Hay jeque 45000 Pune Ingeniero de software 2020-09-10 26
9 Swati Kumari 50000 Pune Probadores de software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Gerente de proyecto 2020-10-02 24
11 Simran Khanna 45500 Kolhapur HORA 2019-01-02 26
12 Shivani Wagh 50500 Delhi Desarrollador de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HORA 2013-12-12 23
14 Tejal Jain 40000 Delhi Gerente de proyecto 2017-11-10 25
15 Mohini Shah 38000 Pune Desarrollador de software 2019-03-05 20

Ejemplo 1:

Escriba una consulta para mostrar todos los registros de la tabla de empleados pero agrupe los resultados según la columna de edad.

Consulta:

 mysql> SELECT * FROM employees GROUP BY Age; 

La consulta anterior mostrará todos los registros de la tabla de empleados pero agrupados por la columna de edad.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Ejemplo 2:

Escriba una consulta para mostrar todos los registros de la tabla de empleados agrupados por designación y salario.

Consulta:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

La consulta anterior mostrará todos los registros de la tabla de empleados pero agrupados por la columna de salario y designación.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Ejemplos de cláusula Group By que utiliza funciones agregadas

Ejemplo 1:

Escriba una consulta para enumerar la cantidad de empleados que trabajan en una designación particular y agrupe los resultados por designación del empleado.

Consulta:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

La consulta anterior mostrará la designación con el número respectivo de empleados que trabajan en esa designación. Todos estos resultados se agruparán por la columna de designación.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Según el resultado esperado, se muestra la designación con el respectivo recuento de empleados.

Ejemplo 2:

Escriba una consulta para mostrar la suma del salario de un empleado según la ciudad agrupada por edad del empleado.

Consulta:

 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

La consulta anterior calculará primero la suma de los salarios que trabajan en cada ciudad, y luego mostrará la suma del salario con el salario respectivo pero agrupado por la columna de edad.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Según el resultado esperado, se muestra la suma del salario de los empleados según la ciudad a la que pertenece el empleado. Si dos empleados pertenecen a la misma ciudad, estarán en un grupo.

3. TENER CLÁUSULA:

Cuando necesitamos colocar condiciones en la columna de la tabla, usamos la cláusula WHERE en SQL. Pero si queremos usar cualquier condición en una columna en la cláusula Agrupar por en ese momento, usaremos la cláusula HAVING con la cláusula Agrupar por para las condiciones de la columna.

Sintaxis:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Considere la tabla de empleados con los siguientes datos:

tipos de datos primitivos en java
ID_E Nombre Salario Ciudad Designación Fecha de inscripción Edad
1 sakshi kumari 50000 Bombay Gerente de proyecto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Ingeniero de sistemas 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Gerente 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Probadores de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Gerente de proyecto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Gerente 2019-07-17 26
7 La voz de Baviskar. 55000 Jaipur Ingeniero de sistemas 2021-10-10 24
8 Hay jeque 45000 Pune Ingeniero de software 2020-09-10 26
9 Swati Kumari 50000 Pune Probadores de software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Gerente de proyecto 2020-10-02 24
11 Simran Khanna 45500 Kolhapur HORA 2019-01-02 26
12 Shivani Wagh 50500 Delhi Desarrollador de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HORA 2013-12-12 23
14 Tejal Jain 40000 Delhi Gerente de proyecto 2017-11-10 25
15 Mohini Shah 38000 Pune Desarrollador de software 2019-03-05 20

Ejemplo 1:

Escriba una consulta para mostrar el nombre de los empleados, el salario y la ciudad donde el salario máximo del empleado es superior a 40000 y agrupe los resultados por designación.

Consulta:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

El resultado anterior muestra el nombre del empleado, el salario y la ciudad de un empleado cuyo salario es superior a 40000 agrupados por designación. (Los empleados con una designación similar se ubican en un grupo y aquellos con otra designación se ubican por separado).

Ejemplo 2:

Escriba una consulta para mostrar el nombre de los empleados y la designación donde la suma del salario de un empleado sea mayor que 45000 y agrupe los resultados por ciudad.

Consulta:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

El resultado anterior muestra el nombre del empleado, la designación y el salario de un empleado. La suma del salario es mayor a 45000 agrupados por ciudad. (Los empleados con ciudades similares se ubican en un grupo y aquellos con una ciudad diferente que no son similares se ubican por separado).

4. ORDEN POR CLÁUSULA

Siempre que queremos ordenar algo en SQL, usamos la cláusula ORDER BY. La cláusula ORDER BY en SQL nos ayudará a ordenar los datos según la columna específica de una tabla. Esto significa que se ordenarán todos los datos almacenados en la columna específica sobre la que estamos ejecutando la cláusula ORDER BY. Los valores de las columnas correspondientes se mostrarán en la secuencia en la que obtuvimos los valores en el paso anterior.

Como todos sabemos, ordenar significa en ORDEN ASCENDENTE o EN ORDEN DESCENDENTE. De la misma forma, ORDER BY CLAUSE ordena los datos en orden ascendente o descendente según nuestro requerimiento. Los datos se ordenarán en orden ascendente siempre que el palabra clave ASC se utiliza con la cláusula ORDER by, y el palabra clave DESC ordenará los registros en orden descendente.

De forma predeterminada, la clasificación en SQL se realizará utilizando la cláusula ORDER BY en orden ASCENDENTE si no mencionamos el orden de clasificación.

Antes de pasar al ejemplo de la cláusula ORDER BY para ordenar los registros, primero veremos la sintaxis para que nos resulte fácil seguir el ejemplo.

Sintaxis de la cláusula ORDER BY sin las palabras clave asc y desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Sintaxis de la cláusula ORDER BY para ordenar en orden ascendente:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Sintaxis de la cláusula ORDER BY para ordenar en orden descendente:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Consideremos que tenemos una tabla de empleados con los siguientes datos:

ID_E Nombre Salario Ciudad Designación Fecha de inscripción Edad
1 sakshi kumari 50000 Bombay Gerente de proyecto 2021-06-20 24
2 Tejaswini Naik 75000 Delhi Ingeniero de sistemas 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Gerente 2021-08-15 26
4 Anushka Tripathi 90000 Bombay Probadores de software 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Gerente de proyecto 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Gerente 2019-07-17 26
7 La voz de Baviskar. 55000 Jaipur Ingeniero de sistemas 2021-10-10 24
8 Hay jeque 45000 Pune Ingeniero de software 2020-09-10 26
9 Swati Kumari 50000 Pune Probadores de software 2021-01-01 25
10 Mayuri Patel 60000 Bombay Gerente de proyecto 2020-10-02 24
11 Simran Khanna 45500 Kolhapur HORA 2019-01-02 26
12 Shivani Wagh 50500 Delhi Desarrollador de software 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HORA 2013-12-12 23
14 Tejal Jain 40000 Delhi Gerente de proyecto 2017-11-10 25
15 Mohini Shah 38000 Pune Desarrollador de software 2019-03-05 20

Ejemplo 1:

Escriba una consulta para ordenar los registros en orden ascendente de la designación de empleado de la tabla de empleados.

Consulta:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Aquí, en una consulta SELECT, se aplica una cláusula ORDER BY en la columna 'Designación' para ordenar los registros, pero no usamos la palabra clave ASC después de la cláusula ORDER BY para ordenar en orden ascendente. Entonces, de forma predeterminada, los datos se ordenarán en orden ascendente si no especificamos la palabra clave asc.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Según el resultado esperado, los registros se muestran en orden ascendente según la designación del empleado.

Ejemplo 2:

Escriba una consulta para mostrar el nombre y el salario del empleado en orden ascendente del salario del empleado en la tabla de empleados.

Consulta:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Aquí, en una consulta SELECT, se aplica una cláusula ORDER BY a la columna 'Salario' para ordenar los registros. Hemos utilizado la palabra clave ASC para ordenar el salario del empleado en orden ascendente.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Todos los registros se muestran en orden ascendente del salario del empleado.

Ejemplo 3:

Escriba una consulta para ordenar los datos en orden descendente del nombre del empleado almacenado en la tabla de empleados.

Consulta:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Aquí hemos utilizado la cláusula ORDER BY con la consulta SELECT aplicada en la columna Nombre para ordenar los datos. Hemos utilizado la palabra clave DESC después de la cláusula ORDER BY para ordenar los datos en orden descendente.

Obtendrá el siguiente resultado:

CLÁUSULAS SQL

Todos los registros se muestran en orden descendente según el nombre del empleado.