Вы находитесь на странице: 1из 107

Bases de datos relacionales y SQL

Jesús Arias Fisteus

Aplicaciones Web (2018/19)

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 1


Parte I

Introducción a las bases de datos


relacionales

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 2


Bases de datos relacionales

.,. Colección de datos almacenados en una o más tablas.

.,. Las tablas constan de filas y columnas.


.,. Las tablas pueden estar relacionadas entre sı́.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 3


Ejemplo: una única tabla

Tabla “Paises”
nombre continente superficie poblacion capital
España Europa 505370 46438422 Madrid
Francia Europa 643801 64590000 Parı́s
Canadá América 9984670 36155487 Ottawa
Alemania Europa 357022 81770900 Berlı́n
Australia Oceanı́a 7692024 23613193 Canberra

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 4


Ejemplo: varias tablas relacionadas

Tabla “Paises”
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Tabla “Continentes”
id nombre superficie poblacion
1 Europa 10180000 731000000
2 América 42330000 910000000
3 Oceanı́a 9008458 38889988

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 5


Ejemplo: varias tablas relacionadas

Tabla “Ciudades”
id nombre superficie poblacion
1 Madrid 605.77 3141991
2 Barcelona 102.15 1604555
3 Parı́s 105.40 2229621
4 Ottawa 2778.64 1083391
5 Nueva York 1214.00 8491079
6 Berlı́n 891.68 3469849
7 Canberra 814.20 381488

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 6


Relaciones entre tablas

.,. Las relaciones entre tablas se explicitan por medio de:


.., Clave primaria: columna o combinación de columnas que
identifican unı́vocamente a las filas de una tabla.
.., Clave ajena (también conocida como clave externa o foránea):

columna o combinación de columnas en una tabla que hacen


referencia a la clave primaria de otra tabla.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 7


Sistema gestor de bases de datos relacionales

.,. Programa que da soporte al uso de bases de datos relacionales.


.,. Ejemplos:
.., Oracle Database
.., Microsoft SQL Server
.., IBM DB2
.., SAP Advantage Database Server

.., MySQL
.., PostgreSQL

.., SQLite

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 8


El lenguaje SQL

.,. Lenguaje estándar para utilizar y mantener bases de datos


relacionales.
.,. Utilizado en los principales gestores de bases de datos
relacionales.
.., Aunque hay pequeñas variaciones (dialectos) dependiendo del
gestor.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 9


Parte II

El lenguaje SQL: recuperación de datos

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 10


La sentencia SELECT

.,. La sentencia SELECT se utiliza para recuperar datos de la


base de datos.

1 SELEC T
2 < colum na_1 > , < colum na_2 > , < colum na_3 >
3 FROM < tabla >
4 W H ER E < cond ici ó n >

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 11


La sentencia SELECT: ejemplos

1 SELEC T *
2 FROM Paises ;

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 12


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises ;

nombre poblacion
España 46438422
Francia 64590000
Canadá 36155487
Alemania 81770900
Australia 23613193

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 13


La sentencia SELECT: ejemplos

1 SE LEC T supe rficie , p o b lacio n


2 FROM Paises
3 W H ER E nom bre = E spa ~
✬na ; ✬

superficie poblacion
505370 46438422

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 14


La sentencia SELECT: ejemplos

1 SE LEC T supe rficie , p o b lacio n


2 FROM Paises
3 W HERE id =1;

superficie poblacion
505370 46438422

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 15


Lógica Booleana

.,. Operadores Booleanos: AND, OR, NOT.


.,. Expresiones de comparación: =, <>, <, >, <=, >=,
BETWEEN.
.,. Pertenencia a un conjunto de valores: IN.

.,. Comparación con NULL: IS NULL, IS NOT NULL.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 16


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 W HERE poblacion > 50000000 ;

nombre poblacion
Francia 64590000
Alemania 81770900

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 17


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 W HERE poblacion < 50000000 AND continente =1;

nombre poblacion
España 46438422

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 18


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 W HERE poblacion B ETW EEN 50000000 AND 70000000 ;

nombre poblacion
Francia 64590000

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 19


La sentencia SELECT: ejemplos

1 SELECT nombre
2 FROM Paises
3 W HERE con tin en te IN (1 , 3);

nombre
España
Francia
Alemania
Australia

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 20


Ordenación y restricción del número de resultados

.,. Ordenación:
.., ORDER BY especifica la columna (o columnas) sobre la cual se
deben ordenar las filas.
.., Sentido de ordenación: ASC (por defecto), DESC.
.,. Restricción del número de resultados:
.., Palabra clave LIMIT.
.., Palabra clave OFFSET para seleccionar el rango.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 21


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 ORDER BY po blacio n ;

nombre poblacion
Australia 23613193
Canadá 36155487
España 46438422
Francia 64590000
Alemania 81770900

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 22


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 W HERE poblacion < 40000000
4 ORDER BY po blacio n ;

nombre poblacion
Australia 23613193
Canadá 36155487

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 23


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 ORDER BY poblacion DESC
4 LIM IT 2;

nombre poblacion
Alemania 81770900
Francia 64590000

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 24


La sentencia SELECT: ejemplos

1 SE LEC T nom bre , p o blacio n


2 FROM Paises
3 ORDER BY poblacion DESC
4 LIM IT 2 OFFSET 2;

nombre poblacion
España 46438422
Canadá 36155487

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 25


Ejercicios prácticos

.,. Práctica 3:
.., Ejercicio 1.1
.., Ejercicio 1.2

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 26


Agregación de datos: resultados únicos

.,. A veces no se desea obtener resultados duplicados en una


consulta.

1 SE LEC T continente
2 FROM Paises ;

continente
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3

1
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

1
1
2
3

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 27


Agregación de datos: resultados únicos

.,. Si en los resultados de una consulta aparecen filas duplicadas,


el modificador DISTINCT elimina todas excepto una.

1 SELECT DISTINCT continente


2 FROM Paises ;

continente
1
2
3
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 28


Agregación de datos: sumas, medias, etc.

.,. Cómputo de agregaciones sobre las filas obtenidas: SUM,


AVG, MIN, MAX.

1 SELECT SUM ( su p erficie )


2 FROM Paises
3 W HERE co ntin ente =1;

SUM(superficie)
1506193

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 29


Cuenta del número de resultados

.,. El operador COUNT modifica la consulta de tal forma que


devuelva el número de filas seleccionadas.

1 SELEC T COUNT (*)


2 FROM Paises
3 W HERE co ntin ente =1;

COUNT(*)
3

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 30


Cuenta del número de resultados

.,. También es posible contar valores sin tener en cuenta sus


repeticiones.

1 SELECT COUNT ( DISTINCT co ntinente )


2 FROM Paises ;

COUNT(DISTINCT continente)
3

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 31


Agregación de datos: agrupación de filas

.,. GROUP BY permite hacer cómputos agregados (suma,


media, etc.) sobre grupos de filas.

1 SELECT contine nte , SUM ( su pe rficie )


2 FROM Paises
3 GROUP BY co ntin ente ;

continente SUM(superficie)
1 1506193
2 9984670
3 7692024
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 32


Agregación de datos: agrupación de filas

.,. HAVING filtra los grupos resultantes.

1 SELECT contine nte , SUM ( su pe rficie )


