0% encontró este documento útil (0 votos)
31 vistas16 páginas

SQL Parte2 DML

Cargado por

luwanxia5732
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas16 páginas

SQL Parte2 DML

Cargado por

luwanxia5732
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 16

Sentencias SQL 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:

INSERT INTO nombre_tabla (columna1, columna2, columna3, ...)


VALUES (valor1, valor2, valor3, ...);
Ejemplo 1: Inserción de un solo registro

INSERT INTO clientes (nombre, apellido, email, telefono)


VALUES ('John', 'Doe', '[email protected]', '123-456-7890');
En este ejemplo, se agregará un nuevo cliente en la tabla clientes.

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.

Ejemplo 2: Inserción de múltiples registros

INSERT INTO clientes (nombre, apellido, email, telefono)


VALUES ('John', 'Doe', '[email protected]', '123-456-7890'),
('Jane', 'Smith', '[email protected]', '987-654-3210'),
('Mike', 'Johnson', '[email protected]', '555-555-5555');
Permite insertar múltiples registros a la vez.

Ejemplo 3: Inserción con columnas autoincrementales

Las columnas autoincrementales no necesitan ser especificadas en la sentencia INSERT. Por


ejemplo, si se tiene una tabla con la siguiente estructura:

CREATE TABLE departamentos (


id INT AUTO_INCREMENT,
nombre VARCHAR(100),
PRIMARY KEY (id)
);
La sentencia para insertar un registro es:

INSERT INTO departamentos (nombre)


VALUES ('Recursos Humanos');
En este caso, la columna id se generará automáticamente.

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:

SELECT columna1, columna2, ...


FROM tabla
WHERE condición;
columna1, columna2, ...: especifica las columnas que deseas seleccionar en la consulta.
Puedes seleccionar columnas individuales o utilizar asterisco (*) para seleccionar todas las
columnas de la tabla.

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.

Ejemplos de cómo utilizar la sentencia SELECT:

Seleccionar todas las columnas de una tabla:

SELECT *
FROM clientes;

Seleccionar columnas específicas de una tabla:

SELECT nombre, apellido, email


FROM clientes;

Aplicar condiciones para filtrar los resultados:

SELECT * FROM clientes


WHERE edad > 30 AND ciudad = 'Madrid';

Realizar operaciones de agregación:

SELECT COUNT(*) AS total_clientes


FROM clientes;

Combinar datos de varias tablas utilizando JOIN:

SELECT clientes.nombre, pedidos.fecha FROM clientes


JOIN pedidos ON clientes.id = pedidos.cliente_id;

Sintaxis completa:

SELECT [DISTINCT | ALL] columna1, columna2, ...


FROM tabla1
[JOIN tipo_de_join tabla2 ON condicion_de_unión]
[WHERE condicion]
[GROUP BY columna1, columna2, ...]
[HAVING condicion]
[ORDER BY columna1 [ASC | DESC], columna2 [ASC | DESC], ...]
[LIMIT cantidad_filas]
[DISTINCT | ALL]: es opcional y se utiliza para especificar si se deben eliminar duplicados de los
resultados (DISTINCT) o mostrar todos los resultados, incluidos los duplicados (ALL). Si no se
especifica, por defecto se asume ALL.

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.

[JOIN tipo_de_join tabla2 ON condicion_de_unión]: es opcional y se utiliza para combinar


datos de varias tablas utilizando diferentes tipos de joins, como INNER JOIN, LEFT JOIN, RIGHT
JOIN, etc. Se especifica el tipo de join, el nombre de la tabla y la condición de unión.

