SQL Parte2 DML
SQL Parte2 DML
INSERT
La sentencia INSERT se utiliza para insertar nuevos registros en una tabla. Permite especificar
el nombre de la tabla, los campos(columnas) y los valores que se desean insertar en las
columnas correspondientes.
Sintaxis:
Tener en cuenta que, si la columna permite valores nulos, se puede omitir el valor
correspondiente en la cláusula VALUES, o colocar NULL si se desea establecer explícitamente
un valor nulo.
SELECT
La sentencia SELECT se utiliza para recuperar datos de una o varias tablas de la base de datos.
Permite especificar las columnas que se desean seleccionar, las tablas de las que se obtendrán
los datos y las condiciones para filtrar los resultados.
Sintaxis básica:
tabla: especifica el nombre de la tabla o tablas de las que se desea obtener los datos.
condicion: es opcional y se utiliza para filtrar los resultados según ciertos criterios. Se puede
utilizar operadores lógicos (AND, OR), operadores de comparación (=, <>, >, <, >=, <=) y
funciones para construir condiciones más complejas.
SELECT *
FROM clientes;
Sintaxis completa:
columna1, columna2, ...: especifica las columnas que deseas seleccionar en la consulta. Se
puede seleccionar columnas individuales o utilizar el asterisco (*) para seleccionar todas las
columnas de la tabla.
tabla1: especifica el nombre de la tabla principal de la que se desea obtener los datos.
[WHERE condicion]: es opcional y se utiliza para filtrar los resultados según ciertos criterios.
Se puede utilizar operadores lógicos (AND, OR), operadores de comparación (=, <>, >, <, >=, <=)
y funciones para construir condiciones más complejas.
[GROUP BY columna1, columna2, ...]: es opcional y se utiliza para agrupar los resultados por
una o varias columnas. Se utiliza en combinación con funciones de agregación como COUNT,
SUM, AVG, etc.
[HAVING condicion]: es opcional y se utiliza para filtrar los resultados agrupados según ciertas
condiciones. Funciona de manera similar a la cláusula WHERE, pero se aplica después de la
agrupación.
[ORDER BY columna1 [ASC | DESC], columna2 [ASC | DESC], ...]: es opcional y se utiliza para
ordenar los resultados en base a una o varias columnas en orden ascendente (ASC) o
descendente (DESC).
[LIMIT cantidad_filas]: es opcional y se utiliza para limitar la cantidad de filas que se devuelven
en el resultado.
Para los siguientes ejemplos, se tomará como base los datos de la siguiente tabla Vendedores:
Selección de todas las columnas: se utiliza el asterisco (*) para seleccionar todas las columnas
de una tabla:
Alias de columnas: la palabra clave AS permite asignar un alias a las columnas seleccionadas,
lo que permite cambiar el nombre de una columna en los resultados.
Por ejemplo, en este caso se cambia el nombre de la columna comisión por uno más
representativo.
Por ejemplo, si se necesita una nueva columna, donde se quiere colocar el 15% de la comisión
de ventas que recibe el vendedor:
Filtrado de filas: la cláusula WHERE se utiliza para filtrar las filas basándose en ciertas
condiciones. Por ejemplo, mostrar sólo los vendedores de la provincia de Córdoba:
WHERE provincia="Córdoba";
ORDER BY apellido;
Agrupación de filas: la cláusula GROUP BY permite agrupar filas basándose en los valores de
una o más columnas. Esto es útil cuando se desea realizar cálculos agregados en grupos de
filas, como SUM, COUNT, AVG, etc.
GROUP BY provincia;
provincia cantidad
Buenos Aires 1
Córdoba 2
Mendoza 1
Santa Fe 1
Tucumán 1
Entre Ríos 1
Salta 1
San Juan 1
Jujuy 1
Filtrado de grupos: se puede utilizar la cláusula HAVING después de GROUP BY para filtrar
grupos en función de condiciones agregadas.
En este ejemplo, se agrupan los vendedores por provincia y se calcula el número total de
vendedores y la suma de las comisiones de ventas en cada provincia. Luego, se aplica el filtro
utilizando HAVING para seleccionar solo las provincias donde el número de vendedores es
mayor o igual a 2 y la suma de las comisiones de ventas es mayor que 10000:
SELECT provincia, COUNT(*) as cantidad, SUM(comision_ventas) as
total_comisiones
FROM vendedores
GROUP BY provincia
HAVING cantidad >= 2 AND SUM(comision_ventas) > 10000;
provincia cantidad total_comisiones
Córdoba 2 14500.00
Limitación de resultados: la cláusula LIMIT se utiliza para limitar el número de filas devueltas
por la consulta. Por ejemplo, si se necesita mostrar los vendedores que mayor comisión
cobran, se puede utilizar:
Estas son solo algunas de las posibilidades de uso más comunes de SELECT en SQL. La cláusula
SELECT es muy flexible y se puede combinar con otras cláusulas y funciones para realizar
consultas avanzadas y complejas en una base de datos.
Autores:
Libros:
Resultado:
Titulo nombre
Harry Potter y la piedra filosofal J.K. Rowling
Una vacante imprevista J.K. Rowling
It Stephen King
El resplandor Stephen King
Inconmensurable Stephen King
Cien años de soledad Gabriel García Márquez
Crónica de una muerte anunciada Gabriel García Márquez
El amor en los tiempos del cólera Gabriel García Márquez
Ejemplo 2: Mostrar el autor, su nacionalidad, título del libro y el año de publicación ordenado
por título del libro
Por otro lado, la cláusula HAVING se utiliza junto con la cláusula GROUP BY para filtrar los
resultados de una consulta después de aplicar operaciones de agregación. Mientras que la
cláusula WHERE filtra las filas antes de las operaciones de agrupación, la cláusula HAVING filtra
los grupos resultantes basándose en condiciones que involucran funciones de agregación.
Sintaxis:
Ejemplos
UPDATE
La sentencia UPDATE se utiliza para modificar los datos existentes en una tabla. Permite
especificar el nombre de la tabla, los valores que se desean actualizar y las condiciones que
deben cumplir los registros a actualizar.
Sintaxis:
UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2, ...
[WHERE condicion]
nombre_tabla: especifica el nombre de la tabla en la cual deseas realizar la actualización.
SET columna1 = valor1, columna2 = valor2, ...: especifica las columnas que deseas actualizar y
los nuevos valores que deseas asignar a esas columnas.
[WHERE condicion]: es opcional y se utiliza para especificar la condición que deben cumplir las
filas que serán actualizadas. Si no se proporciona, se actualizarán todas las filas de la tabla.
Ejemplo:
UPDATE empleados
SET salario = 5000
WHERE id = 123;
Este ejemplo actualizará el valor de la columna "salario" a 5000 en la fila de la tabla
"empleados" donde el ID sea igual a 123.
UPDATE empleados
SET salario = 55000
WHERE id = 1;
Este ejemplo actualiza el salario del empleado con id 1 a 55000.
UPDATE empleados
SET salario = salario * 1.1
WHERE departamento_id = 2;
Este ejemplo aumenta el salario en un 10% para todos los empleados del departamento con id
2.
UPDATE empleados
SET salario = 60000, puesto = 'Gerente'
WHERE id = 3;
Este ejemplo establece el salario y el puesto del empleado con id 3.
UPDATE empleados
SET salario = salario * 1.05
WHERE departamento_id = 3 AND puesto = 'Ingeniero';
Este ejemplo aumenta el salario en un 5% para los ingenieros del departamento 3.
Importante: tener precaución al utilizar la sentencia UPDATE, ya que los cambios realizados
son permanentes. Tener bien en claro qué filas se necesita actualizar y revisar cuidadosamente
las condiciones antes de ejecutar la sentencia UPDATE.
DELETE
La sentencia DELETE se utiliza para eliminar registros de una tabla. Permite especificar el
nombre de la tabla y las condiciones que deben cumplir los registros a eliminar.
Sintaxis:
[WHERE condicion]: es opcional y se utiliza para especificar la condición que deben cumplir los
registros a eliminar. Si no se proporciona, se eliminarán todos los registros de la tabla.
Ejemplo:
Supongamos que se tiene una tabla llamada "clientes" y se desea eliminar un registro
específico en base a un cierto criterio, como por ejemplo, eliminar todos los clientes cuya edad
sea mayor o igual a 60:
Importante: tener precaución al utilizar la sentencia DELETE, ya que los registros eliminados no
se pueden recuperar. Se debe tener en claro qué registros se desea eliminar y revisar
cuidadosamente las condiciones antes de ejecutar la sentencia DELETE. Asegúrate de realizar
una copia de seguridad o de ejecutar las consultas en un entorno de pruebas antes de
aplicarlas en producción.