Tema 6: DML - SELECT, INSERT, DELETE, UPDATE

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 9,11 KB

Tema 6

DML:

  • SELECT (consulta)
  • INSERT (nuevas filas)
  • DELETE (borrar filas)
  • UPDATE (modificar filas)

UPDATE: la sentencia UPDATE permite modificar el contenido existente de cualquier columna de cualquier fila de una tabla. Usaremos UPDATE cuando necesitemos modificar los datos.

DELETE: sentencia SQL que permite el borrado de registros de una tabla.

Funciones de comparación:

  • GREATEST: le pasamos dos o más valores y nos indica cual es el mayor valor
  • LEAST: le damos dos valores y nos indica cual es el menor valor.
  • IFNULL: devuelve un valor especificado si la expresión es NULL. Si la expresión NO ES NULA, esta función devuelve la expresión otra vez.
  • ISNULL: devuelve 1 o 0 dependiendo de si una expresión es NULL. Si la expresión es NULL, esta función devuelve 1. De lo contrario, devuelve 0. La indicamos un valor y nos indica si es nulo o no. Ejemplo le decimo si está vacío ese campo, si es verdad nos devuelve un 1 y si es mentira nos devuelve un cero.
  • STRCMP: compara las cadenas basándose en los códigos ASCII, para decirnos si son iguales o una es mayor que otra. (Es bastante utilizada)

Funciones del sistema:

  • DATABASE: te retorna el nombre de la base actual y si no tienes ninguna. Nos devuelve la base de datos en uso. Si no hay ninguna nos
  • USER: nos dice el nombre del usuario actualmente conectado
  • VERSION: muestra la versión actual del servidor mediante una cadena de texto.

Integridad referencial

A la hora de borrar no podemos borrar filas referenciales mediante clave desde la misma u otras tablas.

Las ajenas sirven para relacionar tablas y limitar los valores que puede tomar esa columna a los existentes en la columna que referencian o a nulos

Mysan: dan mayores prestaciones al no , y no tiene que hacer integridad diferencial.

Ventajas

  • MySAM: es el más adecuado para una alta tasa de consultas "selectivas" y operaciones no transaccionales.
  • InnoDB: es el más adecuado para operaciones paralelas de inserción / actualización / eliminación (debido al bloqueo de nivel de fila) y operaciones transaccionales (debido a la función de retroceso).
  • El motor de memoria (HEAP): es el más adecuado para un acceso rápido a los datos, ya que todo está almacenado en la RAM.

Contras

  • MyISAM: es peor para una alta tasa de consulta de "inserción / actualización". (debido al bloqueo de nivel de la mesa).
  • InnoDB: es peor cuando hay una combinación de operaciones no transaccionales y de solo lectura.
  • El motor de memoria (HEAP): es peor para el uso a largo plazo (debido a problemas de integridad de datos) y operaciones transaccionales.

Filtros WHERE

Condiciones impuestas a los registros para estar incluidos en el resultado.

