Está en la página 1de 5

3.3.1.

Crear y seleccionar una base de datos


Si el administrador crea su base de datos en el mismo momento que le otorga privilegios,
puede comenzar a utilizarla, de lo contrario necesitar crearla:
mysql> CREATE DATABASE menagerie;
En ambientes Unix, los nombres de las bases de datos son case sensitive (al contrario que las
palabras clave), de modo que siempre debe referirse a su base de datos como menagerie, y
no Menagerie, MENAGERIE, o una variante similar. Esto tambin se aplica a los nombres de
tablas. Esta restriccin no existe en Windows, aunque puede utilizar el mismo esquema de
maysculas cuando se refiera a bases de datos y tablas en una consulta dada.
Al crear una base de datos, sta no se selecciona para su uso, debe hacerlo explicitamente.
Para convertir amenagerie en la base de datos actual, use este comando:
mysql> USE menagerie
Database changed
Las bases de datos slo necesitan ser creadas una sola vez, pero deben ser seleccionadas
cada vez que se inicia una sesin de mysql. Puede hacerse a travs del comando USE como
se muestra en el ejemplo, o puede indicar la base de datos en la linea de comandos al
ejecutar mysql. Simplemente debe indicar el nombre de la base de datos a continuacin de
los parmetros que necesite ingresar. Por ejemplo:
shell> mysql -h host -u user -p menagerie
Enter password: ********
Advierta en el comando anterior que menagerie no es la contrasea. Si se quisiera
suministrar la contrasea en la linea de comandos, despus de la opcin -p, debe hacerse sin
dejar espacios en blanco (por ejemplo, -pmypassword, no -p mypassword). De todos
modos, colocar la contrasea en la linea de comandos no es recomendable porque lo expone
a la vista de otros usuarios.

3.3.2. Crear una tabla
La creacin de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece
vaca, como le muestra SHOW TABLES:
mysql> SHOW TABLES;
Empty set (0.00 sec)
La parte difcil es decidir cmo debera 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 debera contener, como mnimo, el nombre de cada animal. Dado que el nombre no es muy
relevante por s mismo, tendra que tener ms informacin. Por ejemplo, si ms de una
persona en su familia tendr mascotas, querr listar tambin el dueo de cada animal. Y
algunos otros datos descriptivos bsicos, como especie y sexo.
Qu hacer con la edad? Podra ser de inters, 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 debera
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 clculos 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 prximos
cumpleaos de mascotas. (Si piensa que este tipo de consultas no es importante,
considere que es lo mismo que hara en un contexto de base de datos de negocios para
identificar aquellos clientes a los que habr que enviar una tarjeta por su cumpleaos, para
conseguir ese toque personal con la asistencia del ordenador).
Puede calcular edades en relacin a otras fechas adems de la actual. Por ejemplo,
almacenar la fecha de muerte de una mascota le posibilita calcular la edad que tena a ese
momento.
Probablemente pensar en otros tipos de informacin que resultaran 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 eleccin 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, segn lo que se crea ms razonable. (Nota: Anteriormente a MySQL 5.0.3, el
lmite 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 podran usarse para representar el sexo en los registros de
animales, tal como 'm'y 'f', o 'male' (masculino) y 'female' (femenino). Lo ms 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 debera 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.

3.3.3. Cargar datos en una tabla
Luego de crear la tabla, necesitar completarla con datos. Para esto, le sern de utilidad las
sentencias LOAD DATA e INSERT.
Suponga que los registros de mascotas fueran como los mostrados a continuacin. (Observe
que MySQL espera que las fechas tengan el formato 'AAAA-MM-DD', esto puede ser diferente
a lo que acostumbra utilizar).
name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
Dado que est comenzando con una tabla vaca, una forma fcil de completarla es creando un
fichero de texto que contenga una lnea por cada animal, y luego insertando el contenido del
fichero en la tabla mediante una sola sentencia.
Para esto, debera crear un fichero de texto llamado pet.txt, conteniendo un registro por
linea, con cada valor separado por un carcter de tabulacin, y dispuestos en el orden en el
cual se especificaron las columnas en la sentencia CREATE TABLE. Para valores ausentes
(como sexo desconocido o fechas de muerte de animales con vida), puede usar valores NULL.
Para representar estos valores en el archivo de texto, utilice \N (barra diagonal y N
mayscula). Por ejemplo, el registro de Whistler se vera del modo siguiente (el espacio en
blanco entre cada valor es un solo carcter de tabulacin):
name owner species sex birth death
Whistler Gwen bird \N 1997-12-09 \N
Para cargar el fichero pet.txt dentro de la tabla pet, utilice este comando:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
Si trabaja en Windows, con un editor que emplea \r\n (retorno de carro + nueva linea) como
caracteres de fin de lnea, debera usar:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY '\r\n';
(En un ordenador Apple bajo OS X, probablemente quiera utilizar LINES TERMINATED BY
'\r'.)
Opcionalmente puede especificar en la sentencia LOAD DATA los caracteres que actuarn
como separador de campo y fin de lnea, pero los valores por defecto son tabulacin y nueva
lnea. Estos son suficientes para que la sentencia lea correctamente el fichero pet.txt
Si ocurre un error al ejecutar la sentencia, probablemente se deba a que su instalacin de
MySQL no tiene habilitada por defecto la capacidad de manejar archivos locales.
Consulte Seccin 5.5.4, Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL para
obtener informacin sobre cmo cambiar esto.
Cuando lo que desea es agregar nuevos registros de a uno por vez, la
sentencia INSERT resulta de utilidad. De esta sencilla manera, se suministran valores para
cada columna, dispuestos en el orden en el cual se especificaron las columnas en la
sentencia CREATE TABLE statement. Suponga que Diane obtiene un nuevo hamster llamado
"Puffball". Se podra agregar un nuevo registro, usando la sentencia INSERT de este modo:
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Observe que las cadenas alfanumricas y las fechas son representados como cadenas
delimitadas por apstrofos. Tambin, con INSERT, se pueden insertar
valores NULL directamente, para indicar un valor ausente. No se debe utilizar \N como se hace
con LOAD DATA.
A partir de este ejemplo queda demostrado que lleva mucho ms trabajo realizar una carga
inicial de registros empleando varias sentencias INSERT que si se hace mediante la
sentencia LOAD DATA.

Para extraer informacin
La sentencia SELECT es utilizada para traer informacin 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 estn los datos a recuperar. La
clusula WHERE es opcional. Si est presente, condicionesrepresenta las condiciones que
cada registro debe cumplir para retornar como resultado.

También podría gustarte