2 FROM Paises
3 GROUP BY continente
4 HAV IN G SUM ( su p erficie ) > 5 00 00 0 0;

continente SUM(superficie)
2 9984670
3 7692024

id nombre continente superficie poblacion capital


1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 33


Agregación de datos: agrupación de filas

.,. Nótese que con WHERE se seleccionan las filas que serán
agrupadas, mientras que con HAVING, los grupos.

1 SELECT contine nte , SUM ( su pe rficie )


2 FROM Paises
3 W HERE poblacion < 70000000
4 GROUP BY continente
5 HAV IN G SUM ( su p erficie ) < 9 00 00 0 0;

continente SUM(superficie)
1 1149171
3 7692024
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 34


Alias de columnas

.,. Se puede establecer el nombre que tomarán las columnas


resultantes de una consulta.

1 SELEC T
2 contine nte ,
3 SUM ( su p erficie ) AS su p erficie_ ag reg ad a
4 FROM Paises
5 GROUP BY co ntin ente ;

continente superficie agregada


1 1506193
2 9984670
3 7692024
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 35


Columnas calculadas

.,. Se pueden obtener columnas resultantes de realizar cálculos


sobre los valores de otras columnas.

1 SELEC T
2 nom bre ,
3 p o b lacio n / su p e rficie AS de nsida d
4 FROM Paises ;

nombre densidad
España 91.88994598017294
Francia 100.3260324230624
Canadá 3.6210998460640162
Alemania 229.0360257911277
Australia 3.0698283052678983
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 36


Ejercicios prácticos

.,. Práctica 3:
.., Ejercicio 1.3

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 37


Parte III

Consultas sobre múltiples tablas

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 38


Consultas sobre múltiples tablas

.,. Es habitual que los datos a consultar estén distribuidos en


varias tablas relacionadas entre sı́. Por ejemplo:
.., Obtener los pares nombre de paı́s y nombre de capital.
.., Obtener la lista de paı́ses cuya capital tenga más de 3 millones
de habitantes.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 39


Ejemplo
Tabla “Paises”
id nombre continente superficie poblacion capital
1 España 1 505370 46438422 1
2 Francia 1 643801 64590000 3
3 Canadá 2 9984670 36155487 4
4 Alemania 1 357022 81770900 6
5 Australia 3 7692024 23613193 7
Tabla “Ciudades”
id nombre superficie poblacion
1 Madrid 605.77 3141991
2 Barcelona 102.15 1604555
3 Parı́s 105.40 2229621
4 Ottawa 2778.64 1083391
5 Nueva York 1214.00 8491079
6 Berlı́n 891.68 3469849
7 Canberra 814.2 381488
Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 40
Consultas INNER JOIN

.,. El operador INNER JOIN permite unir dos tablas indicando


bajo qué criterio se deben emparejar las filas de una tabla con
las de la otra:
.., Se forman todos los pares posibles de filas que cumplan el
criterio.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 41


Ejemplo

1 SELEC T *
2 FROM Paises
3 INNER JOIN Ciudades
4 ON cap ital = C iu d ades . id;

id nombre cont. sup. pob. cap. id nombre sup. pob.


1 España 1 505370 46438422 1 1 Madrid 605.77 3141991
2 Francia 1 643801 64590000 3 3 Parı́s 105.40 2229621
3 Canadá 2 9984670 36155487 4 4 Ottawa 2778.64 1083391
4 Alemania 1 357022 81770900 6 6 Berlı́n 891.68 3469849
5 Australia 3 7692024 23613193 7 7 Canberra 814.2 381488

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 42


Ejemplo

1 SELEC T
2 Paises . nom bre , C iudades . nom bre
3 FROM Paises
4 INNER JOIN Ciudades
5 ON cap ital = C iu d ades . id;

nombre nombre
España Madrid
Francia Parı́s
Canadá Ottawa
Alemania Berlı́n
Australia Canberra

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 43


Ejemplo

1 SELEC T
2 Paises . nom bre , C iudades . nom bre
3 FROM Paises
4 INNER JOIN Ciudades
5 ON cap ital = C iudad es . id
6 W HERE C iudades . poblacion > 3000000 ;

nombre nombre
España Madrid
Alemania Berlı́n

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 44


Alias de nombres de tablas

1 SELEC T
2 P. nom bre , C. nom bre
3 FROM Paises AS P
4 INNER JOIN Ciudades AS C
5 ON cap ital = C. id
6 W HERE C. poblacion > 3000000 ;

nombre nombre
España Madrid
Alemania Berlı́n

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 45


Consultas INNER JOIN

.,. Las filas de cualquiera de las dos tablas que no cumplan el


criterio para ningún posible par no aparecerán entre los
resultados.
.., Ejemplo: filas de Nueva York y Barcelona.
.,. Las filas de cualquiera de las dos tablas que cumplan el
criterio para varios pares aparecerán varias veces entre los
resultados, una por cada par.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 46


Ejemplo

Tabla “Ciudades”
id nombre superficie poblacion
1 Madrid 605.77 3141991
2 Barcelona 102.15 1604555
3 Parı́s 105.40 2229621
4 Ottawa 2778.64 1083391
5 Nueva York 1214.00 8491079
6 Berlı́n 891.68 3469849
7 Canberra 814.2 381488

Tabla “Atracciones”
id nombre ciudad
1 Estatua de la Libertad 5
2 Torre Eiffel 3
3 Empire State Building 5
4 Coliseo de Roma NULL
Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 47
Ejemplo

1 SELEC T
2 A trac cio n es . nom bre , C iudades . nom bre
3 FROM A tracciones
4 INNER JOIN Ciudades
5 ON ciudad = C iu dades . id;

nombre nombre
Estatua de la Libertad Nueva York
Torre Eiffel Parı́s
Empire State Building Nueva York

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 48


Ejercicios prácticos

.,. Práctica 3:
.., Ejercicio 1.4

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 49


Consultas OUTER JOIN

.,. Se recuperan todas las filas de la tabla primaria aunque no


cumplan el criterio con ninguna fila de la otra tabla.
.,. Tres tipos de OUTER JOIN:
.., LEFT JOIN: la tabla primaria es la especificada antes del
operador JOIN (a la izquierda).
.., RIGHT JOIN: la tabla primaria es la especificada tras el

operador JOIN (a la derecha).


.., FULL JOIN: ambas tablas son primarias (no disponible en

MySQL).

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 50


Ejemplo

1 SELEC T
2 A trac cio n es . nom bre , C iudades . nom bre
3 FROM A tracciones
4 LEFT JOIN Ciudades
5 ON ciudad = C iu dades . id;

nombre nombre
Estatua de la Libertad Nueva York
Torre Eiffel Parı́s
Empire State Building Nueva York
Coliseo de Roma NULL

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 51


Ejemplo

1 SELEC T
2 A trac cio n es . nom bre , C iudades . nom bre
3 FROM A tracciones
4 RIGHT JOIN Ciudades
5 ON ciudad = C iu dades . id;

nombre nombre
NULL Madrid
NULL Barcelona
Torre Eiffel Parı́s
NULL Ottawa
Estatua de la Libertad Nueva York
Empire State Building Nueva York
NULL Berlı́n
NULL Canberra

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 52


Ejemplo

1 SELEC T
2 A trac cio n es . nom bre , C iudades . nom bre
3 FROM Ciudades
4 LEFT JOIN A tracciones
5 ON ciudad = C iu dades . id;

nombre nombre
NULL Madrid
NULL Barcelona
Torre Eiffel Parı́s
NULL Ottawa
Estatua de la Libertad Nueva York
Empire State Building Nueva York
NULL Berlı́n
NULL Canberra

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 53


Ejemplo (no disponible en MySQL)

1 SELEC T
2 A trac cio n es . nom bre , C iudades . nom bre
3 FROM Ciudades
4 FULL JOIN A tracciones
5 ON ciudad = C iu dades . id;

nombre nombre
Estatua de la Libertad Nueva York
Torre Eiffel Parı́s
Empire State Building Nueva York
NULL Madrid
NULL Barcelona
NULL Ottawa
NULL Berlı́n
NULL Canberra
Coliseo de Roma NULL

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 54


Consultas self join

.,. Es posible unir una tabla consigo misma mediante el uso de


alias de nombres de tablas:
.., Se toman dos “copias” de la misma tabla, cada una con un
alias que la diferencia de la otra.
.., Es compatible con cualquier tipo de operador JOIN.

.,. Ejemplo:
.., Obtener todos los pares de monumentos que estén en la misma
ciudad.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 55


Ejemplo

1 SELEC T
2 A. nom bre , B. nom bre
3 FROM A tracciones AS A
4 INNER JOIN A tracciones AS B
5 ON A. ciudad = B. ciudad ;

nombre nombre
Estatua de la Libertad Estatua de la Libertad
Empire State Building Estatua de la Libertad
Torre Eiffel Torre Eiffel
Estatua de la Libertad Empire State Building
Empire State Building Empire State Building

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 56


Ejemplo

1 SELEC T
2 A. nom bre , B. nom bre
3 FROM A tracciones AS A
4 INNER JOIN A tracciones AS B
5 ON A. ciudad = B. ciudad
6 W HERE A. id < B. id;

nombre nombre
Estatua de la Libertad Empire State Building

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 57


Parte IV

El lenguaje SQL: inserción y


modifi on de datos

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 58


Creación de tablas

.,. Se crean tablas con CREATE TABLE.


.,. Al crear una tabla, se especifican aspectos como:
.., Nombre de la tabla.
.., Para cada columna:
.., Nombre y tipo de datos
.., Valor por defecto
.., Si puede tomar valor NULL.
.., Si es un campo de auto-incremento.
.., Claves primarias y ajenas.
.., Índices.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 59


Ejemplo

1 CREATE TABLE C o n tin en tes (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 su p erficie DOUBLE NOT NULL ,
5 poblacion LONG NOT NULL ,
6 PR IM AR Y KEY ( id)
7 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 60


Ejemplo

1 CREATE TABLE C iudades (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 su p erficie DOUBLE NOT NULL ,
5 poblacion LONG NOT NULL ,
6 PR IM AR Y KEY ( id)
7 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 61


Ejemplo

1 CREATE TABLE Paises (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 co ntin ente INT NOT NULL ,
5 su p erficie DOUBLE NOT NULL ,
6 poblacion LONG NOT NULL ,
7 cap ital INT NOT NULL ,
8 PRIM AR Y KEY ( id),
9 CO N ST R AIN T FOREIG N KEY ( continente )
10 REFEREN CES C o n tin en tes ( id),
11 CO N ST R AIN T FOREIG N KEY ( capital )
12 REFEREN CES C iudades ( id)
13 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 62


Ejemplo

1 CREATE TABLE A reas G eograficas (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 tipo ENUM ( co n tin e n te , pais ,
✬ ✬ ✬ ✬

5 region , ciudad ) NOT NULL ,


✬ ✬ ✬ ✬

6 area DOUBLE NOT NULL ,


7 h ab itan tes LONG NOT NULL ,
8 PR IM AR Y KEY ( id)
9 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 63


Tipos de datos

.,. Las columnas tienen un tipo de datos asociado.


.,. Principales grupos de tipos de datos:
.., Numéricos.
.., Cadenas.
.., Fechas / horas.

.,. Los tipos de datos concretos varı́an según el gestor de bases


de datos.
.,. Valor especial NULL: ausencia de valor.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 64


Tipos de datos numéricos en MySQL

.,. Bits: BIT (p.e. cuatro bits: BIT(4)).


.,. Enteros con signo (opcional UNSIGNED):
.., 1 byte: TINYINT / BOOL / BOOLEAN.
.., 2 bytes: SMALLINT.
.., 3 bytes: MEDIUMINT.
.., 4 bytes: INT / INTEGER.

.., 8 bytes: BIGINT.

.,. Punto flotante:


.., 4 bytes (precisión aprox. 7 decimales): FLOAT.
.., 8 bytes (precisión aprox. 15 decimales): DOUBLE.
.,. Punto fijo: DECIMAL / NUMERIC
.., P.e. DECIMAL(6, 2) representa 6 dı́gitos, de los cuales 2 son
decimales.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 65


Tipos de datos de cadenas

.,. Cadenas de caracteres:


.., Tamaño fijo: CHAR (p.e. CHAR(8)).
.., Tamaño variable: VARCHAR (p.e. VARCHAR(255)).
.., Tamaño grande: TEXT.
.,. Cadenas de bytes:
.., Tamaño fijo: BINARY (p.e. BINARY(8)).
.., Tamaño variable: VARBINARY (p.e. VARBINARY(255)).
.., Tamaño grande: BLOB.

.,. Enumerados: ENUM


.., P.e.: ENUM('profesor', 'alumno', 'administrativo').
.,. Conjuntos: SET
.., P.e.: SET('rojo', 'verde', 'azul').

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 66


Tipos de datos de fechas y horas en MySQL

.,. Fecha: DATE.


.,. Fecha y hora (con minutos y segundos, sin zona horaria):
DATETIME.
.,. Hora: TIME.
.,. Año: YEAR (para año con dos dı́gitos, YEAR(2)).
.,. Sello temporal (número de segundos desde 1-1-1970:
TIMESTAMP.
.., Por defecto, la primera columna de tipo TIMESTAMP se
actualiza automáticamente con INSERT y UPDATE, salvo que se
le asigne un valor o se especifique lo contrario.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 67


Otras acciones de gestión de tablas

.,. Mostrar todas las tablas de una base de datos: SHOW TABLES
.,. Mostrar la estructura de una tabla: DESCRIBE
<nombre de tabla>
.,. Eliminar una tabla: DROP TABLE <nombre de tabla>;
.,. Añadir, modificar o eliminar columnas en una tabla: ALTER
TABLE ...

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 68


Inserción de filas en tablas

.,. Se insertan filas nuevas en tablas mediante INSERT INTO:


.., Se puede insertar una o más filas en una única sentencia.
.., Se puede especificar qué columnas se proporcionan y en qué
orden (por defecto, se deben proporcionar todas y en el mismo
orden en que se definieron al crear la tabla).

1 INSERT INTO < tabla >


2 (< colum na_1 >, < colum na_2 >, < colum na_3 >)
3 V A LU ES
4 (< v alores_ fila_ 1 >) ,
5 (< v alores_ fila_ 2 >)

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 69


Ejemplo

1 INSERT INTO C ontinentes


2 V A LU ES
3 (4 , Asia , 44579000 . 0 , 4164252000 ) ;
✬ ✬

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 70


Columnas para las que no se proporciona valor

.,. Se puede omitir el valor de algunas columnas:


.., Columnas autoincrementales:
.., Reciben automáticamente un valor numérico único que se
incrementa a medida que se insertan filas en la tabla.
.., Se suelen utilizar como clave primaria.
.., Otros tipos de columnas:
.., Reciben el valor por defecto definido para dicha columna, o
NULL si no se ha definido dicho valor.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 71


Ejemplo

1 INSERT INTO C ontinentes


2 ( nom bre , sup erficie , p o b lacio n )
3 V A LU ES
4 ( A frica , 3037000 0 , 1 1 0 0 0 0 0 0 0 0 ) ,
✬ ✬

5 ( A nt á rtid a , 14000000 , 135) ;


✬ ✬

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 72


Inserción de los resultados de una consulta

.,. Se puede insertar filas resultantes de una consulta SELECT.

1 INSERT INTO Ciudades


2 ( nom bre , sup erficie , p o b lacio n )
3 SELEC T
4 nom bre , area , h ab itan tes
5 FROM A reas G eograficas
6 W HERE tipo = ciudad ; ✬ ✬

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 73


Inserción de los resultados de una consulta

.,. También es posible insertar el resultado de una consulta en


una columna concreta.

1 INSERT INTO Paises


2 ( nom bre , capital , con tin ente , su p erficie ,
p o b la c io n )
3 V A LU ES
4 ( Ita lia ,
✬ ✬

5 ( SEL EC T id
6 FROM Ciudades
7 W HERE nombre = Roma ),
✬ ✬

8 ( SEL EC T id
9 FROM C ontinentes
10 W HERE nom bre = E uropa ),
✬ ✬

11 301340.0 ,
12 60600000
13 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 74


Ejercicios prácticos

.,. Práctica 4:
.., Ejercicio 1.1
.., Ejercicio 1.2

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 75


Eliminación de filas

.,. Se eliminan filas en una tabla mediante la sentencia DELETE.


.,. Se indica el nombre de la tabla y la condición que deben
cumplir las filas a eliminar:
.., Si no se indica condición, se eliminan todas las filas de la tabla.

1 D ELETE
2 FROM < tabla >
3 W H ER E < cond ici ó n >

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 76


Ejemplo

1 D ELETE
2 FROM Paises
3 W HERE poblacion < 4000000 ;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 77


Actualización de datos

.,. Se actualizan valores mediante la sentencia UPDATE.


.,. Se indica qué columnas se desea cambiar y su nuevo valor. El
resto de columnas mantendrán su valor.
.,. Con la cláusula WHERE se indica qué filas se modifican (todas
si se omite esta cláusula).

1 UPDATE < table >


2 SET < C olum na_1 > = < E xpressi ó n_1 > ,
3 < C olum na_2 > = < E xpressi ó n_2 >
4 W H ER E < cond ici ó n >

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 78


Ejemplo

1 UPDATE Paises
2 SET
3 p o blacio n = 46438500 ,
4 su perficie = 505371
5 W HERE id =1;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 79


Ejemplo

1 UPDATE Paises
2 SET
3 p o blacio n = p o blacion -1
4 W HERE co ntin ente =1;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 80


Ejemplo

1 UPDATE Paises
2 SET
3 po b lacio n =
4 ( SEL EC T h ab itan tes
5 FROM A reas G eograficas
6 W HERE Paises . nombre = A reas G eo g ra fic as . nombre )
7 W HERE EXISTS
8 ( SELE CT *
9 FROM A reas G eograficas
10 W HERE Paises . nombre = A reas G eo g ra fic as . nombre );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 81


Parte V

Consistencia de datos

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 82


Consistencia en las claves ajenas

.,. Una clave ajena debe corresponderse con una clave primaria
que exista en la tabla a la que dicha clave ajena hace
referencia.
.., Ejemplo: si continente=2 en la fila con id=3 en la tabla
Paises, en la tabla Continentes debe existir una fila con
id=2.
.,. De lo contrario, la base de datos está en un estado
inconsistente.
.,. La columna de clave ajena puede admitir valor NULL si se
establece ası́ al crear la tabla. Esto no supondrı́a una
inconsistencia.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 83


Consistencia en las claves ajenas

.,. Existe el riesgo de introducir inconsistencias en claves ajenas


cuando:
.., Se inserta una nueva fila:
.., Ejemplo: se inserta una fila en Paises con continente=27,
pero no existe esta fila en Continentes.
.., Se elimina una fila:
.., Ejemplo: se elimina la fila con id=1 en Continentes, pero se
mantienen filas con continente=1 en Paises.
.., Se modifica una columna en una fila:
.., Ejemplo: se establece el valor continente=27 en una fila de
Paises, pero no existe esta fila en Continentes.
.., Ejemplo: se modifica id de 1 a 7 en una fila de Continentes,
pero se mantienen filas con continente=1 en Paises.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 84


Ejemplo

1 DELETE FROM C ontinentes W HERE id =1;


2
3 INSERT INTO Paises
4 ( nom bre , co n tin e n te , capital ,
5 su p erficie , p o b lac io n )
6 V A LU ES
7 ( Estad os u U nidos , 27 , 5 , 0.0 , 0);
✬ ✬

8
9 UPDATE Paises SET co ntin ente =27 W H ERE id =1;
10
11 UPDATE C ontinentes SET id =7 W HERE id =1;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 85


Consistencia en las claves ajenas

.,. El gestor de bases de datos puede detectar sentencias que


introducirı́an inconsistencias y evitarlo.
.,. Para cada clave ajena se puede configurar el comportamiento
deseado en estas situaciones:
.., No ejecutar la sentencia y notificar el error (RESTRICT o NO
ACTION). Es la opción por defecto.
.., Establecer valor NULL en la clave ajena afectada si esta lo

permite (SET NULL).


.., Propagar el cambio a la clave ajena (CASCADE):

.., Ejemplo: si se elimina la fila con id=1 en Continentes, se


eliminan automáticamente todas las filas con continente=1
en Paises.
.., Ejemplo: si se modifica id de 1 a 7 en una fila de
Continentes, se cambia continente de 1 a 7 en todas las
filas afectadas de Paises.
.., Establecer el valor por defecto de la clave ajena (SET
DEFAULT).

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 86


Ejemplo

1 CREATE TABLE Paises (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 co ntin ente INT NOT NULL ,
5 su p erficie DOUBLE NOT NULL ,
6 poblacion LONG NOT NULL ,
7 cap ital INT NOT NULL ,
8 PRIM AR Y KEY ( id),
9 CO N ST R AIN T FOREIG N KEY ( continente )
10 REFEREN CES C o n tin e n tes ( id)
11 ON UPDATE CASCADE
12 ON D ELETE SET NULL ,
13 CO N ST R AIN T FOREIG N KEY ( capital )
14 REFEREN CES C iudades ( id)
15 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 87


Tipos de tablas en MySQL

.,. En MySQL hay varios tipos de tablas que difieren en cómo se


almacena la información y qué funcionalidad ofrecen:
.., MyISAM: no transaccional, sin integridad referencial.
.., BerkeleyDB: transaccional, sin integridad referencial.
.., InnoDB: transaccional, con integridad referencial (por defecto

desde Mysql 5.5).


.., Otros: http://dev.mysql.com/doc/refman/5.5/en/storage-engines.html

.,. Se puede establecer el tipo de tabla en el comando que la crea.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 88


Ejemplo

1 CREATE TABLE Paises (


2 id INT NOT NULL auto_ in crem ent ,
3 nom bre V ARC H A R (255 ) NOT NULL ,
4 co ntin ente INT NOT NULL ,
5 su p erficie DOUBLE NOT NULL ,
6 poblacion LONG NOT NULL ,
7 cap ital INT NOT NULL ,
8 PRIM AR Y KEY ( id),
9 CO N ST R AIN T FOREIG N KEY ( continente )
10 REFEREN CES C o n tin e n tes ( id)
11 ON UPDATE CASCADE
12 ON D ELETE SET NULL ,
13 CO N ST R AIN T FOREIG N KEY ( capital )
14 REFEREN CES C iudades ( id)
15 ) EN G IN E = IN N OD B ;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 89


Parte VI

Índices

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 90


Índices

.,. Los ı́ndices consisten en estructuras de datos adicionales cuyo


objeto es agilizar la ejecución de determinadas búsquedas de
datos en una tabla.
.,. Ventajas:
.., Localización más rápida de datos en la tabla en acceso
aleatorio.
.., Acceso a datos en orden de forma más rápida.

.,. Desventajas:
.., Coste adicional en la inserción/modificación de datos.
.., Necesidad de más espacio de almacenamiento.
.,. Para la clave primaria se construye implı́citamente un ı́ndice.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 91


Creación de ı́ndices

1 -- C rear un ı́ n d ice en un a tab la e x iste n te


2 C R E A T E [ U N IQ U E ] IN D EX < n o m b re_ d e_ ı́ ndice >
3 ON < no m bre_ de_ tabla > (< col_1 >, < col_2 > ,...) ;
4
5 -- C rear un ı́ n d ice al m ism o tiem p o qu e la tab la :
6 CREATE TABLE < nombre_ de_ tabla > (
7 (...)
8 [ U N IQ U E ] IN D EX [< n o m b re _ d e _ ı́ ndice >]
9 (< col_1 >, < col_2 > ,...)
10 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 92


Ejemplo

1 CREATE INDEX idx_ ciudades_ nombre


2 ON C iudad es ( no m bre );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 93


Ejemplo

1 CREATE TABLE Ciudades (


2 id INT NOT NULL auto_ in crem ent ,
3 nombre V ARC H AR (255 ) NOT NULL ,
4 su p erficie DOUBLE NOT NULL ,
5 p o blacio n LONG NOT NULL ,
6 PRIM AR Y KEY ( id),
7 IN DE X ( nom bre )
8 );

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 94


Ejercicios prácticos

.,. Práctica 4:
.., Ejercicio 2

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 95


Parte VII

Transacciones en SQL

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 96


Transacciones en SQL

.,. El gestor de bases de datos puede recibir sentencias desde


varias conexiones concurrentes.
.,. Una transacción es una secuencia de sentencias SQL que
deben ser tratadas como una unidad.
.,. Deben cumplirse los principios ACID:
.., Atomicidad.
.., Consistencia.
.., Aislamiento.
.., Durabilidad.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 97


Transacciones en SQL

.,. Atomicidad:
.., O se ejecutan con éxito todas las sentencias de la transacción,
o la base de datos debe volver al estado previo al inicio de la
transacción.
.,. Consistencia:
.., Una vez finalizada la transacción, la base de datos debe estar
en un estado consistente (se deben cumplir todas las
restricciones de consistencia de los datos).

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 98


Transacciones en SQL

.,. Aislamiento:
.., Durante la ejecución de una transacción, sus cambios no
pueden ser visibles para el resto de transacciones.
.,. Durabilidad:
.., Una vez finaliza una transacción con éxito, se debe garantizar
que los cambios perduren incluso antes situaciones de fallo en
el sistema.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 99


Transacciones en SQL

.,. Normalmente, cada sentencia SQL individual se ejecuta como


una transacción separada.
.., Se puede deshabilitar de forma temporal para realizar solo una
transacción con varias sentencias mediante START
TRANSACTION
.., Se puede deshabilitar en la sesión actual mediante SET

AUTOCOMMIT=0
.,. Para finalizar la transacción:
.., Cancelándola: ROLLBACK
.., Confirmándola: COMMIT

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 100


Cerrojos en filas de tablas

.,. Los gestores de bases de datos relacionales suelen utilizar


cerrojos para controlar el acceso concurrente a tablas.
.,. Principalmente, se usan dos tipos de cerrojos:
.., Cerrojos S (shared)
.., Cerrojos X (exclusive)

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 101


Cerrojos en filas de tablas

.,. La adquisición de un cerrojo S es compatible con otros


cerrojos S sobre la misma fila.
.,. La adquisición de un cerrojo X no es compatible con ningún
otro cerrojo sobre la misma fila.
.,. El intento de adquisición de un cerrojo bloquea la operación
hasta que sea posible. Si hay interbloqueo con otra
transacción, la sentencia falla.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 102


Cerrojos en filas de tablas

.,. En modificaciones y eliminaciones se adquiere X


automáticamente, hasta el final de la transacción.
.,. Las lecturas se pueden realizar de tres formas:
.., Consistent read: no se adquiere cerrojo (por defecto).
.., Adquisición de S: SELECT ... LOCK IN SHARE MODE.
.., Adquisición de X: SELECT ... FOR UPDATE.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 103


Niveles de aislamiento

.,. En SQL se puede configurar el nivel de aislamiento entre


transacciones concurrentes:
.., READ UNCOMMITTED
.., READ COMMITTED
.., REPEATABLE READ (por defecto)
.., SERIALIZABLE
.,. Niveles mayores implican mayor protección en transacciones
concurrentes pero peor rendimiento.

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 104


Niveles de aislamiento

1 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;


2 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
3 SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
4 SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE ;

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 105


Referencias

.,. The Language of SQL, Second Edition, Larry Rockoff. Course


Technology PTR (2016).
.., Accesible en Safari:
http://proquest.safaribooksonline.com/book/databases/sql/9780134658346

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 106


Referencias

.,. MySQL Transactional and Locking Statements:


.., http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-transactions.html

.,. The InnoDB Transaction Model and Locking:


.., http://dev.mysql.com/doc/refman/5.5/en/innodb-transaction-model.html

Aplicaciones Web (2018/19) Bases de datos relacionales y SQL 107

Вам также может понравиться

  • Bases
    Bases
    Документ107 страниц
    Bases
    Tasha Duncan
    Оценок пока нет
  • Captura 2022-11-24 A Las 9.45.07
    Captura 2022-11-24 A Las 9.45.07
    Документ198 страниц
    Captura 2022-11-24 A Las 9.45.07
    Imanol Sants
    Оценок пока нет
  • 2011 EAscencio 000123
    2011 EAscencio 000123
    Документ10 страниц
    2011 EAscencio 000123
    stefany yustres camacho
    Оценок пока нет
  • Regresion Lineal Simple Con R Studio
    Regresion Lineal Simple Con R Studio
    Документ42 страницы
    Regresion Lineal Simple Con R Studio
    Fello Herrera
    Оценок пока нет
  • Conceptos Estadisticos Básicos I Sesion 1
    Conceptos Estadisticos Básicos I Sesion 1
    Документ11 страниц
    Conceptos Estadisticos Básicos I Sesion 1
    juan guardado
    Оценок пока нет
  • 16 Profesional en ARCGIS - CIP Perú
    16 Profesional en ARCGIS - CIP Perú
    Документ8 страниц
    16 Profesional en ARCGIS - CIP Perú
    Marco A Alarcon AC
    Оценок пока нет
  • Tarea 5.2. - Hoja de Cálculo - Gráficas
    Tarea 5.2. - Hoja de Cálculo - Gráficas
    Документ4 страницы
    Tarea 5.2. - Hoja de Cálculo - Gráficas
    emir lara peña
    Оценок пока нет
  • Ejercicios Regresión Lineal-1
    Ejercicios Regresión Lineal-1
    Документ4 страницы
    Ejercicios Regresión Lineal-1
    Vegueta Guapo
    Оценок пока нет
  • PaulayLuna ProcesadorTextosAvanzado
    PaulayLuna ProcesadorTextosAvanzado
    Документ6 страниц
    PaulayLuna ProcesadorTextosAvanzado
    Paula Tirado Sánchez
    Оценок пока нет
  • 2021-II - Gestion de La Innovacion - Hernandez - Sesion 1
    2021-II - Gestion de La Innovacion - Hernandez - Sesion 1
    Документ58 страниц
    2021-II - Gestion de La Innovacion - Hernandez - Sesion 1
    Antonio Rivera Villavicencio
    Оценок пока нет
  • Milensen - Quiroga - Modulo3 - Herramientas Tecnologicas
    Milensen - Quiroga - Modulo3 - Herramientas Tecnologicas
    Документ21 страница
    Milensen - Quiroga - Modulo3 - Herramientas Tecnologicas
    Clara Ines Vargas
    Оценок пока нет
  • Tutorial 10 PDF
    Tutorial 10 PDF
    Документ42 страницы
    Tutorial 10 PDF
    Francisco Sanguino
    Оценок пока нет
  • Tarea 6 Estad I-2020
    Tarea 6 Estad I-2020
    Документ2 страницы
    Tarea 6 Estad I-2020
    Rossydel Valdez
    Оценок пока нет
  • Taller 1 Pronosticos
    Taller 1 Pronosticos
    Документ6 страниц
    Taller 1 Pronosticos
    Eilyn Calderon
    Оценок пока нет
  • Practica4 Enunciado
    Practica4 Enunciado
    Документ8 страниц
    Practica4 Enunciado
    Jorge_1991
    Оценок пока нет
  • Analisis
    Analisis
    Документ4 страницы
    Analisis
    Jhonsito Jaramillo
    Оценок пока нет
  • Unalm - Temario - Arcgis
    Unalm - Temario - Arcgis
    Документ12 страниц
    Unalm - Temario - Arcgis
    Joel Ccanccapa Puma
    Оценок пока нет
  • Ejercicios de Pronosticos
    Ejercicios de Pronosticos
    Документ3 страницы
    Ejercicios de Pronosticos
    Silvia Santamaria
    Оценок пока нет
  • Lobo Najera Orellana Sanchez PROYECTO #2
    Lobo Najera Orellana Sanchez PROYECTO #2
    Документ788 страниц
    Lobo Najera Orellana Sanchez PROYECTO #2
    Miguel Sanchez
    Оценок пока нет
  • Valentina Rodriguez Garzón
    Valentina Rodriguez Garzón
    Документ5 страниц
    Valentina Rodriguez Garzón
    Julian Ortiz
    Оценок пока нет
  • Parte 3. Anomalias - Redundancias
    Parte 3. Anomalias - Redundancias
    Документ17 страниц
    Parte 3. Anomalias - Redundancias
    Juan Carlos Mantilla Gómez
    Оценок пока нет
  • Evaluación I Econometría
    Evaluación I Econometría
    Документ2 страницы
    Evaluación I Econometría
    Juan Ramos
    Оценок пока нет
  • Sesión 1 GI 2022-2
    Sesión 1 GI 2022-2
    Документ60 страниц
    Sesión 1 GI 2022-2
    Joshua Xilo Moron
    Оценок пока нет
  • Taller 07
    Taller 07
    Документ3 страницы
    Taller 07
    ESTIVEN ROPERO
    Оценок пока нет
  • Variable - Rebeca Noemi Perca Mucho
    Variable - Rebeca Noemi Perca Mucho
    Документ10 страниц
    Variable - Rebeca Noemi Perca Mucho
    Rebeca Noemi Perca Mucho
    Оценок пока нет
  • Caso de Estudio 1
    Caso de Estudio 1
    Документ5 страниц
    Caso de Estudio 1
    Rayner Mercedes Aponte
    Оценок пока нет
  • 1b CRETUS BioGroup Contarunahistoriacondatos ElartedesuVisualizacion
    1b CRETUS BioGroup Contarunahistoriacondatos ElartedesuVisualizacion
    Документ48 страниц
    1b CRETUS BioGroup Contarunahistoriacondatos ElartedesuVisualizacion
    Eci Emergencias
    Оценок пока нет
  • Facultad de Ingenieria Y Ciencias Basicas Investigación de Operaciones
    Facultad de Ingenieria Y Ciencias Basicas Investigación de Operaciones
    Документ27 страниц
    Facultad de Ingenieria Y Ciencias Basicas Investigación de Operaciones
    Juan Camilo Zapata Acosta
    Оценок пока нет
  • Curso de Arcgis 10.4.1
    Curso de Arcgis 10.4.1
    Документ4 страницы
    Curso de Arcgis 10.4.1
    Alexander Cotrina Sánchez
    Оценок пока нет
  • Estadistica
    Estadistica
    Документ59 страниц
    Estadistica
    Milenka Michel Carpio
    Оценок пока нет
  • Lab 1SDA
    Lab 1SDA
    Документ1 страница
    Lab 1SDA
    Izagui Charaja Herencia
    Оценок пока нет
  • Taller 1 Pronosticos Grupo
    Taller 1 Pronosticos Grupo
    Документ5 страниц
    Taller 1 Pronosticos Grupo
    Oscar Andrade
    Оценок пока нет
  • Taller Encuentro V
    Taller Encuentro V
    Документ30 страниц
    Taller Encuentro V
    Alen Montoya Atehortua
    Оценок пока нет
  • Estadisticas Epaña 2015
    Estadisticas Epaña 2015
    Документ12 страниц
    Estadisticas Epaña 2015
    Dani Perez
    Оценок пока нет
  • Tarea - Estudio de Mercado
    Tarea - Estudio de Mercado
    Документ2 страницы
    Tarea - Estudio de Mercado
    Carlos Eduardo Paúl Vargas Velásquez
    Оценок пока нет
  • EIN6017 Ejercicio 2 202310
    EIN6017 Ejercicio 2 202310
    Документ4 страницы
    EIN6017 Ejercicio 2 202310
    luis ortega castillo
    Оценок пока нет
  • Unidad5 Pract TelAmb
    Unidad5 Pract TelAmb
    Документ28 страниц
    Unidad5 Pract TelAmb
    Fer Pereyra
    Оценок пока нет
  • A4 - Método Centro Gravedad - LARIOSFLORES - FRANCISCOJAVIER
    A4 - Método Centro Gravedad - LARIOSFLORES - FRANCISCOJAVIER
    Документ7 страниц
    A4 - Método Centro Gravedad - LARIOSFLORES - FRANCISCOJAVIER
    FRANCISCO JAVIER LARIOS FLORES
    Оценок пока нет
  • Informe Planeación de La Producción
    Informe Planeación de La Producción
    Документ12 страниц
    Informe Planeación de La Producción
    cristian peñaloza
    Оценок пока нет
  • Trabajo FINAL Métodos y Herramientas para La Investigación
    Trabajo FINAL Métodos y Herramientas para La Investigación
    Документ18 страниц
    Trabajo FINAL Métodos y Herramientas para La Investigación
    Jorge Pulgar
    Оценок пока нет
  • TP #2 Estad. - Producción de Información
    TP #2 Estad. - Producción de Información
    Документ4 страницы
    TP #2 Estad. - Producción de Información
    Flor Y Agustín
    Оценок пока нет
  • Ficha Técnica ARCGIS 01
    Ficha Técnica ARCGIS 01
    Документ3 страницы
    Ficha Técnica ARCGIS 01
    carlosechalar
    Оценок пока нет
  • MAGM1209 SESION S09 v1
    MAGM1209 SESION S09 v1
    Документ51 страница
    MAGM1209 SESION S09 v1
    Gladys Esperanza Salvador
    Оценок пока нет
  • Informe de Incidencias Experimentos Acrobat
    Informe de Incidencias Experimentos Acrobat
    Документ14 страниц
    Informe de Incidencias Experimentos Acrobat
    Rodson Vladimir Ayme Tambra
    Оценок пока нет
  • TRABAJO 2 - Ejercicios
    TRABAJO 2 - Ejercicios
    Документ3 страницы
    TRABAJO 2 - Ejercicios
    Carlos Jimenez
    Оценок пока нет
  • Contar Historias Con Datos
    Contar Historias Con Datos
    Документ48 страниц
    Contar Historias Con Datos
    Walter Ricardo ELIAS
    Оценок пока нет
  • Trabajo Final Estadística Inferencial-S
    Trabajo Final Estadística Inferencial-S
    Документ3 страницы
    Trabajo Final Estadística Inferencial-S
    Julian Torres
    Оценок пока нет
  • Práctica #1: Docente: Materia: Auxiliar: Sigla
    Práctica #1: Docente: Materia: Auxiliar: Sigla
    Документ3 страницы
    Práctica #1: Docente: Materia: Auxiliar: Sigla
    Rosario Gonzales
    Оценок пока нет
  • ESAN - Tecnologia de La Informacion - Informe Sectorial
    ESAN - Tecnologia de La Informacion - Informe Sectorial
    Документ42 страницы
    ESAN - Tecnologia de La Informacion - Informe Sectorial
    Richard Salazar Hidalgo
    Оценок пока нет
  • Entrega 1 Investigación de Operaciones
    Entrega 1 Investigación de Operaciones
    Документ10 страниц
    Entrega 1 Investigación de Operaciones
    Isabela Trujillo
    Оценок пока нет
  • TCC
    TCC
    Документ15 страниц
    TCC
    Maria Fernanda Gonzalez Martinez
    Оценок пока нет
  • Informe Laboratorio3
    Informe Laboratorio3
    Документ15 страниц
    Informe Laboratorio3
    Tatys Morocho
    Оценок пока нет
  • Informe Laboratorio2
    Informe Laboratorio2
    Документ10 страниц
    Informe Laboratorio2
    Tatys Morocho
    Оценок пока нет
  • ArcGIS WaterShed Clasificacion y Diseño de Mapas
    ArcGIS WaterShed Clasificacion y Diseño de Mapas
    Документ27 страниц
    ArcGIS WaterShed Clasificacion y Diseño de Mapas
    Jaime Rojas Aguirre
    Оценок пока нет
  • Capitulo 4 - Ejemptransito Rigido Esp Geo Pavimentos 2018
    Capitulo 4 - Ejemptransito Rigido Esp Geo Pavimentos 2018
    Документ6 страниц
    Capitulo 4 - Ejemptransito Rigido Esp Geo Pavimentos 2018
    Fabio Garzon
    Оценок пока нет
  • Temario Qgis
    Temario Qgis
    Документ7 страниц
    Temario Qgis
    Carlos Valerio
    Оценок пока нет
  • Ejercicios Curso Excel Intermedio PDF
    Ejercicios Curso Excel Intermedio PDF
    Документ214 страниц
    Ejercicios Curso Excel Intermedio PDF
    Alexx Bntz
    Оценок пока нет
  • S6 Funrs S6
    S6 Funrs S6
    Документ9 страниц
    S6 Funrs S6
    Felipe Canta
    Оценок пока нет
  • GR.C 1ProyectoDigital HerramientasInformaticaSIG BUITRAGO
    GR.C 1ProyectoDigital HerramientasInformaticaSIG BUITRAGO
    Документ116 страниц
    GR.C 1ProyectoDigital HerramientasInformaticaSIG BUITRAGO
    CESAR BUITRAGO RUIZ
    Оценок пока нет
  • 80
    80
    Документ1 страница
    80
    MrLuis2312
    Оценок пока нет
  • 87
    87
    Документ1 страница
    87
    MrLuis2312
    Оценок пока нет
  • 101
    101
    Документ1 страница
    101
    MrLuis2312
    Оценок пока нет
  • 77
    77
    Документ1 страница
    77
    MrLuis2312
    Оценок пока нет
  • 138
    138
    Документ1 страница
    138
    MrLuis2312
    Оценок пока нет
  • 144
    144
    Документ1 страница
    144
    MrLuis2312
    Оценок пока нет
  • 95
    95
    Документ1 страница
    95
    MrLuis2312
    Оценок пока нет
  • 130
    130
    Документ1 страница
    130
    MrLuis2312
    Оценок пока нет
  • 65
    65
    Документ1 страница
    65
    MrLuis2312
    Оценок пока нет
  • 91
    91
    Документ1 страница
    91
    MrLuis2312
    Оценок пока нет
  • 100
    100
    Документ1 страница
    100
    MrLuis2312
    Оценок пока нет
  • 129
    129
    Документ1 страница
    129
    MrLuis2312
    Оценок пока нет
  • 147
    147
    Документ1 страница
    147
    MrLuis2312
    Оценок пока нет
  • 121
    121
    Документ1 страница
    121
    MrLuis2312
    Оценок пока нет
  • 141
    141
    Документ1 страница
    141
    MrLuis2312
    Оценок пока нет
  • 97
    97
    Документ1 страница
    97
    MrLuis2312
    Оценок пока нет
  • 72
    72
    Документ1 страница
    72
    MrLuis2312
    Оценок пока нет
  • 96
    96
    Документ1 страница
    96
    MrLuis2312
    Оценок пока нет
  • 17
    17
    Документ1 страница
    17
    MrLuis2312
    Оценок пока нет
  • 99
    99
    Документ1 страница
    99
    MrLuis2312
    Оценок пока нет
  • 143
    143
    Документ1 страница
    143
    MrLuis2312
    Оценок пока нет
  • 55
    55
    Документ1 страница
    55
    MrLuis2312
    Оценок пока нет
  • 116
    116
    Документ1 страница
    116
    MrLuis2312
    Оценок пока нет
  • 92
    92
    Документ1 страница
    92
    MrLuis2312
    Оценок пока нет
  • 18
    18
    Документ1 страница
    18
    MrLuis2312
    Оценок пока нет
  • 93
    93
    Документ1 страница
    93
    MrLuis2312
    Оценок пока нет
  • 24
    24
    Документ1 страница
    24
    MrLuis2312
    Оценок пока нет
  • 116
    116
    Документ1 страница
    116
    MrLuis2312
    Оценок пока нет
  • 15
    15
    Документ1 страница
    15
    MrLuis2312
    Оценок пока нет
  • 121
    121
    Документ1 страница
    121
    MrLuis2312
    Оценок пока нет
  • 3.4. El Lenguaje SQL
    3.4. El Lenguaje SQL
    Документ22 страницы
    3.4. El Lenguaje SQL
    José Márquez
    Оценок пока нет
  • PeopleSoft PeopleTools Procesos
    PeopleSoft PeopleTools Procesos
    Документ108 страниц
    PeopleSoft PeopleTools Procesos
    Belmar De Jesús Gálvez Martínez
    Оценок пока нет
  • 2 4 1 Uso de Subconsultas para Visualizar Informacion
    2 4 1 Uso de Subconsultas para Visualizar Informacion
    Документ31 страница
    2 4 1 Uso de Subconsultas para Visualizar Informacion
    Cassy Salazar Almonacid
    Оценок пока нет
  • Manual Transact SQL SQL Server by Oscar Patty PDF
    Manual Transact SQL SQL Server by Oscar Patty PDF
    Документ44 страницы
    Manual Transact SQL SQL Server by Oscar Patty PDF
    Bernabe Machado
    Оценок пока нет
  • Clase Indices
    Clase Indices
    Документ118 страниц
    Clase Indices
    Fernando Toro Auspont
    Оценок пока нет
  • MendezC ManualdePostgreSQL
    MendezC ManualdePostgreSQL
    Документ72 страницы
    MendezC ManualdePostgreSQL
    Cesar OF
    Оценок пока нет
  • 07 - Subconsultas
    07 - Subconsultas
    Документ11 страниц
    07 - Subconsultas
    Hansel Valdes
    100% (1)
  • Base de Datos Proyecto 'Punto Azul'
    Base de Datos Proyecto 'Punto Azul'
    Документ43 страницы
    Base de Datos Proyecto 'Punto Azul'
    Deisy DelaCruz
    Оценок пока нет
  • Clase 4 - Sublenguajes SQL
    Clase 4 - Sublenguajes SQL
    Документ70 страниц
    Clase 4 - Sublenguajes SQL
    Valeria Sanchez
    Оценок пока нет
  • BDatos
    BDatos
    Документ53 страницы
    BDatos
    Victor Galarza
    Оценок пока нет
  • CONSULTAS
    CONSULTAS
    Документ22 страницы
    CONSULTAS
    Julio Andrés Peralta Torres
    Оценок пока нет
  • Habilitar y Deshabilitar Triggers
    Habilitar y Deshabilitar Triggers
    Документ4 страницы
    Habilitar y Deshabilitar Triggers
    Diego Casco
    Оценок пока нет
  • Resumen DAX
    Resumen DAX
    Документ40 страниц
    Resumen DAX
    Cristian Saavedra
    100% (6)
  • Manual SQL Server 2000
    Manual SQL Server 2000
    Документ240 страниц
    Manual SQL Server 2000
    Alex Campos
    Оценок пока нет
  • Manual SQL
    Manual SQL
    Документ8 страниц
    Manual SQL
    fabian
    Оценок пока нет
  • Cuestionario Segundo Parcial 22 Mar Revisi N Del Intento Base de Datos PDF
    Cuestionario Segundo Parcial 22 Mar Revisi N Del Intento Base de Datos PDF
    Документ7 страниц
    Cuestionario Segundo Parcial 22 Mar Revisi N Del Intento Base de Datos PDF
    Cp-Tutoriales PC & ANDROID
    100% (1)
  • SQL Conceptos y Funciones
    SQL Conceptos y Funciones
    Документ18 страниц
    SQL Conceptos y Funciones
    Juan Cajaravilla
    Оценок пока нет
  • Ejercicios y Evaluaciones
    Ejercicios y Evaluaciones
    Документ100 страниц
    Ejercicios y Evaluaciones
    Hugo Bermudez Gutierrez
    0% (1)
  • Archivomaterial 2020528221349
    Archivomaterial 2020528221349
    Документ26 страниц
    Archivomaterial 2020528221349
    Diego Mejia Diego Mejia
    Оценок пока нет
  • Manual Transact
    Manual Transact
    Документ99 страниц
    Manual Transact
    gelitochess
    Оценок пока нет
  • Reglas de Codd Motores de Base de Datos
    Reglas de Codd Motores de Base de Datos
    Документ27 страниц
    Reglas de Codd Motores de Base de Datos
    FelipeA.DuránRodriguez
    Оценок пока нет
  • Postgresql, Informe.
    Postgresql, Informe.
    Документ24 страницы
    Postgresql, Informe.
    Cronicas de una Lectora Venezolana
    Оценок пока нет
  • Capacitacion Diplomado Oracle DBA OCA
    Capacitacion Diplomado Oracle DBA OCA
    Документ9 страниц
    Capacitacion Diplomado Oracle DBA OCA
    Álvaro Augusto Cote Flórez
    Оценок пока нет
  • Taller Numero 2 de Bases de Datos
    Taller Numero 2 de Bases de Datos
    Документ7 страниц
    Taller Numero 2 de Bases de Datos
    klorenacastiblancoc3964
    Оценок пока нет
  • Base de Datos de Ferretería Con Scripts
    Base de Datos de Ferretería Con Scripts
    Документ18 страниц
    Base de Datos de Ferretería Con Scripts
    Bernabé Chavajay
    100% (1)
  • Mysql Developers
    Mysql Developers
    Документ139 страниц
    Mysql Developers
    Layne Morán
    Оценок пока нет
  • Consulta SQL Base Datos Excel
    Consulta SQL Base Datos Excel
    Документ48 страниц
    Consulta SQL Base Datos Excel
    angel
    Оценок пока нет
  • PARCIAL2BD TDVR SoniaHahit 05ptos
    PARCIAL2BD TDVR SoniaHahit 05ptos
    Документ3 страницы
    PARCIAL2BD TDVR SoniaHahit 05ptos
    Sonia Nahit
    Оценок пока нет
  • Oracle Consultas en SQL HR
    Oracle Consultas en SQL HR
    Документ13 страниц
    Oracle Consultas en SQL HR
    Lilian Martínez
    60% (10)
  • Trabajo de Base de Datos
    Trabajo de Base de Datos
    Документ16 страниц
    Trabajo de Base de Datos
    Krishack Ddos
    67% (3)