Mapa de Lenguaje SQL y Funciones
Mapa de Lenguaje SQL y Funciones
SQL
SENTECIAS BASICAS FUNCIONES OPERACIONES SOBRE CONJUNTOS OPERADORES SUBCONSULTAS CONSULTA MULTIPLES TABLAS SUBCONSULTAS RELACIONADAS
DDL:«Lenguaje de Definición de Datos» Son sentencias que DML:«Lenguaje de Manipulación de Datos» Me permiten DCL:«Lenguaje de Control de datos» Me permite otorgar Otras sentencias basicas: Funciones de agregación: Estas consultas utilizan al menos dos SELECT cuyos OPERADORES ARITMETICOS SQL Una subconsulta es una consulta anidada dentro de otra Las consultas a múltiples tablas se utilizan para combinar
nos permiten definir, alterar, modificar objetos dentro de mi consultar, actualizar, insertar o eliminar los datos o registros permisos a uno o mas roles para determinadas tareas, así Dentro del lenguaje SQL existen muchas funciones resultados que se pueden combinar para formar Operador Descripción consulta principal. La subconsulta se ejecuta primero y su información de dos o más tablas relacionadas en una sola
base de datos. de las tablas. como el control de accesos a la base de datos. + Sumar resultado se utiliza en la consulta principal para obtener un consulta.
que me permiten obtener diferentes resultados en una única consulta. Se basan en los operadores - Restar Definición: Una subconsulta correlacionada es una
resultado más específico
base a las necesidades que tengamos, una de esas matemáticos de conjuntos (unión, intersección y * Multiplicar subconsulta que depende de la consulta principal para
son las funciones de agregación SQL, estas diferencia). / Dividir obtener su resultado. La subconsulta se ejecuta una vez por
TRUNCATE: Elimina todos los registros de una tabla. % Modulo cada fila de la consulta principal.
funciones me permiten realizar cálculos u
CREATE : Permite crear objetos dentro de la base de SELECT: Recupera datos de una tabla de base de datos. * GRANT: Usado para otorgar privilegios de acceso de operaciones sobre los registros de una tabla y INNER JOIN
Ejemplo: Paso 2: Paso 3: Paso 4 : Resolver mediante Consultas
datos, los objetos que podemos crear los listamos a usuario a la base de datos. sobre una o varias columnas. Ejemplo 1: Seleccionar el trabajo (JOB) y los Establece la unión entre 2 tablas o conjunto de resultados, Ejemplo: Mostrar el nombre de los empleados donde la
* INSERT: Inserta un tipo de dato en el atributo de una ¿Cómo podemos identificar las 4 tablas? En segundo lugar nos piden «cuantos y que productos fueron
continuación: salarios máximo y mínimo (SALARY) de cada grupo donde los valores sean exactos en ambas tablas. comisión sea mayor a la mitad del sueldo
entidad o tabla de la base de datos. De los CLIENTES debemos registrar: En primer lugar, porque en el ejercicio nos están pidiendo registrados en cada venta», si bien es cierto que podríamos
* Procedimientos almacenados * REVOKE: Utilizado para retirar privilegios de acceso * UNION: Combina los resultados de dos consultas en un solo de filas con el mismo código de trabajo en la tabla «registrar la ventas», así que para poder guardar las ventas registrar los productos con sus características en la tabla Total de las ventas diarias por cliente que está generando.
* Tablas otorgados con el comando GRANT. Eliminar todos los registros de la tabla "clientes" conjunto, eliminando las filas duplicadas. Las columnas SELECT NOMBRE
* Bases de datos
* UPDATE : Modifica registros existentes en una tabla. EMPLOYEE Nombres y Apellidos necesitamos crear nuestra primera tabla (VENTAS). (VENTAS_DETALLE) no sería lo más óptimo, lo ideal es separar Ordenadas por fecha.
devueltas en ambas consultas deben coincidir en número y FROM EMPLEADO
Documento de identidad cada objeto y relacionarlo a través de un campo. Así que Mostrar (nombres, DNI, correo) del cliente.
* Desencadenadores * DELETE : Elimina registros de una tabla. TRUNCATE TABLE clientes; tipo de columnas WHERE COMISION > SUELDO / 2;
- COUNT( ): Cuenta el número de registros o valores no nulos OPERADORES SQL BIT A BIT SELECT JOB, MAX(SALARY), MIN(SALARY) Correo Adicional a eso nos piden registrar el detalle de cada una de tenemos que crear nuestra tercera tabla (PRODUCTOS).
* Funciones
de una columna. Operador Descripcion las ventas, muy bien, para registrar el detalle de la ventas SELECT
* Vistas, Índices entre otros. EJEMPLO 1: FROM EMPLOYEE
& Bitwise AND De los PRODUCTOS tenemos que registrar: debemos crear nuestra segunda tabla (VENTAS_DETALLE), [Link] AS FECHA,
1. Otorgar el privilegio SELECT (lectura) en la tabla "clientes" SELECT nombre FROM provincias | Bitwise OR GROUP BY JOB; además tenemos que identificar que debemos crear nuestra [Link] AS NOMBRE_CLIENTE,
ALTER: Modifica la estructura de una tabla u otro a un usuario llamado "usuario1": UNION ^ Bitwise exclusive OR
SELECT COUNT(*) AS TotalRegistros FROM tabla; Código primera relación entre la tabla VENTAS y VENTAS_DETALLE a [Link] AS APELLIDO_CLIENTE,
objeto. SELECT nombre FROM comunidades OTROS EJEMPLOS DE SUBCONSULTAS
1. Seleccionar todos los registros de la tabla "clientes": Ejemplo 2: Una las tablas EMP_ACT y EMPLOYEE, Nombre través del uso de clave primaria y foránea. [Link] AS DNI_CLIENTE,
GRANT SELECT ON clientes TO usuario1; Descripción [Link] AS CORREO_CLIENTE, CORRELACIONADAS
DROP: Elimina una tabla, vista u otro objeto de la base * MIN( ): Esta función me permite obtener el mínimo valor de seleccione todas las columnas de la tabla EMP_ACT
SELECT * FROM MiBaseDeDatos; una expresión a evaluar. y añada el apellido del empleado (LASTNAME) de la Valor de descuento SUM([Link]) AS TOTAL_VENTAS
de datos. 2. Otorgar los privilegios INSERT (inserción) y UPDATE El operador UNION une los resultados de varios SELECT. Pero Subconsulta correlacionada en la cláusula WHERE
2. Seleccionar el nombre y el correo electrónico de todos los FROM VENTAS VEN INNER JOIN CLIENTES CLI
(actualización) en la tabla "pedidos" a un rol llamado si hay datos duplicados en ellos, elimina los mismos. tabla EMPLOYEE a cada fila del resultado.
clientes cuyo nombre comience con "A": SELECT MIN(precio) AS PrecioMinimo FROM productos; De las VENTAS debemos registrar: ON ([Link] = [Link])
"rol_ventas": GROUP BY [Link], [Link], [Link], [Link], SELECT columna1, columna2
SELECT nombre, email FROM clientes WHERE nombre like * MAX( ): Esta función me permite obtener el máximo valor de OPERADORES COMPUESTOS SQL SELECT EMP_ACT.*, LASTNAME Al cliente que se le ha hecho la venta [Link] FROM tabla1
GRANT INSERT, UPDATE ON pedidos TO rol_ventas; EJEMPLO 2: Operador Descripcion FROM EMP_ACT, EMPLOYEE Fecha de la venta ORDER BY [Link] WHERE columna3 = (SELECT columna3 FROM tabla2
'A%'; una expresión a evaluar.
1. CREATE SELECT nif, nombre,apellido1,apellido2 += Add equals WHERE EMP_ACT.EMPNO = [Link] Cuantas unidades y cuales productos hemos vendido WHERE [Link] = [Link]);
3. Revocar el privilegio SELECT en la tabla "clientes" de un FROM clientes -= Subtract equals Análisis:
3. Insertar un nuevo cliente en la tabla "clientes": SELECT MAX(precio) AS PrecioMaximo FROM productos; *= Multiply equals
Creamos una nueva base de datos: usuario llamado "usuario1": UNION Paso 1: Análisis Subconsulta correlacionada en la cláusula SELECT
SELECT nif, nombre,apellido1,apellido2 /= Divide equals Ejemplo 3: Una las tablas EMPLOYEE y
INSERT INTO clientes (id, nombre, email) values (1, 'Jean', * AVG( ): Esta función me devuelve el valor promedio de la Al leer el ejercicio y lo que nos están pidiendo nos damos Revisando la consulta que hemos escrito nos damos cuenta
REVOKE SELECT ON clientes FROM usuario1; FROM socios; %= Modulo equals DEPARTMENT, seleccione el número del empleado SELECT columna1, (SELECT COUNT(*) FROM tabla2
'jean@[Link]'); expresión a evaluar, hay que tener en cuenta que dicha &= Bitwise AND equals cuenta que podemos identificar 4 tablas: que usamos la función de agrupación SUM() para obtener el
CREATE DATABASE MiBaseDeDatos; (EMPNO), el apellido de empleado (LASTNAME), el total de las ventas, cuando usamos funciones de agrupación WHERE [Link] = [Link]) AS total
expresión debe ser numérica, en caso contrario la consulta me ^-= Bitwise exclusive equals
4. Revocar todos los privilegios en la tabla "pedidos" de un rol número de departamento (WORKDEPT en la tabla CLIENTES debemos usar en conjunto con la cláusula GROUP BY debido a FROM tabla1;
4. Actualizar el correo electrónico de un cliente específico en la devolverá un mensaje de error. |*= Bitwise OR equals
Creamos una nueva tabla llamada "Clientes" en una base de tabla "clientes": llamado "rol_ventas": EMPLOYEE y DEPTNO en la tabla DEPARTMENT) y el PRODUCTOS que estamos agrupando un conjunto de resultados, y además
datos existente: VENTAS los campos que van listados junto al GROUP BY son todos los Subconsulta correlacionada en la cláusula HAVING
SELECT AVG(edad) AS EdadPromedio FROM usuarios; nombre de departamento (DEPTNAME) de todos los
UPDATE clientes SET email = 'nuevo_email@[Link]' REVOKE ALL PRIVILEGES ON pedidos FROM rol_ventas; VENTAS_DETALLE campos que están fuera de la función SUM().
empleados que han nacido (BIRTHDATE) con SELECT columna1, COUNT(*) AS total
WHERE id = 1; * SUM( ): Esta funcion me devuelve la suma de todos los Para relacionar las VENTAS realizadas con cada CLIENTE
USE MiBaseDeDatos; * INTERSECT: De la misma forma, la palabra INTERSECT anterioridad a 1955. FROM tabla1
valores especificados en la expresión, así mismo solo debe hacemos uso del INNER JOIN, por medio del campo ID de la
CREATE TABLE clientes ( permite unir dos consultas SELECT de modo que el resultado GROUP BY columna1
5. Eliminar un cliente de la tabla "clientes" por su ID: usarse con expresiones numéricas, caso contrario nos tabla CLIENTES y el campo ClienteID de la tabla VENTAS.
id INT PRIMARY KEY, serán las filas que estén presentes en ambas consultas. SELECT EMPNO, LASTNAME, WORKDEPT, HAVING COUNT(*) > (SELECT AVG(total) FROM tabla2);
retornará un mensaje de error en la consulta.
nombre VARCHAR(50), DELETE FROM clientes WHERE id = 1; DEPTNAME FROM EMPLOYEE, DEPARTMENT
email VARCHAR(100) EJEMPLO: tipos y modelos de piezas que se encuentren sólo
SELECT SUM(ventas) AS TotalVentas FROM productos; en los almacenes 1 y 2:
WHERE WORKDEPT = DEPTNO
); AND YEAR(BIRTHDATE) < 1955
* GROUP BY: Cuando hacemos una consulta con varias SELECT tipo,modelo FROM existencias
Crear una nueva vista que muestre los nombres y correos columnas y usamos funciones de agregación SQL, usamos la
electrónicos de los clientes: WHERE n_almacen=1 Ejemplo 4: Seleccione el trabajo (JOB) y los
sentencia GROUP BY para poder recuperar el resultado de la INTERSECT salarios máximo y mínimo (SALARY) de cada grupo
consulta. Dentro de la sintaxis GROUP BY van a ir todas las SELECT tipo,modelo FROM existencias
columnas que no sean funciones de agregación SQL. de filas con el mismo código de trabajo en la tabla
CREATE VIEW VistaClientes AS WHERE n_almacen=2
EMPLOYEE, pero sólo para los grupos con más de
SELECT nombre, email FROM clientes; SELECT categoria, COUNT(*) AS TotalProductos FROM una fila y con un salario máximo mayor o igual que
productos GROUP BY categoria; 27000.
2. ALTER
Agregamos una columna "Teléfono" a la tabla "Clientes": SELECT JOB, MIN(SALARY), MAX(SALARY) FROM
EMPLOYEE
* EXCEPT (o MINUS): Con MINUS también se combinan dos
consultas SELECT de forma que aparecerán los registros del GROUP BY JOB
ALTER TABLE clientes HAVING COUNT(*) > 1
primer SELECT que no estén presentes en el segundo.
ADD teléfono VARCHAR(15); AND MAX(SALARY) >= 27000
EJEMPLO 1: ; tipos y modelos de piezas que se encuentren el Ejemplo 5: Seleccionar todas las filas de la tabla
Modificar el tipo de datos de la columna "Email" en la tabla
almacén 1 y no en el 2 EMP_ACT para los empleados (EMPNO) del
"Clientes":
departamento (WORKDEPT) 'E11'. (Los números
SELECT tipo,modelo FROM existencias
WHERE n_almacen=1
del departamento del empleado se muestran en la
ALTER TABLE clientes tabla EMPLOYEE.)
MINUS
ALTER COLUMN email NVARCHAR(150);
SELECT tipo,modelo FROM existencias
WHERE n_almacen=2; SELECT *
3. DROP
FROM EMP_ACT
EJEMPLO 2 CON EXCEPT: WHERE EMPNO IN
Eliminamos la tabla "Clientes" de la base de datos:
(SELECT EMPNO
SELECT nombre FROM personas
DROP TABLE clientes; FROM EMPLOYEE
EXCEPT
SELECT nombre FROM empleados; WHERE WORKDEPT = 'E11')
Eliminamos la vista "VistaClientes":
Ejemplo 6: En la tabla EMPLOYEE, seleccione el
DROP VIEW VistaClientes; número de departamento (WORKDEPT) y el salario
(SALARY) máximo del departamento para todos los
Eliminar la base de datos completa (ten en cuenta que esto departamentos cuyo salario máximo sea menor que
eliminará todo en la base de datos): el salario medio de todos los empleados.
AVG([Link])ASAVGSALARY,
COUNT(*) AS EMPCOUNT
FROM EMPLOYEE OTHERS
GROUP BY [Link]
) AS DINFO
WHERE THIS_EMP.JOB = 'SALESREP'
AND THIS_EMP.WORKDEPT = [Link]
SELECT EMP_ACT.EMPNO,PROJNO
FROM EMP_ACT
WHERE EMP_ACT.EMPNO IN
(SELECT [Link]
FROM EMPLOYEE
ORDER BY SALARY DESC
FETCH FIRST 10 ROWS ONLY)