informatica:bases_de_datos:mysql
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:bases_de_datos:mysql [2021/11/15 11:39] – [Importar CSV] tempwin | informatica:bases_de_datos:mysql [2022/10/19 16:06] (actual) – [WHERE] tempwin | ||
|---|---|---|---|
| Línea 122: | Línea 122: | ||
| | ''> | | ''> | ||
| | '' | | '' | ||
| + | | '' | ||
| + | |||
| + | Si vamos a usar LIKE con múltiples valores, es mejor usar el operador '' | ||
| + | |||
| + | <code mysql> | ||
| + | WHERE interests LIKE ' | ||
| + | </ | ||
| + | |||
| + | Sería: | ||
| + | |||
| + | <code mysql> | ||
| + | WHERE interests REGEXP ' | ||
| + | </ | ||
| + | |||
| + | |||
| ==== GROUP BY ==== | ==== GROUP BY ==== | ||
| Línea 647: | Línea 662: | ||
| * '' | * '' | ||
| - | Hay que tener en cuenta que de la anterior manera, '' | + | Hay que tener en cuenta que de la anterior manera, '' |
| < | < | ||
| Línea 685: | Línea 700: | ||
| INTO TABLE mi_tabla | INTO TABLE mi_tabla | ||
| FIELDS TERMINATED BY ';' | FIELDS TERMINATED BY ';' | ||
| + | ENCLOSED BY '"' | ||
| LINES TERMINATED BY ' | LINES TERMINATED BY ' | ||
| IGNORE 1 rows | IGNORE 1 rows | ||
| Línea 693: | Línea 709: | ||
| * La segunda línea indica la tabla en la que se van a importar los datos. | * La segunda línea indica la tabla en la que se van a importar los datos. | ||
| * La tercera línea especifica el separador de campos. | * La tercera línea especifica el separador de campos. | ||
| - | * La cuarta línea indica el separador de líneas. En ficheros creados en Windows sería '' | + | * La cuarta línea |
| - | * La quinta | + | * La quintalínea |
| + | * La sexta línea ignora la primera línea del fichero CSV por si contiene el nombre de las columnas | ||
| * La última línea indica el orden y el nombre de los campos de la tabla donde se van a insertar los campos del fichero CSV. | * La última línea indica el orden y el nombre de los campos de la tabla donde se van a insertar los campos del fichero CSV. | ||
| + | |||
| + | ==== Ignorar duplicados ==== | ||
| En caso de que quisiéramos ignorar duplicados (si hay coincidencias en campos que deban ser únicos), añadimos '' | En caso de que quisiéramos ignorar duplicados (si hay coincidencias en campos que deban ser únicos), añadimos '' | ||
| Línea 707: | Línea 726: | ||
| (campo1, campo2, campo3, campo4); | (campo1, campo2, campo3, campo4); | ||
| </ | </ | ||
| + | |||
| + | ==== Seleccionar campos ==== | ||
| Si queremos insertar solo determinados campos: | Si queremos insertar solo determinados campos: | ||
| Línea 716: | Línea 737: | ||
| LINES TERMINATED BY ' | LINES TERMINATED BY ' | ||
| IGNORE 1 rows | IGNORE 1 rows | ||
| - | (@col1, @col2, @col3, @col4) SET campo3=@col3, | + | (@col1, @col2, @col3, @col4) SET campo3=@col3, |
| </ | </ | ||
| Solo insertaría los campos que ocupan las columnas 3 y 4. | Solo insertaría los campos que ocupan las columnas 3 y 4. | ||
| + | |||
| + | ==== Insertar null ==== | ||
| + | |||
| + | Si algún campo del CSV es vacío, podemos indicar que se inserte NULL mediante la función '' | ||
| + | |||
| + | <code mysql> | ||
| + | LOAD DATA LOCAL INFILE '/ | ||
| + | INTO TABLE mi_tabla | ||
| + | FIELDS TERMINATED BY ';' | ||
| + | LINES TERMINATED BY ' | ||
| + | IGNORE 1 rows | ||
| + | (@col1, @col2, @col3) | ||
| + | SET campo1=NULLIF(@col1, | ||
| + | </ | ||
| + | |||
| + | ==== Formatear fecha ==== | ||
| + | |||
| + | Si el dato de fecha viene en un formato distinto al esperado en MySQL ('' | ||
| + | |||
| + | <code mysql> | ||
| + | LOAD DATA LOCAL INFILE '/ | ||
| + | INTO TABLE mi_tabla | ||
| + | FIELDS TERMINATED BY ';' | ||
| + | LINES TERMINATED BY ' | ||
| + | IGNORE 1 rows | ||
| + | (@col1, @col2, @col3) | ||
| + | SET campo1=STR_TO_DATE(@col1, | ||
| + | </ | ||
| ===== Bases de datos de ejemplo ===== | ===== Bases de datos de ejemplo ===== | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ===== Reparar tablas ===== | ||
| + | |||
| + | Si tenemos el error "Table is marked as crashed and should be repaired", | ||
| + | |||
| + | < | ||
| + | mysqlcheck -uUSUARIO -p --databases NOMBRE_BASE_DATOS --auto-repair | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Se hará una revisión de las tablas de dicha base de datos y se intentará reparar automáticamente. | ||
informatica/bases_de_datos/mysql.1636972755.txt.gz · Última modificación: por tempwin
