Page 1

Trabajo de base de datos Nombre: Jordan Puetate Curso:2°sistemas

Fecha:23/05/2013

Instrucciones de MY SQL: 1. #mysql -uroot -p ( para entrar al entorno de MySql )mysql>create database nombre_bd; ( para crear una Base de Datos )mysql>show databses; ( vemos la bases de datos creadas )mysql>use nombre_bd ( para trabajar con una bases de datos específica )mysql>show tables; ( vemos las tablas de la base de datos )mysql>drop database nombre_bd; ( eliminamos una base de datos )mysql>exit ( salimos del entorno del MySql )#mysql nombre_bd -u root -p < /mnt/usb/nombre_bd.sql ( para copiar laestructura de una base de datos desde un pen drive hacia el equipo )#mysqldump nombre_bd -u root -p > /mnt/usb/nombre_bd.sql ( paracopiar la estructura de una base de datos desde el equipo hacia un pen drive ) 2. Comandos principales de MYSQL.•Arranque de los servidores.Servidor Linux:safe_mysqld –user=mysqladm & root &Servidor Windows:MysqldArranque como usuario:mysql –u usuario –p claveEn el caso en el que el servidor no se encuentre en el ordenador que estamostrabajando laorden de uso será:mysql –h nombre_host –u usuario –p clave 3. •Consultas generales sobre las bases de datosMostrar las bases de datos:show databases;Mostrar las bases de datos seleccionadas:select databases();Mostrar las tablas que contiene una base de datos:show tables;Seleccionar una base de datos:use nombre_base;Describir la estructura de campos de una tabla:describe nombre_tabla;


4. •Creación de bases de datos, tablas y registrosCrear una base de datos:create database nombre_base;Creación de una tabla:create [temporary] table [if no exists] nombre_tabla (Nombre_campo tipo opciones cláusulas , “ “ “ , “ “ “ ,[último campo] );[temporary] --> la tabla existirá mientras exista la conexión con el cliente actual o hastaque seemita la instrucción drop table.[if no exist] --> si existe la tabla no se crea una nueva. 5. Las posibles opciones de tipo de campo son:tinyint --> 1 bytesmallint --> 2 bytemediumint --> 3 byteint --> 4 bytebigint --> 8 bytefloat --> 4 bytedouble --> 8 bytedecimal --> variablechar(n) --> cadena de caracteres de longitud fijavarchar(n) --> cadena de caracteres de longitud variablestinyblob --> objeto binario largo (muy pequeño)blob --> objeto binario largo (pequeño)mediumblob --> objeto binario largo (medio)longblob --> objeto binario largo (grande)tinytext --> cadena de texto muy pequeñatext --> cadena de texto pequeñamediumtext --> cadena de texto medialongtext --> cadena de texto largaenum --> una enumeraciónset --> un conjuntodate --> valor fecha (aaaa-mm-dd)time --> valor de hora (hhmm-ss)datetime --> valor de fecha y horatimestamp --> valor de lapso de tiempo (aaaammddhhmmss)year --> valor de año 6. Las posibilidades del apartado opciones son:Generales:null --> admite valores nulosno null --> rechaza dejar el campo en blancodefault --> permite establecer un valor por defectoColumnas numéricas:auto_increment --> para generar identificadores únicos o valores en serie.unisgned --> rechazo de valores negativosCadena:binary --> trata los valores como cadenas binarias (campos char y varchar)Cláusulas:primary key --> columna indexada para búsqueda rápida. Clave principal, solo puedehaber unaunique -> crea un índice con valores únicosindex, key --> son sinónimos y crean índices que pueden contener valores repetidos.


