La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño de base de datos Tema 6 : LMD.

Presentaciones similares


Presentación del tema: "Diseño de base de datos Tema 6 : LMD."— Transcripción de la presentación:

1 Diseño de base de datos Tema 6 : LMD

2 1. Introducción T5: LMD El LMD es la parte del SQL que nos permite manipular datos (Lenguaje de Manipulación de Datos). Tenemos tres acciones posibles para manipular: Insertar datos (INSERT), Actualizar datos (UPDATE), Borrar datos (DELETE) y seleccionar datos (SELECT). 2

3 tuplas Nombre tabla INSERT INTO ( columnas ) , values ( valores ) , ,
3. LMD T5: LMD INSERT: sentencia para agregar una o mas tuplas a una tabla. tuplas Nombre tabla INSERT INTO ( columnas ) , values ( valores ) , , INSERT INTO nombre_tabla (columnas) values (valores), (mas valores); 3

4 INSERT INTO departamento VALUES ('RAS','RAAS');
3. LMD T5: LMD INSERT: INSERT INTO departamento VALUES ('RAS','RAAS'); INSERT INTO departamento(depto, nombre) VALUES ('GRA','GRANADA'); INSERT INTO departamento (depto) VALUES ('LEO'), (‘CHI’); 4

5 Nombre tabla UPDATE set where columna valor = condición , and/or
3. LMD T5: LMD UPDATE: sentencia para modificar una o mas tuplas a una tabla. Nombre tabla UPDATE set where columna valor = condición , and/or UPDATE nombre_tabla SET columna=valor WHERE condición; 5

6 3. LMD T5: LMD UPDATE: UPDATE departamento SET nombre='REGIONA', depto='RAAS' WHERE depto='RAS'; UPDATE departamento SET depto=‘GRN‘ WHERE depto=‘GRA‘ AND nombre=‘GRANADA’ ; 6

7 Nombre tabla DELETE condición and/or
3. LMD T5: LMD DELETE: sentencia para borrar una o mas tuplas a una tabla. Nombre tabla DELETE condición and/or DELETE FROM departamento WHERE depto=‘LEO'; 7

8 3. LMD T5: LMD SELECT: Permite recuperar una o varias tuplas de una o varias tablas, pudiendo tener una o varias condiciones. reunion condición * SELECT and/or Nombre tabla columna , , agrupados ordenados 8

9 SELECT * FROM departamento; SELECT depto FROM departamento;
3. LMD T5: LMD SELECT: SELECT * FROM departamento; SELECT depto FROM departamento; SELECT depto, nombre FROM departamento WHERE depto=‘GRN’; 9

10 agrupados group by Nombre columna ,
3. LMD T5: LMD agrupados La agrupación es la función que se encarga de formar grupos de las tuplas de una tabla. Estos grupos los hace basándose en columnas que se especifican. group by Nombre columna , 10

11 Funciones con agrupación.
3. LMD T5: LMD Funciones con agrupación. count: cuenta cada una de las filas del resultado de una consulta. Puede ser sobre toda la fila (*), o una columna(nombre_columna). sum: Suma los valores de una columna, si algunos de las columnas tienen el valor null el resultado será null. Todos los valores deben de ser numéricos. avg: Calcula la media de los valores de la columnas. Si alguno de los valores tiene null el resultado sera null. Todos los valores deben de ser numéricos. min: Regresa el valor mínimo de las columnas. max: Regresa el valor máximo de las columnas. 11

12 ordenamiento order by Nombre columna ASC/DESC ,
3. LMD T5: LMD ordenamiento El ordenamiento es la función que se encarga de ordenas las tuplas de una tabla o resultados de un resultado de una consulta. order by Nombre columna ASC/DESC , 12

13 3.1 SELECT T5: LMD La operación SELECT es la encargada de mostrar aquellos valores que tenemos en la base de datos. Se podría considerada la mas compleja y la esencia de las bases de datos. Veremos la relación de esta consulta con lo que es el algebra relacional. 13

14 SELECT DISTINCT nombre FROM Cliente;
T5: LMD SELECT DISTINCT nombre FROM Cliente; SELECT DISTINCT nombre, apellido FROM Cliente; Estas dos sentencias SQL nos regresaran los nombres (en el caso de la primera sentencia) y el apellido (en el caso de la segunda), pero no mostrara dos o más clientes con el mismo nombre. NOMBRE APELLIDO Juan Fonseca Rebeca Álvarez Meléndez NOMBRE APELLIDO Juan Fonseca Rebeca Álvarez 14