Los filtros se construyen mediante expresiones (combinación de operadores, operados y funciones -> resultado).

  • Operadores aritméticos (+,-,*,/,%),
  • Operadores relacionales (>,<,><,>=,<=,=).
  • Operadores lógicos (AND, OR, NOT).
  • IN (permite comparar con varios valores y todos son aceptados), IS NOT, LIKE (nos permite comparar patrones de texto), LIMIT (a la hora de mostrar los resultados podemos limitar cuales vamos a sacar) y los paréntesis.
  • Operados constantes: (1,2,3 "Nacho", "2010-01-02)
  • Operadores variables (columna1, columna2 …)
  • Funciones.

SELECT * FROM <TB>;

SELECT <COL1> FROM <TB> WHERE <COL1>=<VALOR> AND (<col1>=valor> OR<colores>=<valor>);

Select <cols> FROM <TB> WHERE <col1> IN (<valorA>,<valor,…);

SELECT <cols> FROM <TB> WHERE <col1> BETWEEN <valora> AND <valor>;

SELECT <cols> FROM <TB> WHERE <col1> IS [NOT] NULL; [IS NULL/IS NOT NULL]

SELECT <cols> FROM <TB> WHERE <col1> LIKE <patrón>;

Nos permite comparar patrones de texto, Dentro del patrón podemos utilizar los caracteres comodines que son % Y _. El % hace referencia uno o varios caracteres. La _ hace referencia a un solo carácter.

SELECT <cols> FROM <TB> LIMIT X,Y A la hora de mostrar los resultados podemos delimitar cuales son los que vamos a sacar. X indica el número de filas del resultado que si quiero mostrar. Mientras que Y indica el índice de la primera fila que quiera mostrar.

Operador IS: me permite saber si el valor es nulo o no nulo (IS NULL/IS NOT NULL)

Ordenación

Order by

<Col> | <nº>

ASC: ascendente (por defecto) | DESC:descendente

Es la cláusula que nos permite ordenar el resultado de una consulta, podemos ordenar por una o varias columnas del resultado indicando cuales por nombre o por número.

Filtro LIMIT

Condiciones impuestas al número de registros devueltas por el resultado. El primer registro devuelto es el registro de índice 0.

Admite dos sintaxis:

Recuperar X registros devueltos, (los primeros).

A partir del Y de todos los registros devueltos recuperar X registros (con desplazamiento previo).

Un numero reduce las filas del resultado.

Si indicamos dos números, estamos indicando el índice de la primera fila que quiero mostrar, el Segundo número me indica cuantas quiero mostrar. Ejemplo 2,3

Consultas resumen

Consultas complejas que extraen información calculada de los conjuntos de registros. Convierte un conjunto variable de registros en un dato simple

Funciones de columna /funciones resumen

Sum: Devuelva la suma del campo "Cantidad" en la tabla

Avg: Devuelva el valor promedio para la columna. Ejemplo: "Precio" en la tabla "Productos":

Min: Encuentre el precio del producto más barato en la tabla

Max: Encuentre el precio del producto más caro en la tabla

Count: Devuelve el número de productos en la tabla.

Podemos añadir filtros restrictivos a los grupos

Los recoge con el mismo valor para una col.concreta pueden ser group by

El resultado de las funciones (func) resumen se aplicara a todos los registros o por grupos a todos los grupos, si necesitamos consultar a la vez func resum o columna es obligatorio crear grupo. El orden de la sintaxis es el que aparece Select-from-where -group byorder by -limit

El orden de ejecución para una consulta primero se realiza el where, el GROUP BY se crean los grupos, HAVING se filtran los grupos.

Filtros resumen

Clausulas group by having

Orden de sintaxis

SELECT-FROM-WHERE-GROUP BY-HAVING-ORDER BY-LIMIT

Orden de ejecución

WHERE, GROUP BY, HAVING

Subconsultas

Select ( … … ) SELECT( … … )

Tipos de subconsultas:

Comparación (=,>=,<=,<>,>,<) solo me puede devolver un valor, si me devuelve más de uno, no se pueden utilizar.

Pertenecía a conjunto (IN)

Existencia (exists(existe), no exists(no existe))

Multivalor: que tiene varios valores o puedes utilizar varios valores.

Having: se utiliza para incluir condiciones, having remplaza a where, ya que esta no puede utilizar SUN ni MAX.

Las subconsultas filtran los datos de otras consultas. Estos filtros podrán aplicarse a la cláusula web o a la cláusula Having. Según queramos filtra requisitos o grupos. Las subconsultas deben coincidir con el número de registro y de columnas con la consulta. Las subconsultas no suelen aparecer a la derecha del operador. En la subconsulta no suele utilizarse ordenación. Los nombres de columnas que aparecen en las subconsultas pueden referirse a la consulta principal. Se conoce como referencias estrenas.

Operador de existencia, se puede usar tanto para asistencia con para cuando no existe. Filtramos la consulta si existen filas en la subconsulta asociada.

Operadores cuantificados

ALL: me sirve para comparar con todos.

ANY: para comparar solo con algunos.

Consultas multivalor: utilizar más de una columna, en el apartado select de la subconsulta.

Importante

Subconsultas anidadas

select ( select( Select( … … ) ) )

Reflejan la potencia del lenguaje sql estructurado.

Nuestra estructura se basa en filas y columnas dentro de otra tabla y así se crea la base de datos.

Visualizar el número de departamento donde trabaja el empleado más veterano, en el mismo puesto que GIL.

Ejemplo: Averiguar la cuidad donde juega el jugador más alto de la nba.

SELECT ciudad FROM equipos WHERE nombre=(SELECT nombre_equipo FROM jugadores WHERE altura=(SELECT MAX(altura) F

Entradas relacionadas: