Instalación y configuración de MySQL en Slackware 13.1

Si hemos realizado una instalación full de Slackware, entonces mysql ya esta instalado, pero en mi caso al menos, si quería inicar mysql con el comando

#mysql

Obtenía el siguiente error.
ERROR 2001 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysql/mysql.sock’ (2)


Sigue leyendo

Ejemplo: incorporar datos en MySQL con LOAD DATA

Bueno en la práctica se suele disponer para las tablas de ficheros de texto delimitados por tabulaciones que usan el separador de columna predeterminado y cuyas líneas suelen concluir en el par de caracteres retorno de carro y nueva línea. Por lo tanto la sintaxis de lectura de los datos de este tipo de ficheros para la tabla seria la siguiente.

LOAD DATA LOCAL INFILE “ruta_de_archivo_txt” INTO TABLE nombre_de_la_tabla LINES TERMINATED BY “\r\n”;

Para este ejemplo disponemos de 2 archivos TXT uno llamado plantilla y el otro posterior. Crearemos una base de datos llámala como tu quieras. Y crearemos 2 tablas, por simplicidad no habrá ninguna restricción ni llave foránea.
CREATE TABLE PLANTILLA (
NOMBRE CHAR(30) NOT NULL,
EDAD NUMERIC,
ALOJAMIENTO CHAR(20));

CREATE TABLE POSTERIOR(
NOMBRE CHAR(30) NOT NULL,
DIRECCION CHAR(20));

Entramos a MySQL:

mysql> LOAD DATA LOCAL INFILE “ruta_de_archivo_txt” INTO TABLE nombre_de_la_tabla LINES TERMINATED BY “\r\n”;

Después para asegurarnos ha salido bien hacemos un SELECT a ambas tablas, asi como se muestra en la imagen.

Incorporar datos externos a las tablas MySQL con LOAD DATA

La sentencia SQL LOAD DATA lee los registro de un archivo y los carga como un volumen en una tabla. Esta sentencia es más rápida que INSERT. Sus sintaxis general es la siguiente:

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE “nombre_fichero”
[IGNORE | REPLACE]
INTO TABLE nombre_de_tabla
Opciones_importacion
[IGNORE n LINES]
[(Lista_columnas)]

LOW_PRIORITY retrasa la sentencia hasta que ningún usuario este leyendo la tabla. LOCAL hace que el cliente lea el archivo en el host del cliente y envié su contenido por la red al servidor. IGNORE provoca que las filas que duplican valores en un índice único sean ignoradas, mientras que REPLACE provoca que sean remplazadas.

Las opciones de importación pueden tener la siguiente sintaxis:

[FIELDS
[TERMINATED BY ‘cadena’ ]
[OPTIONALITY] ENCLOSED BY ‘caracter’]
[ESCAPED BY ‘caracter’]]
[LINES TERMINATED BY ‘cadena’]

Si se usa FIELDS hay que especificar TERMINATED BY, ENCLOSED BY O ESCAPED BY. FIELDS siempre debe preceder a LINES.

LINES TERMINATED BY especifica un carácter o caracteres que significan el final de las líneas. Si no se especifican ni FIELDS ni LINES, los valores por defecto quedaran como si se hubiesen especificado de la siguiente manera:

FIELDS
TERMINATED BY ‘\t’
ENCLOSED BY ‘’
ESCAPED BY ‘\\’
LINES TERMINATED BY ‘\n’

El conjunto de caracteres que se puede utilizar es el siguiente:

Creacion de tablas mediante SQL de MySQL

Las tablas son las estructuras de datos básicas en cualquier base de datos relacional. Una tabla es una colección organizada de registros (o filas), todas ellas con los mismos atributos (columnas o campos). Las columnas de la tabla describen la estructura de la misma y las restricciones de integridad describen los datos que son validos dentro de la misma. La sentencia SQL para la creación de tablas en MySQL es CREATE TABLE que tiene la siguiente sintaxis básica:

CREATE [TEMPORARY] TABLE [IF NO EXISTS] nombre_tabla
( definición de columnas,…)
[ opciones de tabla ]
[ [IGNORE | REPLACE] ] sentencia de selección.

La parte de la sentencia CREATE TABLE definición de columnas tiene la siguiente sintaxis:

{ nombrer_columna tipo_de_datos
[ NOT NULL | NULL ] [DEFAULT valor_predeterminado ]
[ AUTO_INCREMENT ] [ PRIMARY KEY ] [ referencia ]
PRIMARY KEY ( columna_indice )
KEY [ nombre_indice ] (columna_indice )
INDEX [ nombre_indice ] (columna_indice )
UNIQUE [ INDEX ] [ nombre_indice ] (columna_indice )
[ CONSTRAINT nombre ] FOREING KEY [ nombre_indice ] (columna_indice ) [ referencia ]
CHECK ( expresión) }

La parte de la sentencia CREATE TABLE referencia tiene la siguiente sintaxis:

REFERENCES nombre_tabla [ ( columnas_indice) ]
[ ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
[ ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
[ MATCH FULL | MATCH PARTIAL

TEMPORARY indica que la tabla que se crea solamente existe hasta que finalice la conexión del índice actual. IF NOT EXISTS provoca que no se cree la tabla si existe otra con el mismo nombre y que no haya errores.

NULL | NOT NULL son palabras claves que determinan si se permiten o no valores nulos (NULL) en la columna. NULL no es estrictamente una restricción, pero se puede especificar de la misma manera que NOT NULL. DEFAULT indica el valor predeterminado para la columna. AUTO_INCREMENT se usa solamente para columnas de tipo entero indica que su valor se incrementa en 1 y se va incrementando de unidad en unidad. PRIMARY KEY es una restricción que exige la integridad de entidad para una o varias columnas dadas a través de un índice único. Sólo se puede crear una restricción PRIMARY KEY por cada tabla. UNIQUE es una restricción que proporciona la integridad de entidad para una o varias columnas dadas a través de un índice único. Una tabla puede tener varias restricciones UNIQUE.

CONSTRAINT es una palabra clave opcional que indica el principio de la definición de una restricción PRIMARY KEY, NOT NULL, FOREING KEY o CHECK. Las restricciones son propiedades que exigen la integridad de los datos y pueden crear índices para la tabla y sus columnas. El argumento nombre es el nombre de una restricción. El nombre de la restricción debe ser único en la base de datos.

FOREING KEY …REFERENCES es una restricción que proporciona integridad referencial para los datos de la columna o columnas. Las restricciones FOREING KEY requieren que cada valor de la columna existe en la columna de referencia correspondiente de la tabla a la que se hace referencia. Las restricciones FOREING KEY pueden hacer referencia sólo a columnas que sean PRIMARY KEY o UNIQUE en la tabla de referencia o a columnas a las que se haga referencia en UNIQUE INDEX en la tabla de referencia. El argumento nombre_indice es el nombre de la restricción FOREING KEY, el argumento columna_indice es una columna o lista de columnas de la tabla actual a la que hace referencia la restricción FOREING KEY. El argumento nombre_tabla es el nombre de la tabla externa a la que hace referencia la restricción FOREING KEY y el argumento columnas_indice es una columna o lista de columnas de la tabla externa a la que referencia la restricción FOREING KEY. INDEX y KEY son sinónimos y establecen índices que pueden contener valores duplicados de modo que el índice se basa en las columnas citadas en columnas_indice y cada una de ellas debe ser una columna de nombre_tabla.

ON DELETE { CASCADE | NO ACTION } especificada que acción tiene lugar en una fila de la tabla creada, si esa fila tiene una relación referencial y la fila a la que hace referencia se elimina de la tabla primaria. El valor determinado es NO ACTION. Si se especifica CASCADE y se elimina una fila de la tabla primaria, también se elimina la fila de la tabla desde donde se hace referencia. Si se especifica NO ACTION, SQL Server genera un error y se deshace la acción de eliminación en la tabla primaria.

ON UPDATE { CASCADE | NO ACTION } especifica que acción tiene lugar en una fila de la tabla creada; si esa fila tiene una relación referencial y la fila a la que se hace referencia se actualiza en la tabla primaria. El valor predeterminado es NO ACTION. Si se especifica CASCADE la fila se actualiza en la tabla de referencia si esa fila se actualiza en la tabla primaria. Si se especifica NO ACTION SQL Server genera un error y se deshace la acción de actualización en la fila de la tabla primaria. CHECK es una restricción que exige la integridad del dominio al limitar los valores posibles que se pueden escribir en una o varias columnas.

Fuente: MySQL para Windows y Linux 2a edición.
Autor: César Pérez.
Edit.: Alafaomega Ra-Ma.