Upload
andy-garcia
View
215
Download
1
Embed Size (px)
DESCRIPTION
CONSULTA BASE DE DATOS
Citation preview
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.
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
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 |
+---------------------+
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.