View
37
Download
2
Embed Size (px)
DESCRIPTION
ing pulido
Citation preview
Bases de Datos II
Docente: Arturo Díaz Pulido
]
1. CONECTARSE CON EL SERVIDOR MySQL
Para acceder a la cuenta de MySQL se ingresa con los siguientes datos
Username: bdxxxxxxx
Password: xxxxxxx
Donde xxxxxxx la contraseña suministrada.
2. TIPOS DE DATOS
Los tipos de datos en MySQL se pueden clasificar en tres grupos:
• Tipos Numéricos
• Tipos de Fecha
• Tipos de Cadena
2.1 Tipos Numéricos
En los tipos numéricos podemos encontrar:
• TinyInt: número entero que puede tener o no signo. Si lleva signo el rango de valores es de -128 a 127 y sin signo 0 a 255. El tamaño de almacenamiento es de 1 byte.
• Bit ó Bool: número entero: 0 ó 1.
• SmallInt: número entero que puede tener o no signo. Si tiene signo el rango es
de -32768 a 32767 y sin signo 0 a 65535. El tamaño de almacenamiento es de 2 bytes.
• MediumInt: número entero que puede tener o no signo. Si tiene signo el rango es de -8.388.608 a 8.388.607 y sin signo 0 a16777215. El tamaño de almacenamiento es de 3 bytes.
• Integer, Int: número entero que puede tener o no signo. Si tiene signo el rango es de -2147483648 a 2147483647 y sin signo el 0 a 429.4967.295. El tamaño de almacenamiento es de 4 bytes.
Bases de Datos II
Docente: Arturo Díaz Pulido
• BigInt: número entero que puede tener o no signo. Si tiene signo el rango es de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 y sin signo 0 a 18.446.744.073.709.551.615. El tamaño de almacenamiento es de 8 bytes.
• Float: número pequeño en coma flotante de precisión simple. Los rangos están entre -3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. El tamaño de almacenamiento es de 4 bytes.
• Real, Double: número en coma flotante de precisión doble. Los rangos entan entre -1.7976931348623157E+308 a -
2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308. El tamaño de almacenamiento es de 8 bytes.
• Decimal, Dec, Numeric: Número en coma flotante desempaquetado y es almacenado como una cadena.
2.2 Tipos De Fecha
MySQL no prueba de una manera precisa si la fecha ingresada es o no válida, únicamente realiza las comparaciones lógicas como lo son que el mes este entre 0 y 12 y que el día entre 0 y 31.
• Date: tipo fecha, almacena una fecha. El rango esta entre el 1 de enero del 1001
al 31 de diciembre de 9999. El formato de almacenamiento queda de la forma: año-mes-día. El tamaño de almacenamiento es de 3 bytes
• DateTime: Es una combinación de fecha y hora, donde los valores están entre 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 queda de la forma: año-mes-día horas:minutos:segundo. El tamaño de almacenamiento es de 8 bytes
• TimeStamp: Es una combinación de fecha y hora y los valores están desde el 1 de enero de 1970 al año 2037. El tamaño de almacenamiento es de 4 bytes
• Time: almacena una hora. El rango puede estar entre -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de la forma: 'HH:MM:SS'. El tamaño de almacenamiento es de 3 bytes.
• Year: almacena un año. El rango es desde el año 1901 al año 2155. El tamaño de almacenamiento es de 1 bytes.
2.3 Tipos De Cadena
Bases de Datos II
Docente: Arturo Díaz Pulido
• Char(n): almacena una cadena de longitud fija y puede contener entre 0 y 255 caracteres. El tamaño de almacenamiento es de n bytes.
• VarChar(n): almacena una cadena de longitud variable y puede contener entre 0 y 255 caracteres. El tamaño de almacenamiento es de n+1 bytes.
• TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres, donde su tamaño de almacenamiento es de longitud + 1 bytes.
• Blob y Text: texto con un máximo de 65535 caracteres. Su tamaño de almacenamiento es de longitud + 2 bytes
• MediumBlob y MediumText: texto con un máximo de 16.777.215 caracteres. Su tamaño de almacenamiento es de longitud + 3 bytes
• LongBlob y LongText: texto con un máximo de caracteres
4.294.967.295. Su tamaño de almacenamiento es de longitud + 4 bytes
• Enum: campo que puede tener un único valor de una lista que se especifica y admite hasta 65535 valores distintos.
• Set: un campo que puede contener cero, uno ó varios valores de una lista, la cual puede tener un máximo de 64 valores.
3. MANEJO DE BASES DE DATOS EN MySQL
Comandos para el manejo de Bases de Datos en MySQL:
• CREATE [nombre]: Crea una base de datos con el nombre dado mysql> create
database miprueba;
• SELECT: Es un comando utilizado para traer información desde una tabla
SELECT seleccionar_Esto
FROM desde_tabla
WHERE condiciones;
Bases de Datos II
Docente: Arturo Díaz Pulido
• SHOW: Lista las bases de datos que hay en el servidor MySQL o las tablas de la base
de datos mysql> show databases; mysql> show tables;
• DESCRIBE permite obtener información sobre una tabla, para saber qué campos tiene y de qué tipo, mysql> describe prueba;
• USE db_nombre: indica a MySQL que use la base de datos db_nombre como la base de datos por defecto.
mysql> use miprueba;
• DROP DATABASE: elimina todas las tablas de la base de datos, juntamente con la base de datos.
• QUIT permite salir de la línea de comandos de MySQL.
mysql> quit
• MYSQLACCESS: verifica los permisos de acceso para una combinación de máquina.
base de datos y usuario.
• MYSQLADMIN: Es el cliente que realiza tareas administrativas, a su vez es un
comando con el cual consultar la versión, información de procesos, e información de estado del servidor.
• PERROR: Comando que muestra el significado de los errores de sistema de MySQL.
mysql> perror [opciones] código_de_error ...
• CREATE TABLE: Sentencia para especificar la estructura de una tabla donde se especifica los tipos de variable para cada ítem de la tabla.
mysql> CREATE TABLE pet (name VARCHAR(20), owner
VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
• SHOW TABLES: Comando que permite ver cuales tablas hay en la base de datos.
• UPDATE: Comando que modifica solo el registro en cuestión y no requiere que se vuelva a llenar la tabla.
Bases de Datos II
Docente: Arturo Díaz Pulido
mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
3.1 Manejo De Usuarios En MySQL
En MySQL existen cinco niveles distintos de privilegios:
• Globales: se aplican al conjunto de todas las bases de datos en un servidor. Este es el nivel más alto de privilegio.
• De base de datos: se refieren a bases de datos individuales y a su contenido.
• De tabla: se aplican a tablas individuales y sus respectivas columnas.
• De columna: se aplican a una columna en una tabla concreta.
• De rutina: se aplican a los procedimientos almacenados.
Estos son algunos comandos en cuanto al manejo de Usuarios:
• CREATE USER: crea nuevas cuentas MySQL
• DROP USER: elimina una o más cuentas MySQL
• CURRENT_USER: Devuelve el nombre de usuario y el del host para el que está
autentificada la conexión actual.
3.2 Sintaxis permitida para los identificadores de MySQL
En esta tabla se presentan las longitudes máximas, para cada identificador y los caracteres permitidos.
Bases de Datos II
Docente: Arturo Díaz Pulido
4. EXPRESIONES REGULARES
Las expresiones regulares permiten especificar un patrón para una búsqueda compleja. En MySQL se presentan las siguientes:
EXPRESIÓN DEFINICIÓN
^ Concuerda con el inicio de la cadena
$ Concuerda con el final de la cadena
. Concuerda con cualquier carácter
a* Concuerda con cualquier secuencia de cero o más caracteres a.
a+ Concuerda con cualquier secuencia de uno o más caracteres a.
a? Concuerda con cero o un carácter a.
de | abc Concuerda tanto con la secuencia de como con abc.
(abc)* Concuerda con cero o más instancias de la secuencia abc.
{1},{2,3}
La notación {n} o {m,n} provee una manera más general de escribir
expresiones regulares que concuerden con varias instancias del
átomo anterior (o “pieza”) del patrón. m y n son enteros.
Bases de Datos II
Docente: Arturo Díaz Pulido
Practica Nro. 1:
Practicar las diferentes sentencias que son utilizadas en la creación y manipulación de una base
de datos en MySql, mediante la realización de una serie de ejercicios en el laboratorio. Además
se efectuarán también diferentes operaciones con tablas y columnas.
Creando y usando una base de datos
Supongamos que tenemos diversas mascotas en casa (nuestro pequeño zoológico) y deseamos
tener registros de los datos acerca de ellas. Podemos hacer esto al crear tablas que guarden esta
información, para que posteriormente la consulta de estos datos sea bastante fácil y de manera
muy práctica. Esta sección muestra cómo crear una base de datos y una tabla.
La base de datos "zoológico" será muy simple (deliveradamente), pero no es difícil pensar en
situaciones del mundo real, en las cuales una base de datos similar puede ser usada.
Primeramente usaremos la sentencia SHOW para ver cuáles son las bases de datos existentes
en el servidor al que estamos conectados:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
Es probable que la lista de bases de datos que veamos sea diferente en nuestro caso, pero
seguramente las bases de datos "mysql" y "test" estarán entre ellas. En particular, la base de
datos "mysql" es requerida, ya que ésta tiene la información de los privilegios de los usuarios de
Bases de Datos II
Docente: Arturo Díaz Pulido
MySQL. La base de datos "test" es creada durante la instalación de MySQL con el propósito de
servir como área de trabajo para los usuarios que inician en el aprendizaje de MySQL.
Se debe anotar también que es posible que no veamos todas las bases de datos si no se tiene
el privilegio SHOW DATABASES. Si este es tu caso comentaselo a tu tutor de laboratorio.
Si la base de datos "test" existe, hay que intentar accesar a ella:
mysql> USE
test
Database
changed
mysql>
Observar que USE, al igual que QUIT, no requieren el uso del punto y coma, aunque si se usa éste,
no hay ningún problema. El comando USE es especial también de otra manera: éste debe ser
usado en una sola línea
Borrando una base de datos
Para borrar la base de datos utilizamos la
sentencia mysql>Drop database
nombre_de_la_base_de_datos;
Creando y visualizando tablas
Crear la base de datos es la parte más fácil, pero en este momento la base de datos está vacía,
como lo indica el comando SHOW TABLES FROM:
mysql> SHOW TABLES FROM
nombre_de_la_base_de_datos;
Empty set (0.00 sec)
La parte un tanto complicada es decidir la estructura que debe tener nuestra base de datos:
qué tablas se necesitan y qué columnas estarán en cada tabla.En principio, necesitamos una tabla
Bases de Datos II
Docente: Arturo Díaz Pulido
que contenga un registro para cada una de nuestras mascotas. Ésta puede ser una tabla llamada
mascotas, y debe contener por lo menos el nombre de cada uno de nuestros animalitos. Ya que
el nombre en sí no es muy interesante, la tabla debe contener alguna otra información. Por
ejemplo, si más de una persona en nuestra familia tiene una mascota, es probable que tengamos
que guardar la información acerca de quién es el dueño de cada mascota. Así mismo, también
sería interesante contar con alguna información más descriptiva tal como la especie, y el sexo de
cada mascota.
Al almacenar la fecha de nacimiento en lugar de la edad tenemos algunas otras ventajas:
Podemos usar la base de datos para tareas tales como generar recordatorios para cada
cumpleaños próximo de nuestras mascotas. Podemos calcular la edad en relación a otras fechas
que la fecha actual. Por ejemplo, si almacenamos la fecha en que murió nuestra mascota en la
base de datos, es fácil calcular que edad tenía nuestro animalito cuando falleció. Es probable que
estemos pensando en otro tipo de información que sería igualmente útil en la tabla "mascotas",
pero para nosotros será suficiente por ahora contar con información de nombre, propietario,
especie, nacimiento y fallecimiento.
Usaremos la sentencia CREATE TABLE para indicar como estarán conformados los registros de
nuestras mascotas.
mysql> CREATE TABLE mascotas(
-> nombre VARCHAR(20), propietario VARCHAR(20),
-> especie VARCHAR(20), sexo CHAR(1), nacimiento DATE,
-> fallecimento DATE);
Query OK, 0 rows affected (0.02 sec) mysql>
Para verificar que la tabla fué creada como nosotros esperabamos, usaremos la sentencia
DESCRIBE:
Bases de Datos II
Docente: Arturo Díaz Pulido
mysql> DESCRIBE mascotas;
+--------------+----------------+-----------+-------+-----------+---------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------+-----------+-------+-----------+---------+
| nombre | varchar(20) | YES | | NULL | |
| propietario | varchar(20) | YES | | NULL | |
| especie | varchar(20) | YES | | NULL | |
| sexo | char(1) | YES | | NULL | |
| nacimiento | date | YES | | NULL | |
| fallecimento| date | YES | | NULL | |
+--------------+-----------------+------ ---+--------+-----------+-------+
6 rows in set (0.01 sec)
mysql>
Podemos hacer uso de la sentencia DESCRIBE en cualquier momento, por ejemplo, si olvidamos
los nombres o el tipo de las columnas en la tabla.
Alterando tablas
MySQL nos provee del comando ALTER TABLE para realizar modificaciones a la estructura de una
tabla.Con este comando nosotros podemos:
- add (agregar) o bien delete (borrar) columnas "ADD y DROP"
- change (cambiar) la definición de tablas existentes "ALTER,
CHANGE, MODIFY". - rename (renombrar) columnas "CHANGE" o
aun en si "RENAME AS".
Para agregar una columna a una tabla utilizamos la sentencia
ALTER TABLE nombre_de_la_tabla ADD nombre_de_la_columna tipo;
Ejemplo 1:
En el sig. Ejemplo se agrega a la tabla
Tablita un index en la columna d y la columna
Bases de Datos II
Docente: Arturo Díaz Pulido
a se agrega como llave primaria.
mysql>AlLTER TABLE Tablita ADD index(d), ADD PRIMARY
KEY (a);
Ejemplo 2:
En el sig. Ejemplo se agrega una columna llamada C de tipo entero que se
autoincrementa
mysql>AlLTER TABLE Tablita ADD C INT UNSIGNED NOT NULL
AUTO_INCREMENT, ADD INDEX(c);
Ejemplo 3:
En el sig. Ejemplo agregamos en la tabla user un campo llamado yahoo de tipo varchar
con longitud de 50
mysql>ALTER TABLE user ADD yahoo VARCHAR(50) NOT NULL;
Se puede utilizar la palabra AFTER para especificar la posición en donde se desea colocar el
nuevo campo
Ejemplo 4:
En el sig. Ejemplo para la tabla user agregamos el campo yahoo exactamente después del
campo userid.
mysql>ALTER TABLE user ADD yahoo VARCHAR(50) NOT NULL AFTER userid;
Para cambiar el tipo de dato de una columna utilizamos la sentencia
ALTER TABLE nombre_de_la_tabla MODIFY nombre_de_la_columna nuevo_tipo;
Para cambiar una columna de nombre utilizamos la sentencia
ALTER TABLE nombre_de_la_tabla CHANGE nombre_actual_de_la_columna
nombre_nuevo tipo: Parra borrar una columna de una tabla utilizamos la sentencia
ALTER TABLE nombre_de_la_tabla DROP nombre_de_la_columna;
Para renombrar una tabla utilizamos la sentencia
Bases de Datos II
Docente: Arturo Díaz Pulido
ALTER TABLE nombre_de_la_tabla RENAME nombre_nuevo; o bien
RENAME Table nombre_de_la_tabla TO nuevo_nombre;
Para borrar una tabla utilizamos la siguiente sentencia
DROP TABLE nombre_de_la_tabla;
Bases de Datos II
Docente: Arturo Díaz Pulido
DESARROLLO DE LA PRÁCTICA
1.-Introduce tu login y password para acceder al servidor de MySQL.
2.-Crear una base de datos llamada ZooXXXX donde XXXX es el número de tu matrícula.
3.-Nuestra base de datos contendrá la sig. Tablas
Tabla Animales Tabla Zoologicos Tabla Veterinarios
Id_Animal (llave) Id_Zoologico(llave) Id_Veterinario
Especie Id_Animal Id_Zoologico
Hábitat Nombre_Zoo Nombre_Vete
Nombre Tel_Zoo Cedula
FechaNaci Dire_Vete
Paísdeorigen Tel_Vete Id_Veterinario
4.- Lista las BD existentes
5.- Ahora Lista las tablas que contiene la BD ZooXXXX
6.- Muestre en pantalla las columnas que contiene la Tabla Animales
7.- Liste las columnas que contiene Zoologicos y por último las de Veterinarios
8.- Sustituya el nombre de la tabla animales por el de Mascotas
9.-Para la tabla Mascotas, cambie el nombre de la columna Paisdeorigen por Origen
10.-Agregar una columna nueva a la tabla Mascotas y pongale como nombre Alimentacion
11.-Liste las columnas de la Tabla Mascotas
12.-Borre la Tabla Veterinarios
13.-Liste las tablas existentes en la BD ZooXXXX
14.-Cambie la longitud del tipo de dato de la columna Nombre de la tabla Mascotas. Es decir
auméntelo tres caracteres
15.-Borre la columna Origen de la tabla Mascotas
Bases de Datos II
Docente: Arturo Díaz Pulido
16.-Usted se ha equivocado y realmente no deseaba borrar la columna Origen, por lo tanto agregela
de nuevo
17.-Para la tabla Mascotas, coloque la columna Id_Veterinario como índice
18.-Agregar en la tabla Zoológicos la columna País justo después de la columna Nombre_Zoo
19.- Utilizando las sentencias necesarias de Mysql, elabore una BD que tenga mínimo 3 tablas y cada
tabla tendrá como mínimo 3 columnas.
20.-Liste las bases de datos existentes
21.- Muestre en pantalla las tablas de la BD creada en el punto 19.
22.- Borre la base de datos creada en el punto 19
23.- Liste las bases de datos existentes