15 SELECT ALL nombre FROM Cliente;
T5: LMD SELECT ALL nombre FROM Cliente; SELECT ALL nombre, apellido FROM Cliente; Estas dos sentencias SQL nos regresarán los nombres (en el caso de la primera sentencia) y el apellido (en el caso de la segunda), sin importar que el nombre este repetido. Esta característica esta por defecto aunque no utilicemos ALL. NOMBRE APELLIDO Juan Fonseca Rebeca Álvarez Meléndez NOMBRE APELLIDO Juan Fonseca Rebeca Álvarez Meléndez 15

16 SELECT nombre, saldo-100 FROM Cliente;
T5: LMD Dentro del SELECT se puede poner operaciones matemáticas, lógicas, de renombre, valores estáticos, ETC. SELECT nombre, saldo-100 FROM Cliente; SELECT nombre, saldo-100 as valor FROM Cliente; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE Saldo-100 Juan 2400 Rebeca 400 30 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE valor Juan 2400 Rebeca 400 30 16

17 SELECT nombre, ‘son clientes’ FROM Cliente;
T5: LMD SELECT nombre, ‘son clientes’ FROM Cliente; SELECT nombre, saldo-100 as valor, 100 as quitado FROM Cliente; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE Son clientes Juan Rebeca NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE valor Quitado Juan 2400 100 Rebeca 400 30 17

18 IF(condición, en caso verdadero, Falso)
3.1 SELECT T5: LMD Dentro de la sección SELECT podemos colocar un condicional a los valores que mostraremos. Este condicional es la sentencia IF. IF(condición, en caso verdadero, Falso) SELECT nombre, IF(salario<200,’Muy poco’, valor) as valor FROM Cliente; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE valor Juan 2500 Rebeca 500 Muy poco 18

19 SELECT * FROM Cliente, Cuenta;
T5: LMD En la sección FROM del SELECT es donde pondremos los objetos de donde queremos mostrar los valores. Si tenemos lo siguiente: SELECT * FROM Cliente; Estaremos mostrando los valores del objeto, en este caso tabla, clientes. También podemos mostrar valores de mas de un objeto. SELECT * FROM Cliente, Cuenta; Esto produciría un producto cartesiano. En el caso que no se desee el producto cartesiano se puede incluir una clausula WHERE. 19

20 SELECT * FROM Cliente WHERE saldo=130;
T5: LMD La sección WHERE del SELECT es la encargada de restringir los valores que se muestran como resultado de una consulta. Existen tres formas de condicionar valores, una es teniendo el valor exacto (x=0), otra es teniendo parte del valor (nombre=‘j%’) y la última sería con un rango de valores. SELECT * FROM Cliente WHERE saldo=130; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Meléndez 130 20

21 SELECT * FROM Cliente WHERE nombre LIKE ‘%a%’;
T5: LMD SELECT * FROM Cliente WHERE nombre LIKE ‘%a%’; SELECT * FROM Cliente WHERE Saldo<300; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 21

22 SELECT * FROM Cliente WHERE nombre in (‘Juan’,’Maria’);
3.1 WHERE y el operador IN T5: LMD IN: Devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. SELECT * FROM Cliente WHERE nombre in (‘Juan’,’Maria’); SELECT * FROM Cliente WHERE Saldo=2500 AND Saldo=130; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo 22

23 SELECT * FROM Cliente WHERE Saldo=2500 OR Saldo=130;
T5: LMD SELECT * FROM Cliente WHERE Saldo=2500 OR Saldo=130; SELECT * FROM Cliente WHERE (Saldo=2500 OR Saldo=130) AND nombre=‘Rebeca’; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo 23

24 SELECT * FROM Cliente WHERE nombre NOT IN (‘Juan’,’Maria’);
T5: LMD SELECT * FROM Cliente WHERE nombre NOT IN (‘Juan’,’Maria’); SELECT * FROM Cliente WHERE NOT Saldo=2500 AND Saldo=130; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Rebeca Álvarez 500 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Meléndez 130 24

25 SELECT * FROM Cliente ORDER BY saldo;
T5: LMD SELECT * FROM Cliente ORDER BY saldo; SELECT * FROM Cliente ORDER BY saldo ASC; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Meléndez 130 Rebeca Álvarez 500 Fonseca 2500 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Meléndez 130 Rebeca Álvarez 500 Fonseca 2500 25

26 SELECT * FROM Cliente ORDER BY saldo DESC;
T5: LMD SELECT * FROM Cliente ORDER BY saldo DESC; SELECT * FROM Cliente ORDER BY saldo, Apellido ASC; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 130 Meléndez NOMBRE APELLIDO Saldo Rebeca Álvarez 130 Juan Meléndez Fonseca 2500 26

27 SELECT * FROM Cliente WHERE apellido =‘Juan’ ORDER BY saldo;
T5: LMD SELECT * FROM Cliente WHERE apellido =‘Juan’ ORDER BY saldo; SELECT * FROM Cliente ORDER BY saldo, Apellido ASC; NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 500 Meléndez 130 NOMBRE APELLIDO Saldo Juan Meléndez 130 Fonseca 2500 NOMBRE APELLIDO Saldo Juan Fonseca 2500 Rebeca Álvarez 130 Meléndez NOMBRE APELLIDO Saldo Rebeca Álvarez 130 Juan Meléndez Fonseca 2500 27

28 SELECT * FROM Cliente GROUP BY sexo;
T5: LMD SELECT * FROM Cliente GROUP BY sexo; NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F NOMBRE APELLIDO Sexo Rebeca Álvarez F NOMBRE APELLIDO Sexo Juan Fonseca M Rebeca Álvarez F 28

29 SELECT count(*) FROM Cliente GROUP BY sexo;
T5: LMD SELECT count(*) FROM Cliente GROUP BY sexo; NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez COUNT(*) 2 1 NOMBRE APELLIDO Sexo Rebeca Álvarez F 29

30 SELECT sexo, count(*) as cantidad FROM Cliente GROUP BY sexo;
T5: LMD SELECT sexo, count(*) as cantidad FROM Cliente GROUP BY sexo; NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Sexo cantidad M 2 F 1 NOMBRE APELLIDO Sexo Rebeca Álvarez F 30

31 3.1 COUNT T5: LMD NOMBRE APELLIDO Sexo Cedula Juan Fonseca M 09980 Meléndez 00998 Rebeca Álvarez F Cuando hacemos el conteo con count, sobre un atributo que contiene valores nulos, el count no los cuenta. Consulta Resultado Count(*) 3 Count(nombre) Count(Cedula) 2 31

32 3.1 SUM T5: LMD NOMBRE APELLIDO Salario edad Juan Fonseca 100 30 Meléndez 25 Rebeca Álvarez 200 Solo se puede sumar (sum) valores numéricos. Si algún valor es null es ignorado. Consulta Resultado sum(*) Produce error Sum(nombre) Sum(salario) 400 Sum(edad) 55 32

33 3.1 AVG T5: LMD NOMBRE APELLIDO Salario edad Juan Fonseca 100 30 Meléndez 25 Rebeca Álvarez 200 Solo se puede calcular la media (AVG) de valores numéricos. Si algún valor es null es ignorado. Consulta Resultado AVG(*) Produce error AVG(nombre) AVG(salario) 133.33 AVG(edad) 27.5 33

34 3.1 MIN T5: LMD NOMBRE APELLIDO Salario edad Juan Fonseca 100 30 Meléndez 25 Rebeca Álvarez 200 Solo se puede sacar el mínimo (min) de todo tipo de valores. Si algún valor es null es ignorado. Consulta Resultado MIN(*) Produce error MIN(nombre) Juan MIN(salario) 100 25 34

35 3.1 MAX T5: LMD NOMBRE APELLIDO Salario edad Juan Fonseca 100 30 Meléndez 25 Rebeca Álvarez 200 Solo se puede sacar el mínimo (min) de todo tipo de valores. Si algún valor es null es ignorado. Consulta Resultado MAX(*) Produce error MAX(nombre) Rebeca MAX(salario) 200 30 35

36 Limit sirve para colocar un rango de filas que deseo que me muestre.
T5: LMD Limit sirve para colocar un rango de filas que deseo que me muestre. SELECT * FROM cliente LIMIT 2; SELECT * FROM cliente LIMIT 0,2; NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez 36

37 Limit sirve para colocar un rango de filas que deseo que me muestre.
T5: LMD Limit sirve para colocar un rango de filas que deseo que me muestre. SELECT * FROM cliente LIMIT 1,2; NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María NOMBRE APELLIDO Sexo Juan Meléndez M Rebeca Álvarez F 37

38 3.1 LIMIT T5: LMD SELECT apellido, count(*) FROM cliente group by nombre order by apellido LIMIT 1,2; NOMBRE APELLIDO Sexo Juan Fonseca M Álvarez NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María GROUP BY NOMBRE APELLIDO Sexo María Fonseca F NOMBRE APELLIDO Sexo Rebeca Álvarez F APELLIDO Count(*) Fonseca 2 Meléndez 1 COUNT(*) ORDER BY APELLIDO Count(*) Álvarez 1 Fonseca 2 Meléndez APELLIDO Count(*) Fonseca 2 Meléndez 1 Álvarez LIMIT 38

39 (SELECT nombre FROM cliente) UNION (SELECT apellido FROM cliente);
T5: LMD La palabra reservada UNION nos sirve para unir los resultados de dos consulta en un solo resultado. (SELECT nombre FROM cliente) UNION (SELECT apellido FROM cliente); NOMBRE Juan Rebeca María NOMBRE Juan Rebeca María Fonseca Meléndez Álvarez UNION NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María APELLIDO Fonseca Meléndez Álvarez 39

40 (SELECT nombre FROM cliente) UNION ALL (SELECT apellido FROM cliente);
T5: LMD Con la palabra UNION se puede utilizar ALL y DISTINCT. DISTINCT es su comportamiento por defecto. (SELECT nombre FROM cliente) UNION ALL (SELECT apellido FROM cliente); NOMBRE Juan Rebeca María NOMBRE Juan Rebeca María Fonseca Meléndez Álvarez UNION ALL NOMBRE APELLIDO Sexo Juan Fonseca M Meléndez Rebeca Álvarez F María APELLIDO Fonseca Meléndez Álvarez 40

41 3.1 UNION T5: LMD Con la palabra UNION se puede utilizar ALL y DISTINCT. DISTINCT es su comportamiento por defecto. (SELECT nombre FROM cliente ORDER BY apellido) UNION ALL (SELECT apellido FROM cliente) ORDER BY nombre; NOMBRE Rebeca Juan María NOMBRE Álvarez Fonseca Juan María Meléndez Rebeca NOMBRE APELLIDO Sexo Juan Fonseca M Rebeca Álvarez F Meléndez María APELLIDO Fonseca Álvarez Meléndez 41

42 3.1 Sub-consulta T5: LMD Las sub-consultas son consultas que se incluyen dentro de otra consultas. A pesar que no es recomendable realizar, pero dentro de una sub-consulta se puede anidar otra sub-consulta y así sucesivamente. Para unir la sub-consulta con la consulta se puede hacer en la clausula WHERE a través de operadores de comparación de valor =, <, >, <> o de operadores de comparación de conjuntos ANY, SOME, ALL, IN, EXISTS. 42

43 3.1 Sub-consulta de valor T5: LMD Los operadores de sub-consulta de valor son =, >, < y <>. Se les denomina así porque si son usados para tener una sub-consulta en el WHERE, la sub-consulta deberá retornar solo un valor o provocara error. SELECT nombre FROM cliente WHERE apellido = (SELECT apellido FROM cliente); Sub-Consulta NOMBRE APELLIDO Sexo Juan Fonseca M Rebeca Álvarez F Meléndez María El resultado de la Sub-Consulta tiene que ser 1 sola fila. APELLIDO Fonseca Álvarez Meléndez 43

44 SELECT * FROM cliente WHERE edad > (SELECT AVG(edad) FROM cliente);
3.1 Sub-consulta de valor T5: LMD SELECT * FROM cliente WHERE edad > (SELECT AVG(edad) FROM cliente); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 15 Meléndez María AVG(edad) 25 NOMBRE APELLIDO edad Juan Fonseca 30 María 44

45 3.1 Sub-consulta de conjunto
T5: LMD En los casos en que la consulta inevitablemente regrese mas de una fila. Podemos utilizar los operados anteriores, y en algunos casos combinarlos con los operadores de valor. IN: Sirve para encontrar al menos una coincidencia en la sub-consulta. ANY ó SOME: Ambas funcionan de la misma forma. Deben de ser usadas siempre en combinación con operadores de valor (=,<,>,<>, LIKE). Y se encarga de encontrar al menos una entrada valida. ALL: Debe ser usada siempre con operadores de valor. Y se encarga de que todas sean entradas validas. 45

46 3.1 IN T5: LMD SELECT * FROM cliente WHERE apellido IN (SELECT apellido FROM cliente WHERE edad>25); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO Fonseca Meléndez NOMBRE APELLIDO edad Juan Fonseca 30 María 24 Meléndez 25 46

47 SELECT * FROM cliente WHERE edad <ANY (SELECT edad FROM cliente);
T5: LMD SELECT * FROM cliente WHERE edad <ANY (SELECT edad FROM cliente); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 edad 30 20 26 24 NOMBRE APELLIDO edad Rebeca Álvarez 20 Juan Meléndez 26 María Fonseca 24 47

48 SELECT * FROM cliente WHERE edad >SOME (SELECT edad FROM cliente);
T5: LMD SELECT * FROM cliente WHERE edad >SOME (SELECT edad FROM cliente); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 edad 30 20 26 24 NOMBRE APELLIDO edad Juan Fonseca 30 Meléndez 26 María 24 48

49 SELECT * FROM cliente WHERE edad >=ALL (SELECT edad FROM cliente);
T5: LMD SELECT * FROM cliente WHERE edad >=ALL (SELECT edad FROM cliente); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 edad 30 20 26 24 NOMBRE APELLIDO edad Juan Fonseca 30 49

50 3.1 EXISTS T5: LMD SELECT * FROM cliente WHERE EXISTS (SELECT * FROM cliente WHERE edad=40); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 NOMBRE APELLIDO edad NOMBRE APELLIDO edad 50

51 3.1 EXISTS T5: LMD SELECT * FROM cliente WHERE NOT EXISTS (SELECT * FROM cliente WHERE edad=40); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 NOMBRE APELLIDO edad NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 51

52 3.1 Valor a sub-consulta T5: LMD SELECT * FROM cliente as cl WHERE apellido IN (SELECT apellido FROM cliente WHERE edad>cl.edad); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO cl.edad=30 NOMBRE APELLIDO edad ‘Fonseca’ IN (‘’) 52

53 3.1 Valor a sub-consulta T5: LMD SELECT * FROM cliente as cl WHERE apellido IN (SELECT apellido FROM cliente WHERE edad>cl.edad); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO Fonseca Meléndez cl.edad=20 NOMBRE APELLIDO edad ‘Álvarez’ IN (‘Fonseca’,’Meléndez’,’Fonseca’) 53

54 3.1 Valor a sub-consulta T5: LMD SELECT * FROM cliente as cl WHERE apellido IN (SELECT apellido FROM cliente WHERE edad>cl.edad); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 cl.edad=26 APELLIDO Fonseca NOMBRE APELLIDO edad Meléndez IN (‘Fonseca’) 54

55 3.1 Valor a sub-consulta T5: LMD SELECT * FROM cliente as cl WHERE apellido IN (SELECT apellido FROM cliente WHERE edad>cl.edad); Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO Fonseca Meléndez cl.edad=24 NOMBRE APELLIDO edad María Fonseca 24 ‘Fonseca’ IN (‘Fonseca’,’Meléndez’) 55

56 3.1 Sub-consulta en FROM T5: LMD SELECT * FROM (SELECT apellido FROM cliente WHERE edad>25) as mayores; Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO Fonseca Meléndez APELLIDO Fonseca Meléndez 56

57 3.1 Sub-consulta en FROM T5: LMD SELECT * FROM (SELECT apellido FROM cliente WHERE edad>25) as mayores order by apellido desc; Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 APELLIDO Fonseca Meléndez APELLIDO Meléndez Fonseca 57

58 3.1 Sub-consulta en SELECT
T5: LMD SELECT *, (SELECT max(edad) FROM Cliente) as maxima FROM cliente; Sub-Consulta NOMBRE APELLIDO edad Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 Max(edad) 30 NOMBRE APELLIDO edad maxima Juan Fonseca 30 Rebeca Álvarez 20 Meléndez 26 María 24 58

59 3.1 Sub-consulta de registro
T5: LMD SELECT * FROM Cliente WHERE (nombre, apellido) = (SELECT nombre, apellido FROM vendedor); Sub-Consulta Cliente id NOMBRE APELLIDO 1 Juan Fonseca 2 Rebeca Álvarez 3 Meléndez 4 María NOMBRE APELLIDO Rebeca Álvarez Vendedor id NOMBRE APELLIDO 1 Rebeca Álvarez id NOMBRE APELLIDO 2 Rebeca Álvarez 59

60 3.1 Sub-consulta de registro
T5: LMD SELECT * FROM Cliente WHERE (nombre, apellido) = (SELECT nombre, apellido FROM vendedor); Sub-Consulta Cliente id NOMBRE APELLIDO 1 Juan Fonseca 2 Rebeca Álvarez 3 Meléndez 4 María NOMBRE APELLIDO Rebeca Álvarez Vendedor id NOMBRE APELLIDO 1 Rebeca Álvarez id NOMBRE APELLIDO 2 Rebeca Álvarez 60


Descargar ppt "Diseño de base de datos Tema 6 : LMD."

Presentaciones similares


Anuncios Google