5

BASE DE DATOS

Embed Size (px)

DESCRIPTION

CONSULTA BASE DE DATOS

Citation preview

Page 1: BASE DE DATOS
Page 2: BASE DE DATOS

COMO CREAR UNA BASE DE DATOS

Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base

de datos.

Suponga que en su hogar posee varias mascotas y desea registrar distintos tipos de

información sobre ellas. Puede hacerlo si crea tablas para almacenar sus datos e introduce

en ellas la información deseada. Entonces, podrá responder una variedad de preguntas

acerca de sus mascotas recuperando datos desde las tablas. Esta sección le muestra como:

Crear una base de datos

Crear una tabla

Introducir datos en la tabla

Recuperar datos desde la tabla de varias maneras

Emplear múltiples tablas

La base de datos menagerie (palabra inglesa que en español significa "colección de

animales") se ha hecho deliberadamente simple, pero no es difícil imaginar situaciones del

mundo real donde podría usarse un tipo similar de base de datos. Por ejemplo, para un

granjero que desee hacer el seguimiento de su hacienda, o para los registros de los pacientes

de un veterinario. En el sitio web de MySQL pueden descargarse archivos de texto con

datos de ejemplo y algunas de las sentencias empleadas en las siguientes secciones. Se

encuentran disponibles en formato tar (http://downloads.mysql.com/docs/menagerie.tar.gz)

y Zip (http://downloads.mysql.com/docs/menagerie.zip).

Mediante la sentencia SHOW se encuentran las bases de datos que existen actualmente en

el servidor:

mysql> SHOW DATABASES;

+----------+

| Database |

+----------+

| mysql |

| test |

| tmp |

+----------+

Probablemente la lista obtenida sea distinta en su ordenador, pero es casi seguro que tendrá

las bases de datos mysql y test. La base de datos mysql es necesaria porque es la que

describe los privilegios de acceso de los usuarios. La base de datos test se provee para que

los usuarios hagan pruebas.

Page 3: BASE DE DATOS

Tenga en cuenta que si no tiene el privilegio SHOW DATABASES, no podrá ver todas las

bases de datos que hay en el servidor. Consulte Sección 13.5.1.3, “Sintaxis de GRANT y

REVOKE”.

Si la base de datos test existe, intente acceder a ella:

mysql> USE test

Database changed

Advierta que, al igual que QUIT, USE no necesita que ponga un punto y coma al final

(aunque puede hacerlo si lo desea). La sentencia USE tiene otra particularidad: debe

escribirse en una sola linea.

Puede colocar los ejemplos siguientes en la base de datos test, si tiene acceso a ella, pero si

trabaja en un ambiente compartido, lo que deposite allí puede ser fácilmente borrado por

alguien más que tenga el acceso. Por este motivo, debería pedirle a su administrador

permiso para usar una base de datos propia. Suponga que quiere llamarla menagerie. El

administrador necesitará ejecutar un comando como este:

mysql> GRANT ALL ON menagerie.* TO 'su_nombre_mysql'@'su_host_cliente';

Donde su_nombre_mysql es el nombre de usuario que se le asignó, y su_host_cliente es el

host u ordenador desde donde se conectará.

COMO CREAR UNA TABLA

La creación de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece

vacía, como le muestra SHOW TABLES:

mysql> SHOW TABLES;

Empty set (0.00 sec)

La parte difícil es decidir cómo debería ser la estructura de su base de datos: qué tablas

necesitará, y qué columnas habrá en cada tabla.

Querrá una tabla para contener un registro por cada mascota. Esta tabla puede llamarse pet,

y debería contener, como mínimo, el nombre de cada animal. Dado que el nombre no es

muy relevante por sí mismo, tendría que tener más información. Por ejemplo, si más de una

persona en su familia tendrá mascotas, querrá listar también el dueño de cada animal. Y

algunos otros datos descriptivos básicos, como especie y sexo.

¿Qué hacer con la edad? Podría ser de interés, pero no es un buen dato para almacenar en

una base de datos. La edad cambia a medida que pasa el tiempo, lo cual significa que

Page 4: BASE DE DATOS

debería actualizar la base de datos a menudo. En lugar de esto, es mejor almacenar un valor

fijo, como la fecha de nacimiento. De este modo, cada vez que requiera saber la edad, podrá

calcularla como la diferencia entre la fecha de nacimiento y la fecha actual. MySQL provee

funciones para realizar cálculos con fechas, por lo que no es dificultoso. Almacenar la fecha

de nacimiento en lugar de la edad tiene otras ventajas:

Puede usar la base de datos para tareas como generar recordatorios para los

próximos cumpleaños de mascotas. (Si piensa que este tipo de consultas no es

importante, considere que es lo mismo que haría en un contexto de base de datos de

negocios para identificar aquellos clientes a los que habrá que enviar una tarjeta por

su cumpleaños, para conseguir ese toque personal con la asistencia del ordenador).

Puede calcular edades en relación a otras fechas además de la actual. Por ejemplo,

almacenar la fecha de muerte de una mascota le posibilita calcular la edad que tenía

a ese momento.

Probablemente pensará en otros tipos de información que resultarían útiles dentro de la

tabla pet pero los identificados hasta ahora son suficientes: name (nombre), owner

(propietario), species (especie), sex (sexo), birth (nacimiento) y death (muerte).

Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),

-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

El tipo de dato VARCHAR es una buena elección para las columnas name, owner, y

species porque los datos que allí se almacenan no son de longitud uniforme. En realidad no

es necesario que todas estas columnas tengan la misma longitud ni que ésta sea 20. En

MySQL 5.0.3 y versiones posteriores, normalmente se puede adoptar cualquier longitud

entre 1 y 65535, según lo que se crea más razonable. (Nota: Anteriormente a MySQL 5.0.3,

el límite de longitud era 255.) Si en el futuro debiera aumentar la longitud de estos campos,

MySQL tiene la sentencia ALTER TABLE.

Hay varios tipos de datos que podrían usarse para representar el sexo en los registros de

animales, tal como 'm' y 'f', o 'male' (masculino) y 'female' (femenino). Lo más simple es

usar los caracteres 'm' y 'f'.

Es obvio el uso del tipo de dato DATE para las columnas birth y death.

Luego de crear una tabla, SHOW TABLES debería producir una salida:

mysql> SHOW TABLES;

+---------------------+

| Tables in menagerie |

+---------------------+

| pet |

+---------------------+

Page 5: BASE DE DATOS

Para verificar que la tabla ha sido creada en la forma esperada, utilice la sentencia

DESCRIBE:

mysql> DESCRIBE pet;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| name | varchar(20) | YES | | NULL | |

| owner | varchar(20) | YES | | NULL | |

| species | varchar(20) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| birth | date | YES | | NULL | |

| death | date | YES | | NULL | |

+---------+-------------+------+-----+---------+-------+

DESCRIBE puede ser utilizada en cualquier momento, por ejemplo, si olvida los nombres

o el tipo de dato de las columnas de la tabla.

IMPORTAR Y EXPORTAR DATOS

La sentencia SELECT es utilizada para traer información desde una tabla. La sintaxis

general de esta sentencia es:

SELECT seleccionar_Esto

FROM desde_tabla

WHERE condiciones;

seleccionar_esto es lo que se quiere ver. Puede ser una lista de columnas, o * para indicar

“todas las columnas.” desde_tablaindica la tabla donde están los datos a recuperar. La

cláusula WHERE es opcional. Si está presente, condiciones representa las condiciones que

cada registro debe cumplir para retornar como resultado.