Академический Документы
Профессиональный Документы
Культура Документы
Tablas y consultas.
Entidad Propiedad
Tabla Columna
Cada fila representa un Registro. La clave puede estar formada por una o mas columnas
5
Para crear la base de datos escuela utilizaremos el Sistema de Gestin de Bases de Datos MySQL
* Robusto
* Cdigo abierto * Forma parte de LAMP
Bases de Datos MySQL Existe una herramienta, llamada phpMyAdmin, que permite administrar las bases de datos MySQL mediante una interfaz sencilla creada en PHP...
En una base de datos nueva, crear la tabla alumnos, con los campos clave_alumno, nombre, edad y curso_actual utilizando phpMyAdmin.
Creacin 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 mxima del tipo de dato (especialmente para VARCHAR). Attributes : UNSIGNED : Slo 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 aadir una nueva fila. Extra : AUTO_INCREMENT (normalmente se usa para generar, automticamente, 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.
10
11
1) Tipos numricos: Existen tipos de datos numricos, que se pueden dividir en dos grandes grupos, los que incluyen valores decimales (coma flotante) y los que no. TinyInt: es un nmero entero con o sin signo. Con signo el rango de valores vlidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit Bool: un nmero entero que puede ser 0 1 SmallInt: nmero 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: nmero 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: nmero 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: nmero 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: nmero pequeo en coma flotante de precisin simple. Los valores vlidos van desde 3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. Real, Double: nmero en coma flotante de precisin 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: Nmero en coma flotante. El nmero se almacena como una cadena
12
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 Maysculas y las minsculas, el tipo BLOB se ordena tenindolas en cuenta. Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. TinyText y TinyBlob: Columna con una longitud mxima de 255 caracteres. Blob y Text: un texto con un mximo de 65535 caracteres. MediumBlob y MediumText: un texto con un mximo de 16.777.215 caracteres. LongBlob y LongText: un texto con un mximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicacin en Internet, los paquetes pueden tener un mximo 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 mximo de 64 valores.
14
15
El lenguaje standard para los sistemas de bases de datos relacionales se llama SQL.
16
Componentes del lenguaje SQL: * DML (Data Manipulation Language) Manipulacin de los datos Seleccionar / Aadir / Modificar / Borrar * DDL (Data Definition Language) Creacin de objetos de la BD Creacin de tablas, ...
17
18
19
20
21
22
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;
23
1. Obtener el nombre de todos los alumnos que actualmente estn cursando cuarto ao. 2. Obtener todos los datos de los alumnos cuya edad sea menor o igual que diez aos, o que estn en un curso anterior al tercero.
24
Ejemplo: SELECT nombre, edad FROM alumnos ORDER BY edad DESC; {por defecto es ASC}
25
26
Bases de Datos MySQL Ejercicios: 3. Obtener la edad del mayor de los alumnos. 4. Obtener el nmero de alumnos cuya edad sea 11 aos.
27
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.
28
29
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 nmero de alumnos cuya edad sean 10 aos.
30
Relaciones entre tablas: Recordemos que un aula puede tener varias asignaturas, segn nuestro modelo
Por lo tanto, la relacin entre las tablas est dada por la relacin entre sus campos
31
33
Consultas en ms de una tabla Notacin: SELECT <nom_cols> FROM <nom_tabla>, <nom_tabla>, ... , <nom_tabla> [ WHERE <condiciones_booleanas> ] Ejemplo:
SELECT asignaturas.nombre, aulas.nombre FROM asignaturas, aulas WHERE aulas.clave_aula = asignaturas.clave_aula;
34
SELECT aulas.nombre FROM aulas, asignaturas WHERE asignaturas.nombre = 'Historia' AND aulas.clave_aula = asignaturas.clave_aula
35
36
37
39