7. Inserción de registros en una base de datos:insert [low_priority | delayed][ignore][into] nombre_tabla forma_introducciónI. LOW_PRIORYTY | DELAYED: la primera de las opciones hace que lainserción seapostergada hasta que ningún cliente utilice la tabla. La segunda genera una cola deintroducción de registros, que se añadirán a la tabla cuando esta quede libre deusuarios.II. IGNORE: se desechan las filas que duplican valores para claves únicas.III. INTO: se requiere en versiones 3.22.5.Las formas de introducción son:w(lista_columnas) VALUE (lista_valores_o_expresión)w(lista_columnas) SELECT (opción_de_recuperación)wSET (nombre_columna=expresion, ....)Uso de una base de datosUse database; 8. •Consulta de una base de datos:La forma general del comando de consulta es:select opciones lista cláusulas;Tipos de opciones permitidas:all --> provoca el regreso de todas las filasdistinct, distinctrow --> especifican que las líneas duplicadas deben ser eliminadashigh_prioruty --> da mayor prioridad a la instrucción en el caso de espera.sql_byg_result, sql_small_result --> especifican que el conjunto de resultados serámas largoo más cortostraignt_join --> fuerza a las tablas a unirse en el orden citado en la cláusula fromLista --> especifica las columnas que deben devolverse, el símbolo “*” especifica quedebenextraerse todas las columnas. La separación entre los diferentes nombres decolumnas sehacen con el símbolo “,”. 9. Cláusulas (en caso de haber varias cláusulas deben seguir el orden expuesto en lalista):Intro outfile „nombre_fichero‟ opciones --> el resultado de la consulta es transferido aunfichero, paro lo cual debemos tener privilegio de crear el fichero y además este no debeexistir. Las opciones de importanción son las siguientes:[fields [terminate by „cadena‟]a [opcionally] [enclosed by „carácter‟] b[escape by„carácter‟]] c[lines terminated by „carácter‟]d


10. a)especifica el carácter o caracteres que delimitan valores dentro de la líneab)especifica un carácter entrecomillado que se quita del final del campo de valores.OPTIONALLY establece que los valores solamente se entrecomillan para lascolumnas char y varcharc)Se utiliza para especificar el carácter de escape especiald)Especifica un carácter o caracteres que determinan el final de la línea.Los caracteres especiales son los siguientes:-0 ascii 0-b retroceso-n línea nueva-r retorno de carro-s espacio-t tabulación-‟ comilla simple 11. -” comilla doble- barra inversafrom tabla-tablas --> especifica una o varias tablas desde las que se obtendrán lasfilas.Existen varias posibilidades de unión de tablas (mirar libro de mysql).where expresión --> establece una expresión que se aplica a las filas seleccionadasgroup by lista_columnas --> agrupa filas del conjunto de resultados de acuerdo conlascolumnas citadas.having expresión -> especifica una expresión secundaria para limitar filas despuésdesatisfechas las condiciones expuestas en la cláusula where.order by entero_unsigne|nombrecoluma|fórmula --> indica como se va a clasificarel conjuntode resultados. Las posibilidades son:asc – ascendentedesc – descendenterand() – orden aleatorioprocedure nombre_procedimiento --> indica un nombre de procedimiento al queseránenviados los datos antes de su salida.

Palabras clave reservadas (Transact-SQL) Microsoft SQL Server utiliza palabras clave reservadas para definir, manipular y tener acceso a las bases de datos. Las palabras clave reservadas forman parte de la gramática del lenguaje TransactSQL que utiliza SQL Server para analizar y comprender las instrucciones y lotes de TransactSQL.Aunque resulta sintácticamente posible usar palabras clave reservadas de SQL Server como identificadores y nombres de objetos en scripts de Transact-SQL, solo se puede hacer usando identificadores delimitados. En la tabla siguiente se enumeran las palabras clave reservadas de SQL Server.


ADD

EXTERNAL

PROCEDURE

ALL

FETCH

PUBLIC

ALTER

FILE

RAISERROR

AND

FILLFACTOR

READ

ANY

FOR

READTEXT

AS

FOREIGN

RECONFIGURE

ASC

FREETEXT

REFERENCES

AUTHORIZATION

FREETEXTTAB LE

REPLICATION

BACKUP

FROM

RESTORE

BEGIN

FULL

RESTRICT

BETWEEN

FUNCTION

RETURN

BREAK

GOTO

REVERT

BROWSE

GRANT

REVOKE

BULK

GROUP

RIGHT

BY

HAVING

ROLLBACK

CASCADE

