Luego de crear la tabla, necesitará completarla con datos. Para
esto, le serán de utilidad las sentencias LOAD
DATA
e INSERT
.
Suponga que los registros de mascotas fueran como los mostrados
a continuación. (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 vacía, una forma fácil de completarla es creando un fichero de texto que contenga una línea por cada animal, y luego insertando el contenido del fichero en la tabla mediante una sola sentencia.
Para esto, debería crear un fichero de texto llamado
pet.txt
, conteniendo un registro por linea,
con cada valor separado por un carácter de tabulación, 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 mayúscula). Por
ejemplo, el registro de Whistler se vería del modo siguiente
(el espacio en blanco entre cada valor es un solo carácter de
tabulación):
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 línea, debería 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 actuarán como separador de
campo y fin de línea, pero los valores por defecto son
tabulación y nueva línea. 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 instalación de MySQL no tiene habilitada por
defecto la capacidad de manejar archivos locales. Consulte
Sección 5.5.4, “Cuestiones relacionadas con la seguridad y LOAD DATA
LOCAL
” para obtener información
sobre cómo 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 podría 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 alfanuméricas y las fechas son
representados como cadenas delimitadas por apóstrofos.
También, 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 más
trabajo realizar una carga inicial de registros empleando varias
sentencias INSERT
que si se hace mediante la
sentencia LOAD DATA
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.