15
Bases de Datos II Docente: Arturo Díaz Pulido [Introducción]

ejercicios BD1- informatica unt

Embed Size (px)

DESCRIPTION

ing pulido

Citation preview

Bases de Datos II

Docente: Arturo Díaz Pulido

[Introducción]

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