HOLDLOCK

ROWCOUNT

CASE

IDENTITY

ROWGUIDCOL

CHECK

IDENTITY_INSE RT

RULE

CHECKPOINT

IDENTITYCOL

SAVE

CLOSE

IF

SCHEMA

CLUSTERED

IN

SECURITYAUDIT


COALESCE

INDEX

SELECT

COLLATE

INNER

SEMANTICKEYPHRASETABLE

COLUMN

INSERT

SEMANTICSIMILARITYDETAIL STABLE

COMMIT

INTERSECT

SEMANTICSIMILARITYTABLE

COMPUTE

INTO

SESSION_USER

CONSTRAINT

IS

SET

CONTAINS

JOIN

SETUSER

CONTAINSTABLE

KEY

SHUTDOWN

CONTINUE

KILL

SOME

CONVERT

LEFT

STATISTICS

CREATE

LIKE

SYSTEM_USER

CROSS

LINENO

TABLE

CURRENT

LOAD

TABLESAMPLE

CURRENT_DATE

MERGE

TEXTSIZE

CURRENT_TIME

NATIONAL

THEN

CURRENT_TIMEST AMP

NOCHECK

TO

CURRENT_USER

NONCLUSTERE D

TOP

CURSOR

NOT

TRAN

DATABASE

NULL

TRANSACTION

DBCC

NULLIF

TRIGGER


DEALLOCATE

OF

TRUNCATE

DECLARE

OFF

TRY_CONVERT

DEFAULT

OFFSETS

TSEQUAL

DELETE

ON

UNION

DENY

OPEN

UNIQUE

DESC

OPENDATASOU RCE

UNPIVOT

DISK

OPENQUERY

UPDATE

DISTINCT

OPENROWSET

UPDATETEXT

DISTRIBUTED

OPENXML

USE

DOUBLE

OPTION

USER

DROP

OR

VALUES

DUMP

ORDER

VARYING

ELSE

OUTER

VIEW

END

OVER

WAITFOR

ERRLVL

PERCENT

WHEN

ESCAPE

PIVOT

WHERE

EXCEPT

PLAN

WHILE

EXEC

PRECISION

WITH

EXECUTE

PRIMARY

WITHIN GROUP

EXISTS

PRINT

WRITETEXT

EXIT

PROC


Como crear una base de datos MySQL 1.-Creación de la base de datos Una vez dentro de MySQL, el primer paso es crear la base de datos: Create database postal; 2.-Creación de las tablas Para la creación de la tabla imagenes, donde almacenaremos los gráficos de las postales, generaremos dos campos: id_imagen, que es el identificador del grafico, específico para cada uno y cuyo valor corresponde también con el nombre del archivo gif. El otro campo, tipo, define el objeto de la postal (cumpleaños, Navidades o San Valentín). La forma más simple de crear esta tabla sería: Create Table imagenes ( id_imagen int(2), tipo varchar(15) ); La siguiente tabla a crear, postal, debe guardar toda una serie de datos necesarios para hacer llegar la postal al destinatario y hacer que el remitente reciba la confirmación de recepción. Veremos cómo actúa cada uno de esos datos en el script más adelante. Por ahora nos limitaremos a describir la sintaxis de la creación: Create Table postal ( id_postal int(5), texto varchar(255), email_destinatario varchar(50), nombre_destinatario varchar(50), email_remitente varchar(50), nombre_remitente varchar(50), id_imagen int(2), avisar char(7) ); Para una aplicación más compleja deberíamos definir además las claves y considerar más detenidamente el tipo de campo a definir. Aconsejamos leer los capítulos del tutorial de SQL donde podréis consejos para mejorar las prestaciones de las tablas. 3.-Relleno de la tabla imagenes con los gráficos de muestra Para rellenar rápidamente la tabla en un primer momento, sin necesidad de recurrir a sentencias SQL tipo Insert, podemos crear un archivo de texto con los registros separados por líneas y los valores de campo, puestos en el buen orden, separados por tabuladores. En el pack de descarga encontraréis el archivo texto imagenes ya preparado. Lo único que tenéis que hacer es colocar el archivo en el directorio bin de MySQL y ejecutar la siguiente orden en la base de


