La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.

Presentaciones similares


Presentación del tema: "Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación."— Transcripción de la presentación:

1 Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación de la BD. El más popular es SQL. El SQL Lenguaje de consulta estructurado (Structured Query Language ) es un lenguaje declarativo(son aquellos lenguajes de programación en los cuales se le indica a la computadora que es lo que se desea obtener o que es lo que se está buscando.) de acceso a bases de datos El uso común de los comandos SQL es la selección de datos desde tablas ubicadas en una base de datos. Note que la tabla es un contenedor que reside en la base de datos donde se almacena la información

2 Tablas de ejemplo Autos

3 Clientes

4 INSERT Sintaxis básica para insertar datos en una tabla:
INSERT INTO nombre_tabla (campo1, campo2, ...) VALUES (valor1, 'cadena1', ...) Las cantidades de columnas y valores deben ser las mismas. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error. Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada, o sea no hace falta poner los nombres de las columnas.   Sólo podremos omitir un campo al efectuar una inserción cuando este acepte valores nulos. Pueden seleccionarse los nombres de columnas múltiples, y también los nombres de tablas múltiples. Si omitimos algún par " campo-valor " en la sentencia INSERT, pueden ocurrir varias cosas: Que se produzca un error , si el campo  no acepta valores nulos. Que se grabe el registro y se deje nulo el campo, cuando el campo acepte valores nulos. Que se grabe el registro y se tome el valor por defecto, cuando el campo tenga definido un valor por defecto.

5 Ejemplo: INSERT INTO autos (patente,marca,modelo,color,kilometraje) VALUES ('ABC123', 'RENAULT', 'MEGANE TR100', 'NEGRO DIAMANTE', 78000)

6 UPDATE Para modificar los datos de una tabla se usa UPDATE. Sintaxis:
UPDATE nombre_tabla SET campo_1 = nuevo_valor WHERE condición También es posible UPDATE múltiples campos al mismo tiempo. Sintaxis: UPDATE nombre_tabla SET campo_1 = valor1, campo_ 2 = valor2 WHERE condición Si hay múltiples filas que satisfacen la condición, todas ellas se modificarán.

7 Ejemplo: UPDATE autos SET Marca=‘Ford’ WHERE Modelo=‘Focus’ Asigna la cadena “Ford” en el campo marca, a todos los registros que tengan “Focus” como valor en el campo Modelo.

8 DELETE Para borrar registros de una tabla se usa DELETE FROM.Sintaxis:
DELETE FROM nombre_tabla WHERE condición Ejemplo: DELETE FROM Autos WHERE patente=‘ABC123’ Borra los registros de autos que tengan “ABC123” en el campo patente.

9 SELECT Para seleccionar registros de una tabla se usa la cláusula SELECT. Sintaxis: SELECT nombre_campo1, nombre_campo2 FROM nombre_tabla El símbolo * (asterisco) permite seleccionar todos los campos de una tabla.Sintaxis: SELECT * FROM nombre_tabla Pueden seleccionarse los nombres de columnas múltiples, y también los nombres de tablas múltiples. Si omitimos algún par " campo-valor " en la sentencia INSERT, pueden ocurrir varias cosas: Que se produzca un error , si el campo  no acepta valores nulos. Que se grave el registro y se deje nulo el campo, cuando el campo acepte valores nulos. Que se grave el registro y se tome el valor por defecto, cuando el campo tenga definido un valor por defecto.

10 SELECT marca FROM autos Resultado:
Ejemplo: SELECT marca FROM autos Resultado: Muestra sólo el campo “marca” de todos los registros de autos El número de valores en los paréntesis pueden ser uno o más, con cada valor separado por comas. Los valores pueden ser números o caracteres. Si hay sólo un valor dentro del paréntesis, este comando es equivalente a WHERE "nombre_columna" = 'valor1'

11 Para seleccionar todos los registros distintos de una tabla se usa DISTINCT.
Sintaxis: SELECT DISTINCT nombre_campo FROM nombre_tabla

12 Ejemplo: SELECT DISTINCT marca FROM Autos Resultado: Muestra sólo el campo “marca” de todos los registros de “autos”, omitiendo los valores repetidos.

