Consultas SQL (DML)
Los procesos Básicos BD.
Agregar insert into
Consultar select
Modificar update
Borrar delete
CRUD
Create
Read
Update
Delete
Consultar
w3schools en español
Mysql.
Cláusula WHERE
Se pueden restringir las filas recuperadas usando la
cláusula WHERE. Una cláusula WHERE contiene una
condición lógica, la cual usa operadores de
comparación. Las filas procesadas son aquellas en que
los datos que contienen satisfacen la/s condición/es
lógicas.
Operadores de
Comparación
Insert into
1.
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2.
INSERT INTO table_name
VALUES (‘value1’, ’value2’, ’value3’, ...);
Update
UPDATE table_name
SET column1 = ’value1’, column2 = ’value2’, ...
WHERE condition;
delete
DELETE FROM table_name WHERE condition;
Recuperación de Datos
Select
Conceptos básicos
Cláusula WHERE
Se pueden restringir las filas recuperadas usando la
cláusula WHERE. Una cláusula WHERE contiene una
condición lógica, la cual usa operadores de
comparación. Las filas procesadas son aquellas en que
los datos que contienen satisfacen la/s condición/es
lógicas.
Select * from tabla
Select * from tabla where atrib=‘valor’
Operadores de
Comparación
Dos Ideas - La visión de Sistemas desde el
And - Or
Condición compuesta. Las condiciones compuestas
están formadas por múltiples condiciones simples
conectadas por AND u OR. No hay límites en el
número de condiciones simples que pueden
presentarse en una sola instrucción SQL.
SELECT nomTienda
FROM Tiendas
WHERE ventas > 100
OR (ventas < 500 AND ventas > 275);
SQL IN
Presenta dos usos pero cuando se usa con el WHERE,
sabemos exactamente el valor de los valores
regresados que deseamos ver para al menos una de
las columnas.
SELECT *
FROM Tiendas
WHERE nomTienda IN (‘carmelita', ‘sanjuan');
SQL BETWEEN
Mientras que la palabra clave IN ayuda a las personas a
limitar el criterio de selección para uno o más valores
discretos, la palabra clave BETWEEN permite la
selección de un rango.
SELECT nombre, numsocio
FROM Socios
WHERE fecha_inscripcion BETWEEN ‘1990-01-01'
AND ‘1999-12-31';
NOTA: SE DEBERA DE REVISAR EL
FORMATO CON EL CUAL SE GUARDA
LA FECHA EN BD POR QUE VARIA PARA
CADA GESTOR.
Operadores de
Comparación
Like: No siempre se conoce el valor exacto a buscar. Se pueden seleccionar
filas que coincidan con un patrón de caracteres usando el operador LIKE.
PATRONES DEL LIKE
'A_Z': Toda línea que comience con 'A', otro carácter y
termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z' deberían
satisfacer la condición, mientras 'AKKZ' no debería
(debido a que hay dos caracteres entre A y Z en vez de
uno).
'ABC%': Todas las líneas que comienzan con 'ABC'. Por
ejemplo, 'ABCD' y 'ABCABC' ambas deberían satisfacer la
condición.
'%XYZ': Todas las líneas que terminan con 'XYZ'. Por
ejemplo, 'WXYZ' y 'ZZXYZ' ambas deberían satisfacer la
condición.
'%AN%': : Todas las líneas que contienen el patrón 'AN' en
cualquier lado. Por ejemplo, 'LOS ANGELES' y 'SAN
FRANCISCO' ambos deberían satisfacer la condición.
Condiciones múltiples
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna"
LIKE {patrón};
Operadores de
Comparación
Is null, Is not null: testean valores nulos.
Cláusula ORDER BY
El orden de las filas recuperadas por el resultado de una consulta es indefinido.
Server no puede buscar y traer las filas en el mismo orden para una
consulta ejecutada dos veces. La cláusula ORDER BY puede ser utilizada
para ordenar las filas.
El orden por defecto es ascendente, entonces:
• Los valores numéricos se muestran con el valor más bajo en primer lugar,
por ejemplo 1 a 999.
• Los valores de fecha se muestran con el valor más temprano en primer
lugar, por ejemplo 01-01-1992 antes que 01-01-1995.
• Los valores de caracteres se muestran en orden alfabético, por ejemplo
primero la A y último la Z.
• Los valores nulos se muestran últimos en las secuencias ascendentes y
primeros en las secuencias descendentes.
SQL ORDER BY
Esto podría ser en orden ascendente, en orden descendente, o
podría basarse en valores numéricos o de texto. En tales casos,
podemos utilizar la palabra clave ORDER BY para alcanzar
nuestra meta. [ASC|DESC]
SELECT nomTienda, Ventas, fechaVta
FROM Tiendas
ORDER BY Ventas DESC;
SELECT nomTienda, fechaVta
FROM Tiendas
ORDER BY Venta DESC, fechaVta ASC;
SELECT nomTienda, Ventas, fechaVta
FROM Tiendas
ORDER BY 2 DESC;
Funciones Aritméticas
• AVG
• COUNT
• MAX
• MIN
• SUM
AVG
Calcula la media aritmética o promedio de un conjunto de
valores contenidos en un campo especificado de una consulta.
SELECT Avg(Precio) FROM Productos;
SUM
Obtener la sumatoria de todo un campo numérico evitando los
NULLS.
SELECT SUM(Ventas) FROM Tiendas;
COUNT
Esto nos permite COUNT el número de filas en una tabla
determinada.
SELECT COUNT (nomTienda) FROM Tiendas;
MIN y MAX
Devuelven el mínimo o el máximo de un conjunto de valores
contenidos en un campo especifico de una consulta.
SELECT Min(Ventas) FROM Tiendas;
SELECT Max(Ventas) FROM Tiendas;
Funciones de Grupo
• Permiten obtener
información agrupada
que existe en una tabla,
perdiendo de esta
manera el detalle de
cada fila en particular.
• A excepción de la función
COUNT(*), ignoran los
valores nulos.
Funciones de Grupo
Cláusula GROUP BY
• Si se usa la cláusula GROUP BY en una sentencia SELECT, se dividen las
filas de una tabla o vista consultada en grupos. Si se omite la cláusula
GROUP BY, se aplican las funciones de grupo en la lista SELECT a todas
las filas en la tabla o vista consultada.
Ejemplo
Cláusula HAVING
Se usa para restringir cuáles grupos de filas, definidas por
la cláusula GROUP BY, son retornadas por la consulta. Se
procesan las cláusulas WHERE, GROUP BY y HAVING de
la siguiente manera:
[Link] la sentencia contiene una cláusula WHERE, se
remueven todas las filas que no la satisfacen.
[Link] calcula y da formato a los grupos como se
especifica en la cláusula GROUP BY.
[Link] remueve todos los grupos que no satisfacen
la cláusula HAVING.
Se deben especificar las cláusulas GROUP BY y HAVING
después de la cláusula WHERE. Si se especifican
ambas cláusulas (GROUP BY y HAVING), ellas pueden
aparecer en cualquier orden.
Las funciones de grupo pueden aparecer en la lista de la
cláusula SELECT y en la cláusula HAVING.
Cláusula HAVING
Relaciones de Tablas
Se utilizan las restricciones de clave especificadas sobre
las tablas a relacionar, para mantener la consistencia
entre filas de las tablas. Informalmente, una restricción
de integridad referencial asevera que una fila en una
tabla haciendo referencia a otra tabla debe referenciar a
una fila existente en la tabla destino. Una restricción de
integridad referencial se establece a través de una clave
foránea (explícita o implícita).
Relaciones de Tablas
Es necesario identificar columnas comunes que
establezcan una relación entre las tablas.
En la cláusula WHERE, se define la relación entre las tablas
que aparecen en la cláusula FROM utilizando operadores
de comparación.
El operador más común para relacionar tablas es el
operador de igualdad (=). Se denomina unión de
igualdad si se relacionan dos tablas utilizando el
operador de igualdad.
Relaciones de Tablas
Además de especificar la condición de unión en la cláusula
WHERE, es posible especificar otras condiciones para
limitar las filas recuperadas. Tales uniones son
denominadas uniones complejas.
• Si múltiples tablas poseen los mismos nombres de
columna, los nombres de columna duplicados deben ser
cualificados en la consulta con el nombre de tabla.
Inner join
Select * from tabla1 inner join tabla2 on [Link] = [Link]
select * from empleados inner join departamentos on
empleados.id_departamento = [Link];
select [Link], [Link], apellidos,
[Link] from empleados inner join
departamentoson empleados.id_departamento =
[Link];