datos: Load data local infile "imagenes.txt" into table imagenes; Con esto tendremos llena la tabla imagenes. Para comprobarlo teclead: select * from imagenes;

Veréis como aparece en pantalla el contenido de la tabla que obviamente corresponde al del archivo texto.

4.-Creación del directorio virtual en el servidor Llegados a este punto, queda extraer los archivos restantes del pack a un directorio que deberá ser registrado en el servidor como directorio virtual tal y como hemos explicado para el caso del PWS

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. *COMOCREAR UNA BASE DE DATOS ? Como por ejemplo en Word, una tabla es una lista de datos, organizados por columnas y filas. Por ejemplo, la siguiente tabla muestra unas películas dentro de una lista.

Dentro de un sistema gestor de bases de datos, la información se puede organizar dentro de tablas, en las que solo tendremos que decidir qué columnas queremos que tenga y de que tipo va a ser la información que tendrán (Numérico, texto, etc)

Empezando con la base de datos Ahora que ya sabemos que es una tabla y una base de datos; Y tenemos nuestro servidor MySQL instalado con XAMPP y sino, tienes la suerte de poder instalarlo muy sencillamente desde éste tip, vamos a empezar creando nuestra primera base de datos. Para ello, vamos a hacerlo íntegramente desde el PHPmyAdmin que esta en http://localhost/phpmyadmin/

Creando una base de datos El nombre de nuestra base de datos será Videoteca. Crearemos nuestra base de datos dando al enlace que pone “Bases de datos”, que esta abajo, en nuestra pagina dehttp://localhost/phpmyadmin/ como podemos ver en esta imagen:


Ahora se nos abrirá una nueva ventana, donde abajo del todo veremos “Crear una base de datos”, en ella escribiremos el nombre de nuestra nueva base de datos, en este caso:Videoteca.

PD: en lo nombres no podemos escribir caracteres como, comas, acentos, ñ, etc. Si todo ha ido bien, ahora nos pondrá que ya esta creada.

Crear tablas y campos para la base de datos En el apartado anterior hemos aprendido a crear una base de datos MySQL, y he creado una, a la cual la he llamado “Videoteca”. Ahora el siguiente paso seria crear las tablas y los campos que nos hagan falta para posteriormente meter los datos, y eso es precisamente lo que vamos a aprender en este tutorial.

Creando una Tabla y sus campos en MySQL


Existen varias formas y programas diferentes para crear una tabla en una base de datos MySQL, pero lo voy a hacer desde phpMyAdmin, el motivo de hacerlo desde phpMyAdmin y no de otra forma es porque comúnmente, en todos los servidores ya sean caseros o de un hosting privados siempre suele tener un phpMyAdmin a mano. En primer lugar vamos a nuestro phpMyAdmin y seleccionamos la base de datos que hemos creado anteriormente(Videoteca) como vemos en la siguiente imagen:

Ahora se cargara la base de datos y nos saldrá un mensaje que pone “no se han encontrado tablas en la base de datos” y más abajo veremos un pequeño formulario para crear nuestra primera tabla. En nombre pondremos película y en número de campos pondremos 3.

Ahora damos a continuar y se nos cargara la pagina para crear los campos, en este caso serán los 3 que hemos puesto antes. Veremos que tendremos que rellenar varios datos, pero no tenemos que preocuparnos, ya que explicaremos uno a uno lo que significa.

o o o o

En Campo, pondremos el nombre del campo. En Tipo, debemos poner el tipo de datos que se van a incluir en el campo, por ejemplo pondríamos: VARCHAR si vamos a incluir un texto inferior a 255 caracteres ejemplo (nombres, DNI, direcciones). TEXT si vamos a incluir un texto más largo de 255 caracteres ejemplo (noticias). INT si deseamos escribir exclusivamente números. DATE para poner fechas, o DATETIME, si queremos poner hora y fecha.