13 Para seleccionar condicionalmente los datos de una tabla se usa la cláusula WHERE:
Sintaxis: SELECT nombre_campo FROM nombre_tabla WHERE condición

14 Ejemplo: SELECT telefono FROM Clientes WHERE nombre=‘Juan’ Resultado: Muestra el teléfono de todos los clientes cuyo nombre sea Juan.

15 La condición del WHERE puede ser una condición compuesta
La condición del WHERE puede ser una condición compuesta. Estas están formadas por múltiples condiciones simples conectadas por AND u OR. Sintaxis: SELECT nombre_campo FROM nombre_tabla WHERE condición simple AND/OR condición simple

16 SELECT patente FROM Autos WHERE modelo=‘Megane’ AND kilometraje>50
Ejemplo: SELECT patente FROM Autos WHERE modelo=‘Megane’ AND kilometraje>50 Resultado: Muestra la patente de los autos cuyo modelo sea MEGANE y su kilometraje sea mayor que 50. Esto seleccionará todas las filas cuya columna tenga un valor entre 'valor1' y 'valor2'.

17 La cláusula WHERE compara sus campos comúnmente con valores únicos, pero también es posible comparar con un "conjunto" de valores.  Esto es realizable a través del operador IN: Sintaxis: SELECT nombre_campo FROM nombre_tabla WHERE nombre_campo IN (valor1, valor2, ...)

18 Ejemplo: SELECT kilometraje FROM autos WHERE marca in (‘Ford’, ‘Renault’, ‘Fiat’) Resultado: Muestra el kilometraje de los autos cuya marca sea Ford o Renault o Fiat.

19 BETWEEN permite la selección de un rango de valores. Sintaxis:
SELECT nombre_campo FROM nombre_tabla WHERE nombre_campo BETWEEN valor1 AND valor2 Esto seleccionará todas las filas cuya columna tenga un valor entre 'valor1' y 'valor2'.

20 Ejemplo: SELECT * FROM autos WHERE kilometraje BETWEEN AND 20000 Resultado: Muestra todos los campos de los autos cuyo kilometraje esté entre y km.

21 LIKE permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea (como en IN) o determinar un rango (como en BETWEEN). Sintaxis: SELECT nombre_campo FROM nombre_tabla WHERE nombre_campo LIKE patrón

22 Patrón generalmente consiste en comodines.
'A_Z': Todas las líneas que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z' ‘F%':Todas las líneas que comienzan con 'F'. Por ejemplo, ‘Fiat' y ‘Ford' ‘%t‘: Todas las líneas que terminan con ‘t'. Por ejemplo, 'Renault', 'Fiat' y 'Peugeot' '%o%': Todas las líneas que contienen “o” en cualquier lado. Por ejemplo, 'Peugeot' y 'Ford'

23 SELECT * FROM autos WHERE modelo LIKE ‘GOL%’ Resultado:
Ejemplo: SELECT * FROM autos WHERE modelo LIKE ‘GOL%’ Resultado: Muestra todos los campos de los autos cuyo modelo comience con GOL. ASC significa que los resultados se mostrarán en orden ascendente, y DESC significa que los resultados se mostrarán en orden descendente. Si no se especifica ninguno, la configuración predeterminada es ASC. Además del nombre de la columna, podríamos utilizar la posición de la columna (según la consulta SQL) para indicar en qué columna deseamos aplicar la cláusula ORDER BY. La primera columna es 1, y la segunda columna es 2, y así sucesivamente. En el ejemplo anterior, alcanzaremos los mismos resultados con el siguiente comando: SELECT store_name, Sales, Date FROM Store_Information ORDER BY 2 DESC

24 ORDER BY nombre_campo1 ASC/DESC, nombre_campo2 ASC/DESC
Para enumerar el resultado en un orden particular (ascendente y descendente)se usa ORDER BY. Sintaxis: SELECT nombre_campo FROM nombre_tabla WHERE condición ORDER BY nombre_campo ASC/DESC Es posible ordenar por más de una columna. En este caso, la cláusula ORDER BY anterior se convierte en: ORDER BY nombre_campo1 ASC/DESC, nombre_campo2 ASC/DESC ASC significa que los resultados se mostrarán en orden ascendente, y DESC significa que los resultados se mostrarán en orden descendente. Si no se especifica ninguno, la configuración predeterminada es ASC. Además del nombre de la columna, podríamos utilizar la posición de la columna (según la consulta SQL) para indicar en qué columna deseamos aplicar la cláusula ORDER BY. La primera columna es 1, y la segunda columna es 2, y así sucesivamente. En el ejemplo anterior, alcanzaremos los mismos resultados con el siguiente comando: SELECT store_name, Sales, Date FROM Store_Information ORDER BY 2 DESC

25 SELECT * FROM autos WHERE marca=‘Ford’ ORDER BY modelo ASC,
Ejemplo: SELECT * FROM autos WHERE marca=‘Ford’ ORDER BY modelo ASC, kilometraje DESC Resultado: Muestra todos los campos de los autos de marca Ford ordenados alfabéticamente por modelo, y luego por kilometraje en forma descendente. COUNT nos permite contar número de filas en una tabla determinada. COUNT y DISTINCT pueden utilizarse juntos en una instrucción para determinar el número de las distintas entradas en una tabla. Por ejemplo, si deseamos saber el número de los distintos negocios, ingresaríamos, SELECT COUNT(DISTINCT store_name) FROM Store_Information La palabra clave GROUP BY se utiliza cuando estamos seleccionado columnas múltiples desde una tabla (o tablas) y aparece al menos un operador aritmético en la instrucción SELECT. Cuando esto sucede, necesitamos GROUP BY todas las otras columnas seleccionadas, es decir, todas las columnas excepto aquella(s) que se operan por un operador aritmético.

26 Es posible hacer cálculos matemáticos, para esto se utilizan las funciones:
AVG (promedio) COUNT (contar) MAX (máximo) MIN ( mínimo) - SUM (suma) La sintaxis para el uso de funciones es: SELECT tipo de función(nombre_campo) FROM nombre_tabla

27 SELECT AVG(kilometraje) FROM autos Resultado:
Ejemplo: SELECT AVG(kilometraje) FROM autos Resultado: Muestra el promedio de los kilometrajes de todos los autos. COUNT nos permite contar número de filas en una tabla determinada. COUNT y DISTINCT pueden utilizarse juntos en una instrucción para determinar el número de las distintas entradas en una tabla. Por ejemplo, si deseamos saber el número de los distintos negocios, ingresaríamos, SELECT COUNT(DISTINCT store_name) FROM Store_Information La palabra clave GROUP BY se utiliza cuando estamos seleccionado columnas múltiples desde una tabla (o tablas) y aparece al menos un operador aritmético en la instrucción SELECT. Cuando esto sucede, necesitamos GROUP BY todas las otras columnas seleccionadas, es decir, todas las columnas excepto aquella(s) que se operan por un operador aritmético.

28 Para agrupar por un campo específico se utiliza GROUP BY.
Sintaxis: SELECT nombre_campo1, SUM(nombre_campo2) FROM nombre_tabla GROUP BY nombre_campo1

29 Ejemplo: SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca Resultado: Muestra todas las marcas de autos con su promedio de kilometraje agrupado por marca.

30 Para limitar el resultado según alguna condición de función aritmética se usa HAVING.
Sintaxis: SELECT nombre_campo1, SUM(nombre_campo2) FROM nombre_tabla GROUP BY nombre_campo1 HAVING (condición de función aritmética)

31 Ejemplo: SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca HAVING AVG(kilometraje) < 50000 Resultado: Muestra todas las marcas de autos con su promedio de kilometraje agrupado por marca, siempre y cuando el promedio de km sea menor a 50000

32 Hay dos tipos de alias que se utilizan con mayor frecuencia
Hay dos tipos de alias que se utilizan con mayor frecuencia. Alias de columna y de tabla. Alias de columna: Para la organización del resultado. Existen casos donde el título de la columna puede complicarse (especialmente si incluye operaciones aritméticas). Alias de tabla: Se coloca un alias directamente luego del nombre de tabla en la cláusula FROM. Sintaxis: SELECT alias_tabla.nombre1_columna as alias_columna FROM nombre_tabla as alias_tabla Brevemente, ambos tipos de alias se colocan directamente después del elemento por el cual generan el alias, separados por “as”.

33 Ejemplo: SELECT COUNT(*) as Total de autos FROM autos Resultado: Muestra el total de autos. El nombre de la columna será “Total de Autos” en lugar de “COUNT(*)”.

34 Combinar sentencias Para insertar filas múltiples en una tabla se usa la siguiente sintaxis: INSERT INTO tabla1 (campo1, campo2, ...) SELECT campoA, campoB, ... FROM tabla2 A diferencia del ejemplo anterior, donde insertamos una única fila al especificar sus valores para todas las columnas, ahora utilizamos la instrucción SELECT para especificar los datos que deseamos insertar en la tabla. Para poder utilizar la inserción multiple de filas se deben cumplir las siguientes normas: La lista de campos de las sentencias insert y select deben coincidir en número y tipo de datos. Ninguna de las filas devueltas por la consulta debe infringir las reglas de integridad de la tabla en la que vayamos a realizar la inserción.

35 Ejemplo: INSERT INTO clientes SELECT * FROM proveedores Inserta todos los registros de proveedores en la tabla clientes (los campos de ambas tablas deben coincidir).

36 Trabajar con más de un tabla (JOIN)
Hay tres tipos de combinaciones: Combinaciones internas (INNER JOIN), Combinaciones externas (OUTER JOIN) y Combinaciones cruzadas (CROSS JOIN).

37 INNER JOIN (Combinaciones internas)
Sintaxis: SELECT campos FROM tabla1 JOIN tabla2 ON tabla1.campo1=tabla2.campo2

38 Ejemplo: SELECT * FROM clientes INNER JOIN autos ON clientes.patente=autos.patente Resultado: No muestra los clientes que no tienen auto, ni los autos que no tienen cliente.

39 OUTER JOIN (Combinaciones externas)
Existen tres tipos de combinaciones externas: Left outer join (o left join). Right outer join (o right join). Full outer join (o full join).

40 LEFT JOIN Sintaxis: SELECT campos FROM tablaizquierda LEFT JOIN tabladerecha ON tablaizquierda.campo= tabladerecha.campo Muestra todos los registros de la tabla izquierda (la primera tabla listada después de la cláusula from), Muestra todos los registros de tabla izquierda y los resgitros de tabla derecha que tienen el mismo valor en el campo de tabla izquierda.

41 Ejemplo: SELECT * FROM autos LEFT JOIN clientes ON autos.patente =clientes.patente Resultado: Muestra todos los autos, incluso los que no tienen cliente

42 RIGHT JOIN Sintaxis: SELECT campos FROM tablaizquierda RIGHT JOIN tabladerecha ON tablaizquierda.campo= tabladerecha.campo

43 Ejemplo: SELECT * FROM autos RIGHT JOIN clientes ON autos.patente =clientes.patente Resultado: Muestra todos los clientes, incluso los que no tienen auto

44 FULL JOIN Sintaxis: SELECT campos FROM tablaizquierda FULL JOIN tabladerecha ON tablaizquierda.campo1 = tabladerecha.campo2 Nótese el uso de alias de tabla

45 Ejemplo: SELECT * FROM autos AS A FULL JOIN clientes AS C ON A.patente =C.patente Resultado: Muestra todos los clientes, incluso los que no tienen auto; y todos los autos, incluso los que no tienen cliente

46 CROSS JOIN (Producto cartesiano)
Sintaxis: SELECT campos FROM tabla1 CROSS JOIN tabla2

47 Ejemplo: SELECT * FROM platos CROSS JOIN postres Muestra todas las combinaciones posibles (plato-postre).

48 Bibliografía http://sql.1keydata.com/es/sql-insert-into.php
Material de la materia gestión de datos


Descargar ppt "Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación."

Presentaciones similares


Anuncios Google