[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.

Ejemplos de uso de SELECT


La cláusula SELECT en SQL es extremadamente versátil y permite realizar una amplia gama de
operaciones y consultas en una base de datos.

Para los siguientes ejemplos, se tomará como base los datos de la siguiente tabla Vendedores:

id apellido nombre fechanac provincia comision


1 López Juan 1985-05-15 Buenos Aires 5000.00
2 García María 1990-12-03 Córdoba 7000.00
3 Martínez Carlos 1988-09-20 Mendoza 6000.00
4 Rodríguez Ana 1992-07-10 Santa Fe 4500.00
5 Pérez Luis 1987-11-08 Tucumán 5500.00
6 González Laura 1995-03-29 Entre Ríos 8000.00
7 Silva Pedro 1989-02-17 Salta 4000.00
8 Fernández Paula 1991-06-05 San Juan 6500.00
9 Ramírez Andrés 1993-08-22 Jujuy 5500.00
10 Smith John 1986-04-12 Córdoba 7500.00
Selección de columnas específicas: permite especificar las columnas que se desea seleccionar
de una tabla

SELECT apellido, nombre, provincia FROM vendedores.

apellido nombre provincia


López Juan Buenos Aires
García María Córdoba
Martínez Carlos Mendoza
Rodríguez Ana Santa Fe
Pérez Luis Tucumán
González Laura Entre Ríos
Silva Pedro Salta
Fernández Paula San Juan
Ramírez Andrés Jujuy
Smith John Córdoba

Selección de todas las columnas: se utiliza el asterisco (*) para seleccionar todas las columnas
de una tabla:

SELECT * FROM vendedores.

id apellido nombre fechanac provincia comision


1 López Juan 1985-05-15 Buenos Aires 5000.00
2 García María 1990-12-03 Córdoba 7000.00
3 Martínez Carlos 1988-09-20 Mendoza 6000.00
4 Rodríguez Ana 1992-07-10 Santa Fe 4500.00
5 Pérez Luis 1987-11-08 Tucumán 5500.00
6 González Laura 1995-03-29 Entre Ríos 8000.00
7 Silva Pedro 1989-02-17 Salta 4000.00
8 Fernández Paula 1991-06-05 San Juan 6500.00
9 Ramírez Andrés 1993-08-22 Jujuy 5500.00
10 Smith John 1986-04-12 Córdoba 7500.00

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.

SELECT apellido, nombre, comision AS "Comisión de ventas" FROM vendedores

apellido nombre Comisión de ventas


López Juan 5000.00
García María 7000.00
Martínez Carlos 6000.00
Rodríguez Ana 4500.00
Pérez Luis 5500.00
González Laura 8000.00
Silva Pedro 4000.00
Fernández Paula 6500.00
Ramírez Andrés 5500.00
Smith John 7500.00

Cálculos y operaciones: se pueden realizar cálculos y operaciones en las columnas


seleccionadas utilizando operadores aritméticos y funciones incorporadas.

Por ejemplo, si se necesita una nueva columna, donde se quiere colocar el 15% de la comisión
de ventas que recibe el vendedor:

SELECT apellido, nombre, comisión, comision * 15/100 AS premio FROM


vendedores

apellido nombre comision premio


López Juan 5000.00 750.00
García María 7000.00 1050.00
Martínez Carlos 6000.00 900.00
Rodríguez Ana 4500.00 675.00
Pérez Luis 5500.00 825.00
González Laura 8000.00 1200.00
Silva Pedro 4000.00 600.00
Fernández Paula 6500.00 975.00
Ramírez Andrés 5500.00 825.00
Smith John 7500.00 1125.00

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:

SELECT * FROM vendedores

WHERE provincia="Córdoba";

id apellido nombre fechanac provincia comision


2 García María 1990-12-03 Córdoba 7000.00
10 Smith John 1986-04-12 Córdoba 7500.00

Ordenamiento de resultados: se puede ordenar los resultados utilizando la cláusula ORDER


BY, en función de una o más columnas, ya sea en orden ascendente o descendente. En este
caso, se ordena de forma ascendente por apellido:

SELECT * FROM vendedores

ORDER BY apellido;

Id apellido nombre fechanac provincia comision


8 Fernández Paula 1991-06-05 San Juan 6500.00
2 García María 1990-12-03 Córdoba 7000.00
6 González Laura 1995-03-29 Entre Ríos 8000.00
1 López Juan 1985-05-15 Buenos Aires 5000.00
3 Martínez Carlos 1988-09-20 Mendoza 6000.00
5 Pérez Luis 1987-11-08 Tucumán 5500.00
9 Ramírez Andrés 1993-08-22 Jujuy 5500.00
4 Rodríguez Ana 1992-07-10 Santa Fe 4500.00
7 Silva Pedro 1989-02-17 Salta 4000.00
10 Smith John 1986-04-12 Córdoba 7500.00

En este otro ejemplo, se ordena de forma descendente por comisión de ventas:

SELECT * FROM vendedores

ORDER BY comisión DESC;

Id apellido nombre fechanac provincia comision


6 González Laura 1995-03-29 Entre Ríos 8000.00
10 Smith John 1986-04-12 Córdoba 7500.00
2 García María 1990-12-03 Córdoba 7000.00
8 Fernández Paula 1991-06-05 San Juan 6500.00
3 Martínez Carlos 1988-09-20 Mendoza 6000.00
5 Pérez Luis 1987-11-08 Tucumán 5500.00
9 Ramírez Andrés 1993-08-22 Jujuy 5500.00
1 López Juan 1985-05-15 Buenos Aires 5000.00
4 Rodríguez Ana 1992-07-10 Santa Fe 4500.00
7 Silva Pedro 1989-02-17 Salta 4000.00

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.

Ejemplo: mostrar el total de vendedores que hay por cada provincia:

SELECT provincia, count(provincia) as cantidad FROM vendedores

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:

select apellido, nombre, comision_ventas from vendedores


order by comision_ventas desc
limit 3;
apellido nombre comision
González Laura 8000.00
Smith John 7500.00
García María 7000.00

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.

Ejemplos con tablas relacionadas


Para los siguientes ejemplos, se utilizarán las siguientes tablas:

Autores:

Id_autor Nombre Nacionalidad


1 J.K. Rowling Reino Unido
2 Stephen King Estados Unidos
3 Gabriel García Márquez Colombia

Libros:

Id_libro Titulo Anio_publicacion Id_autor


1 Harry Potter y la piedra filosofal 1997 1
2 It 1986 2
3 Cien años de soledad 1967 3
4 Una vacante imprevista 2012 1
5 El resplandor 1977 2
6 Crónica de una muerte anunciada 1981 3
7 Inconmensurable 1991 2
8 El amor en los tiempos del cólera 1985 3

Ejemplo 1: Mostrar el nombre de cada libro con su autor

SELECT libros.titulo, autores.nombre FROM autores, libros


WHERE autores.id_autor = libros.id_autor;

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

SELECT autores.nombre, autores.nacionalidad, libros.titulo,


libros.anio_publicacion as "año de publicación"
FROM autores, libros
WHERE autores.id_autor = libros.id_autor
ORDER BY titulo;
Nombre Nacionalidad Titulo Año de
publicación
Gabriel García Colombia Cien años de soledad 1967
Márquez
Gabriel García Colombia Crónica de una muerte 1981
Márquez anunciada
J.K. Rowling Reino Unido El alquimista 1988
Gabriel García Colombia El amor en los tiempos del 1985
Márquez cólera
Stephen King Estados Unidos El resplandor 1977
J.K. Rowling Reino Unido Harry Potter y la piedra filosofal 1997
Stephen King Estados Unidos Inconmensurable 1991
Stephen King Estados Unidos It 1986

Funciones agregadas (o funciones de agregación)


Las funciones agregadas en SQL son funciones que se utilizan para realizar cálculos y
operaciones en conjuntos de datos, como columnas en una tabla. Son muy útiles para resumir
y analizar datos en tablas. Algunas de las funciones agregadas más comunes son:

COUNT: Calcula el número de filas o valores no nulos en una columna o un conjunto de


resultados.

SUM: Calcula la suma de los valores en una columna o un conjunto de resultados.

AVG: Calcula el promedio de los valores en una columna o un conjunto de resultados.

MIN: Encuentra el valor mínimo en una columna o un conjunto de resultados.

MAX: Encuentra el valor máximo en una columna o un conjunto de resultados.


Ejemplos:

Se tiene la tabla sucursales con los siguientes datos:

Monto total de ventas de todas las sucursales:


Cantidad de sucursales:

Promedio de ventas de las sucursales:

El monto máximo vendido por las sucursales:

Agrupar conjuntos de registros


La cláusula GROUP BY se utiliza para agrupar filas en función de una o varias columnas en una
consulta. Permite dividir los datos en grupos basados en los valores de una o varias columnas y
aplicar operaciones de agregación en cada grupo.
Cuando se utiliza la cláusula GROUP BY, los registros de la tabla se agrupan en conjuntos
distintos según los valores de las columnas especificadas. Luego, se pueden aplicar funciones
de agregación, como SUM, COUNT, AVG, MAX o MIN, a cada grupo para obtener resultados
agregados.

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.

La condición en la cláusula HAVING puede incluir operadores de comparación y combinar


múltiples condiciones utilizando operadores lógicos.

Sintaxis:

SELECT columna1, columna2, ..., columnaN, funcion_de_agregacion


FROM tabla
GROUP BY columna1, columna2, ..., columnaN
HAVING condicion;

Ejemplos

Se tiene la tabla Vendedores con 50 registros:

al agrupar por provincia, queda de la siguiente manera:


Al agrupar por localidad:
Si se aplican funciones de agregación:

Total de vendedores por localidad:


Mostrar las localidades que tienen 4 o más vendedores

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:

Se tiene una tabla llamada "empleados" y se desea actualizar el salario de un empleado


específico con un nuevo valor. Por ejemplo, actualizar el salario del empleado con ID igual a
123 a 5000:

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.

Ejemplo 1: Actualizar un solo registro basado en una condición

UPDATE empleados
SET salario = 55000
WHERE id = 1;
Este ejemplo actualiza el salario del empleado con id 1 a 55000.

Ejemplo 2. Actualizar múltiples registros que cumplen con una condición

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.

Ejemplo 3. Actualizar varias columnas en una sola sentencia

UPDATE empleados
SET salario = 60000, puesto = 'Gerente'
WHERE id = 3;
Este ejemplo establece el salario y el puesto del empleado con id 3.

Ejemplo 4. Actualizar con condiciones complejas

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:

DELETE FROM nombre_tabla


[WHERE condicion]
nombre_tabla: especifica el nombre de la tabla de la cual deseas eliminar registros.

[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:

DELETE FROM clientes


WHERE edad >= 60;
Este ejemplo eliminará todos los registros de la tabla "clientes" que cumplan con la condición
especificada (en este caso, aquellos con una edad mayor o igual a 60).

Ejemplo: Eliminar un solo registro

DELETE FROM empleados


WHERE id = 1;
Este ejemplo elimina al empleado con id 1.

Ejemplo 2: Eliminar múltiples registros que cumplen con una condición

DELETE FROM empleados


WHERE departamento_id = 2;
Este ejemplo elimina todos los empleados del departamento 2.

Ejemplo 3. Eliminar todos los registros de una tabla

DELETE FROM empleados;


Este ejemplo elimina todos los registros de la tabla empleados.

Ejemplo 4: Eliminar registros con condiciones complejas

DELETE FROM empleados


WHERE salario < 30000 AND antiguedad > 5;
Este ejemplo elimina a los empleados con un salario menor a 30000 y con más de 5 años de
antigüedad.

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.

También podría gustarte