En Longitud, deberemos de poner el número de caracteres máximo que puede contener dicho campo, esto no hace falta para todos los tipos de datos, ya que por ejemplo para los de tipo DATE, o TEXT no hace falta, pero para los INT y VARCHAR es imprescindible. En Nulo, podemos elegir Null o Not Null dependiendo si queremos que el campo pueda estar vacío (sin datos) o no. En predeterminado, podemos poner lo que queramos que se ponga en el campo en el caso de que no se rellenen los datos o que se rellene de forma incorrecta. En extra, vemos que podemos seleccionar Auto_Increment, esto nos sirve para llevar un orden de los datos que tenemos, por ejemplo, creamos un campo llamado id, de tipo INT y le ponemos auto_increment, de esta forma cada vez que se cree un nuevo dato en este campo se le sumara 1 a la id anterior, de forma que podremos llevar un pequeño orden. Ahora que ya mas o menos he explicado para que es cada cosa voy a deciros que debemos de poner en cada uno de los 3 campos: Campo 1 Nombre: id_pelicula Tipo: INT Nulo: Not Null Extra: Auto_increment Y marcamos la llave de Primaria Campo 2 Nombre: pelicula Tipo: VARCHAR Longitud: 30 Nulo: Not Null Campo 3 Nombre: Director Tipo: VARCHAR Longitud: 30 Nulo: Not Null

4 Lenguaje SQL Importar y exportar datos ^

MySQL permite copiar tablas en diferentes formatos de texto, así como importar datos a partir de fichero de texto en diferentes formatos. Esto se puede usar para exportar los datos de nuestras bases de datos a otras aplicaciones, o bien para importar datos desde otras fuentes a nuestras tablas. También se puede usar para hacer copias de seguridad y restaurarlas posteriormente.


Exportar a otros ficheros ^

Para extraer datos desde una base de datos a un fichero se usa la sentencia SELECT ... INTO OUTFILE. El resto de las cláusulas de SELECT siguen siendo aplicables, la única diferencia es que la salida de la selección se envía a un fichero en lugar de hacerlo a la consola. La sintaxis de la parte INTO OUTFILE es: [INTO OUTFILE 'file_name' export_options]

file_name es el nombre del fichero de salida. Ese fichero no debe existir, ya que en caso contrario la sentencia fallará. En cuanto a las opciones de exportación son las mismas que para las cláusulas FIELDS y LINES de LOAD DATA. Su sintaxis es: [FIELDS [TERMINATED BY '\t'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ] ] [LINES [STARTING BY ''] [TERMINATED BY '\n'] ]

Estas cláusulas nos permiten crear diferentes formatos de ficheros de salida. La cláusula FIELDS se refiere a las opciones de cada columna: TERMINATED BY 'carácter': nos permite elegir el carácter delimitador que se usará para separar cada columna. Por defecto, el valor que se usa es el tabulador, pero podemos usar ';', ',', etc. [OPTIONALLY] ENCLOSED BY 'carácter': sirve para elegir el carácter usado para entrecomillar cada columna. Por defecto no se entrecomilla ninguna columna, pero podemos elegir cualquier carácter. Si se añade la palabra OPTIONALLY sólo se entrecomillarán las columnas de texto y fecha. ESCAPED BY 'carácter': sirve para indicar el carácter que se usará para escapar aquellos caracteres que pueden dificultar la lectura posterior del fichero. Por ejemplo, si terminamos las columnas con ',' y no las entrecomillamos, un carácter ',' dentro de una columna de texto se interpretará como un separador de columnas. Para evitar esto se puede escapar esa coma con otro carácter. Por defecto se usa el carácter '\'. La cláusula LINES se refiere a las opciones para cada fila: STARTING BY 'carácter': permite seleccionar el carácter para comenzar cada línea. Por defecto no se usa ningún carácter para ello. TERMINATED BY 'carácter': permite elegir el carácter para terminar cada línea. Por defecto es el retorno de línea, pero se puede usar cualquier otro carácter o caracteres, por ejemplo '\r\n'.


