Tablas y consultas.
Entidad Propiedad
Tabla Columna
Cada fila representa un Registro. La clave puede estar formada por una o mas columnas
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 5
Para crear la base de datos escuela utilizaremos el Sistema de Gestin de Bases de Datos MySQL
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 6
Existe una herramienta, llamada phpMyAdmin, que permite administrar las bases de datos MySQL mediante una interfaz sencilla creada en PHP...
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 8
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. DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 10
11
12
Al almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es vlida o no. Simplemente comprueba que el mes est entre 0 y 12 y que el da 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: ao-mes-dia
DateTime: Combinacin 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 ao-mes-dia horas:minutos:segundos
TimeStamp: Combinacin de fecha y hora. El rango va desde el 1 de enero de 1970 al ao 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 ao. El rango de valores permitidos va desde el ao 1901 al ao 2155. El campo puede tener tamao dos o tamao 4 dependiendo de si queremos almacenar el ao con dos o cuatro dgitos. DPOM - Bases de datos MySQL. 13
Prof. Eugenio Tisselli.
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 DPOM - Bases de datos MySQL. 14 mximo de 64 valores. Prof. Eugenio Tisselli.
15
El lenguaje standard para los sistemas de bases de datos relacionales se llama SQL.
16
17
Notacin:
SELECT <nombre_cols> FROM <nombre_tablas>; Ejemplo sobre la tabla alumnos: empleados (clave_alumno, nombre, edad, curso_actual)
19
FROM <nombre_tablas>
WHERE <condiciones_booleanas>; Ejemplo: SELECT nombre, curso_actual FROM alumnos WHERE edad = 10;
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 21
=
> < >=
<=
<> Operadores lgicos aplicables en la clusula WHERE: AND / OR / NOT Otros predicados aplicables en la clusula WHERE: <atributo> BETWEEN <limit_1>AND <limit_2> {Rango de valores} <atributo> LIKE <expr> {cadena de caracteres } Comodines: %, _ <atributo> IS [NOT] NULL {consultar si el atributo tiene valor o no}
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 22
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;
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 23
Notacin:
SELECT <nombre_cols> FROM <nombre_tablas> [ WHERE <condiciones_booleanas> ] ORDER BY <atributo_1>, ..., <atributo_N>; Ejemplo:
SELECT COUNT(*)
FROM alumnos;
SELECT AVG(edad)
FROM alumnos WHERE curso_actual = 3;
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 26
27
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
Por lo tanto, la relacin entre las tablas est dada por la relacin entre sus campos
31
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.
DPOM - Bases de datos MySQL. Prof. Eugenio Tisselli. 32
33
Notacin:
SELECT <nom_cols> FROM <nom_tabla>, <nom_tabla>, ... , <nom_tabla> [ WHERE <condiciones_booleanas> ] Ejemplo: SELECT asignaturas.nombre, aulas.nombre
34
35
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
36
39