La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 1 Bases de Datos MySQL Tablas y consultas.

Presentaciones similares


Presentación del tema: "DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 1 Bases de Datos MySQL Tablas y consultas."— Transcripción de la presentación:

1 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 1 Bases de Datos MySQL Tablas y consultas.

2 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 2 Bases de Datos MySQL Recordemos el modelo Entidad – Relación de una escuela...

3 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 3 Bases de Datos MySQL

4 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 4 Bases de Datos MySQL Propiedades de las entidades.

5 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 5 Bases de Datos MySQL La entidad “alumnos” se convierte en la tabla: Entidad Tabla Propiedad Columna Cada fila representa un Registro. La clave puede estar formada por una o mas columnas

6 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 6 Bases de Datos MySQL Para crear la base de datos “escuela” utilizaremos el Sistema de Gestión de Bases de Datos MySQL MySQL

7 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 7 Bases de Datos MySQL Ventajas de MySQL: * Robusto * Código abierto * Forma parte de LAMP

8 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 8 Bases de Datos MySQL Existe una herramienta, llamada phpMyAdmin, que permite administrar las bases de datos MySQL mediante una interfaz sencilla creada en PHP... phpMyAdmin

9 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 9 Bases de Datos MySQL Ejercicio: En una base de datos nueva, crear la tabla “alumnos”, con los campos clave_alumno, nombre, edad y curso_actual utilizando phpMyAdmin.

10 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 10 Bases de Datos MySQL Creación de una tabla: Indicar, para cada campo de la tabla los siguientes datos: Field : Nombre del atributo. Type : Tipo de dato del atributo. Length/Values : Indica la longitud máxima del tipo de dato (especialmente para VARCHAR). Attributes : UNSIGNED : Sólo toma valores positivos (para INTEGER, SMALLINT,...). Null : El atributo puede tomar valores nulos? (la clave o identificador de la tabla nunca puede tener valores nulos!!!). Default : Valor por defecto del atributo al añadir una nueva fila. Extra : AUTO_INCREMENT (normalmente se usa para generar, automáticamente, valores de la clave). Primary : Se debe marcar si el atributo es Clave Primaria (el identificador) de la tabla. Index : Crea un índice dentro de la tabla. Unique: Se debe marcar si el valor del atributo es único para toda la tabla.

11 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 11 Bases de Datos MySQL Tipos de Datos en MySQL: Los tipos de datos que puede haber en un campo o atributo de una tabla forman tres grandes grupos: 1. Tipos Numéricos 2. Tipos de Fecha 3. Tipos de Cadena de Caracteres

12 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 12 Bases de Datos MySQL 1) Tipos numéricos: Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que incluyen valores decimales (coma flotante) y los que no. TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit ó Bool: un número entero que puede ser 0 ó 1 SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535. MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a 16777215. Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615. Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a - 1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. Real, Double: número en coma flotante de precisión doble. Los valores permitidos van desde - 1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 Decimal, Dec, Numeric: Número en coma flotante. El número se almacena como una cadena

13 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 13 Bases de Datos MySQL 2) Tipo Fecha: Al almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes está entre 0 y 12 y que el día está entre 0 y 31. Date: Almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de: año-mes-dia DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. Time: Almacena la hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.

14 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 14 Bases de Datos MySQL 3) Tipos de Cadena de Caracteres: Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres. VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres. Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los de tipo Text y los de tipo BLOB (Binary large Object). La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo Text se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta. Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres. Blob y Text: un texto con un máximo de 65535 caracteres. MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres. LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación en Internet, los paquetes pueden tener un máximo de 16 Mb. Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.

15 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 15 Bases de Datos MySQL Ejercicio: Insertar registros en la nueva tabla “alumnos”. Insertar al menos 4 registros de este tipo:

16 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 16 Bases de Datos MySQL El lenguaje standard para los sistemas de bases de datos relacionales se llama SQL.

17 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 17 Bases de Datos MySQL Componentes del lenguaje SQL: * DML (Data Manipulation Language) Manipulación de los datos Seleccionar / Añadir / Modificar / Borrar * DDL (Data Definition Language) Creación de objetos de la BD Creación de tablas,...

18 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 18 Bases de Datos MySQL DML = Data Manipulation Language (Manipulación de los Datos) * Select Permite hacer consultas en la BD, obteniendo una nueva “tabla” con los resultados de la consulta * Insert Permite añadir registros en la BD (filas de una tabla) * Update Permite modificar registros en la BD (filas de una tabla) * Delete Permite borrar registros en la BD (filas de una tabla)

19 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 19 Bases de Datos MySQL Consulta de datos: SELECT Notación: SELECT FROM ; Ejemplo sobre la tabla alumnos: empleados (clave_alumno, nombre, edad, curso_actual) SELECT nombre, edad FROM alumnos;

20 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 20 Bases de Datos MySQL Para mostrar todos los campos (columnas) de la tabla alumnos: SELECT * FROM empleados; Para evitar mostrar filas duplicadas: SELECT DISTINCT nombre FROM alumnos;

21 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 21 Bases de Datos MySQL Filtros (WHERE). Sirven para aplicar condiciones (o restricciones) en la selección de datos. Notación: SELECT FROM WHERE ; Ejemplo: SELECT nombre, curso_actual FROM alumnos WHERE edad = 10;

22 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 22 Bases de Datos MySQL Operadores de comparación aplicables en la cláusula WHERE: = > < >= <= <> Operadores lógicos aplicables en la cláusula WHERE: AND / OR / NOT Otros predicados aplicables en la cláusula WHERE: BETWEEN AND {Rango de valores} LIKE {cadena de caracteres } Comodines: ‘%’, ‘_’ IS [NOT] NULL {consultar si el atributo tiene valor o no}