Por ejemplo, para obtener un fichero de texto a partir de la tabla 'gente', con las columnas delimitadas por ';', entrecomillando las columnas de texto con '"' y separando cada fila por la secuencia '\r\n', usaremos la siguiente sentecia: mysql> SELECT * FROM gente -> INTO OUTFILE "gente.txt" -> FIELDS TERMINATED BY ';' -> OPTIONALLY ENCLOSED BY '\"' -> LINES TERMINATED BY '\n\r'; Query OK, 5 rows affected (0.00 sec) mysql>

El fichero de salida tendrá este aspecto: "Fulano";"1974-04-12" "Mengano";"1978-06-15" "Tulano";"2000-12-02" "Pegano";"1993-02-10" "Mengano";\N

La fecha para "Mengano" era NULL, para indicarlo se muestra el valor \N. Importar a partir de ficheros externos ^

Por supuesto, el proceso contrario también es posible. Podemos leer el contenido de un fichero de texto en una tabla. El fichero origen puede haber sido creado mediante una sentecia SELECT ... INTO OUTFILE, o mediante cualquier otro medio. Para hacerlo disponemos de la sentencia LOAD DATA, cuya sintaxis más simple es: LOAD DATA [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ] ] [LINES [STARTING BY ''] [TERMINATED BY '\n'] ] [IGNORE number LINES] [(col_name,...)]


La cláusula LOCAL indica, si aparece, que el fichero está en el ordenador del cliente. Si no se especifica el fichero de texto se buscará en el servidor, concretamente en el mismo directorio donde esté la base de datos. Esto nos permite importar datos desde nuestro ordenador en un sistema en que el servidor de MySQL se encuentra en otra máquina. Las cláusulas REPLACE e IGNORE afectan al modo en que se tratan las filas leídas que contengan el mismo valor para una clave principal o única para una fila existente en la tabla. Si se especifica REPLACEse sustituirá la fila actual por la leída. Si se especifica IGNORE el valor leído será ignorado. La parte INTO TABLA tbl_name indica en qué tabla se insertarán los valores leídos. No comentaremos mucho sobre las cláusulas FIELDS y LINES ya que su significado es el mismo que vimos para la sentencia SELECT ... INTO OUTFILE. Estas sentencias nos permiten interpretar correctamente cada fila y cada columna, adaptándonos al formato del fichero de texto de entrada. La misma utilidad tiene la cláusula IGNORE número LINES, que nos permite que las primeras númerolíneas no se interpreten como datos a importar. Es frecuente que los ficheros de texto que usaremos como fuente de datos contengan algunas cabeceras que expliquen el contenido del fichero, o que contengan los nombres de cada columna. Usando esta cláusula podemos ignorarlas. La última parte nos permite indicar la columna a la que será asignada cada una de las columnas leídas, esto será útil si el orden de las columnas en la tabla no es el mismo que en el fichero de texto, o si el número de columnas es diferente en ambos. Por ejemplo, supongamos que queremos añadir el contenido de este fichero a la tabla "gente": Fichero de datos de "gente" fecha,nombre 2004-03-15,Xulana 2000-09-09,Con Clase 1998-04-15,Pingrana

Como vemos, hay dos filas al principio que no contienen datos válidos, las columnas están separadas con comas y, como hemos editado el fichero con el "notepad", las líneas terminan con "\n\r". La sentencia adecuada para leer los datos es: mysql> LOAD DATA INFILE "gente.txt" -> INTO TABLE gente -> FIELDS TERMINATED BY ',' -> LINES TERMINATED BY '\r\n' -> IGNORE 2 LINES -> (fecha,nombre); Query OK, 3 rows affected (0.00 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0


mysql>

El nuevo contenido de la tabla es: mysql> SELECT * FROM gente; +-----------+------------+ | nombre | fecha | +-----------+------------+ | Fulano | 1974-04-12 | | Mengano | 1978-06-15 | | Tulano | 2000-12-02 | | Pegano | 1993-02-10 | | Mengano | NULL | | Xulana | 2004-03-15 | | Con Clase | 2000-09-09 | | Pingrana | 1998-04-15 | +-----------+------------+ 8 rows in set (0.00 sec) mysql>

trabajo de base de datos  

instrucciones MY SQL