23 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 23 Bases de Datos MySQL Ejemplos: AND: SELECT nombre FROM alumnos WHERE curso_actual = 3 AND edad >= 10; BETWEEN: SELECT * FROM alumnos WHERE edad BETWEEN 8 AND 12; LIKE: SELECT * FROM alumnos WHERE nombre LIKE "M%" AND curso_actual = 3;

24 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 24 Bases de Datos MySQL Ejercicios: 1. Obtener el nombre de todos los alumnos que actualmente estén cursando cuarto año. 2. Obtener todos los datos de los alumnos cuya edad sea menor o igual que diez años, o que estén en un curso anterior al tercero.

25 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 25 Bases de Datos MySQL Ordenación de los datos presentados (ORDER BY) Notación: SELECT FROM [ WHERE ] ORDER BY,..., ; Ejemplo: SELECT nombre, edad FROM alumnos ORDER BY edad DESC; {por defecto es ASC}

26 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 26 Bases de Datos MySQL Funciones de agregación COUNT( ) {devuelve el total de filas seleccionadas} SUM( ) {suma los valores de una columna} MIN( ) {devuelve valor mínimo columna} MAX( ) {devuelve valor máximo columna} AVG( ) {devuelve la mediana de la columna}... Ejemplos: SELECT COUNT(*) SELECT AVG(edad) FROM alumnos; FROM alumnos WHERE curso_actual = 3;

27 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 27 Bases de Datos MySQL Ejercicios: 3. Obtener la edad del mayor de los alumnos. 4. Obtener el número de alumnos cuya edad sea 11 años.

28 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 28 Bases de Datos MySQL Ejercicios: 5. Crear el resto de tablas: profesores, listas, aulas, asignaturas, horarios. OJO: la tabla “listas” tiene los siguientes campos: clave_alumno, clave_profesor. Ambos campos forman la clave de la tabla.

29 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 29 Bases de Datos MySQL

30 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 30 Bases de Datos MySQL Ejercicios extra: 1.Crear y ejecutar el comando SELECT para obtener los nombres (ordenados alfabéticamente) de los alumnos que tengan 10 años y estén en el tercer curso. 2.Crear y ejecutar el comando SELECT para obtener el nombre y curso actual de los alumnos cuya edad esté entre 11 y 12. 3.Obtener el número de alumnos cuya edad sean 10 años.

31 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 31 Bases de Datos MySQL Relaciones entre tablas: Recordemos que un aula puede tener varias asignaturas, según nuestro modelo… Por lo tanto, la relación entre las tablas está dada por la relación entre sus campos…

32 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 32 Bases de Datos MySQL Aulas (clave_aula, nombre … ) Asignaturas (clave_asignatura, clave_aula …) En la tabla “Asignaturas”, clave_aula hace referencia a la clave del mismo nombre en la tabla “Aulas”.

33 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 33 Bases de Datos MySQL Alumnos (clave_alumno, nombre … ) Listas (clave_alumno, clave_profesor) Profesores (clave_profesor, nombre … )

34 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 34 Bases de Datos MySQL Consultas en más de una tabla Notación: SELECT FROM,,..., [ WHERE ] Ejemplo: SELECT asignaturas.nombre, aulas.nombre FROM asignaturas, aulas WHERE aulas.clave_aula = asignaturas.clave_aula;

35 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 35 Bases de Datos MySQL Ejemplo 1. Nombres de las aulas donde se hace la asignatura de Historia: SELECT aulas.nombre FROM aulas, asignaturas WHERE asignaturas.nombre = 'Historia' AND aulas.clave_aula = asignaturas.clave_aula

36 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 36 Bases de Datos MySQL Ejemplo 2. Horarios y dias en los que se imparte la asignatura de Historia: SELECT horarios.hora_inicio, horarios.hora_fin, horarios.dia FROM horarios, asignaturas WHERE asignaturas.nombre = 'Historia' AND horarios.clave_asignatura = asignaturas.clave_asignatura ORDER BY horarios.dia, horarios.hora_inicio

37 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 37 Bases de Datos MySQL Ejemplo 3. Asignaturas que comienzan entre 8:00 y 10:00: SELECT asignaturas.nombre, horarios.hora_inicio, horarios.hora_fin, horarios.dia FROM asignaturas, horarios WHERE asignaturas.clave_asignatura = horarios.clave_asignatura AND horarios.hora_inicio BETWEEN '08:00:00' AND '10:00:00' ORDER BY horarios.dia, horarios.hora_inicio, asignaturas.nombre

38 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 38 Bases de Datos MySQL Ejemplo 4. Asignaturas que comienzan entre 8 y 10 el dia lunes: SELECT asignaturas.nombre, horarios.hora_inicio, horarios.hora_fin, horarios.dia FROM asignaturas, horarios WHERE asignaturas.clave_asignatura = horarios.clave_asignatura AND horarios.hora_inicio BETWEEN '08:00:00' AND '10:00:00' AND horarios.dia = 'lunes' ORDER BY horarios.dia, horarios.hora_inicio, asignaturas.nombre

39 DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 39 Bases de Datos MySQL Ejemplo 5. Alumnos cuyo profesor es 'Roberto Juarez': SELECT DISTINCT alumnos.nombre FROM alumnos, profesores, listas WHERE profesores.nombre = 'Roberto Juarez' AND listas.clave_profesor = profesores.clave_profesor AND alumnos.clave_alumno = listas.clave_alumno ORDER BY alumnos.nombre


Descargar ppt "DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 1 Bases de Datos MySQL Tablas y consultas."

Presentaciones similares


Anuncios Google