Guía rápida de MySQL

27 04 2009

Seleccionar una base de datos:

mysql> USE basededatos;

Mostrar las bases de datos existentes:

mysql> SHOW DATABASES;

Mostrar las tablas de la base de datos seleccionada:

mysql> SHOW TABLES;

Describir el formato de una tabla:

mysql> DESCRIBE tabla;

Crear una base de datos:

mysql> CREATE DATABASE nombre_basededatos;

Crear una tabla:

mysql> CREATE TABLE nombre_tabla (nombre_campo1 TIPO(TAMAÑO), nombre_campo2 TIPO(TAMAÑO), ...);

Por ejemplo:

mysql> CREATE TABLE mascota (nombre VARCHAR(20), sexo CHAR(1), nacimiento DATE);

Cargar un archivo separado por tabs a la base de datos:

mysql> LOAD DATA LOCAL INFILE "archivo.txt" INTO TABLE nombre_tabla;

(Usar \n para representar un valor NULL)

Agregar una fila por vez

mysql> INSERT INTO nombre_tabla VALUES ('Nombre', 'Dueño', '2006-05-23');

(Usar NULL para los valores NULL)

Obtener ifnormación:

mysql> SELECT columna1, columna2, ..., columna_n FROM tablas WHERE condiciones;

Toda la tabla:

SELECT * FROM tabla;

Algunos valores:

SELECT * FROM tabla WHERE nombre_columna = "valor";

Varios filtros:

SELECT * FROM tabla WHERE columna1 = "valor1" AND columna2 = "valor2";

Modificar un conjunto de registros (que concuerden con un filtro)

mysql> UPDATE tabla SET nombre_columna = "nuevo_valor" WHERE nombre_columna = "valor_de_filtro";

Seleccionando sólo una columna en especial:

mysql> SELECT nombre_columna FROM tabla;

Obteniendo datos únicos/distintos/sin repetir:

mysql> SELECT DISTINCT nombre_columna FROM tabla;

Ordenar los datos

mysql> SELECT columna1, columna2, .... FROM tabla ORDER BY columna_n;

Orden inverso: SELECT columna1, columna2, .... FROM tabla ORDER BY columna_n DESC;

Cálculo de fechas

mysql> SELECT CURRENT_DATE, (YEAR(CURRENT_DATE)-YEAR(columna_de_fecha)) AS diferencia_de_fechas [FROM tabla];

MONTH(una_fecha) extrae el mes de la fecha especificada, DAYOFMONTH(fecha) el día.
Búsqueda de patrones (expresiones):

mysql> SELECT * FROM tabla WHERE columna LIKE 'algo%';

% es el caracter de comodín que significa cualquier cantidad de caracteres

mysql> SELECT * FROM tabla WHERE columna LIKE '_____';

_ es el caracter de comodín que significa cualquier caracter (sólo 1).
Búsqueda avanzada de expresiones regulares:

mysql> SELECT * FROM tabla WHERE columna RLIKE '^b$';

* . para un caracter
* […] para un conjunto de caracteres
* * para 0 o más caracteres
* ^ para el comienzo
* {n} para n repeticiones
* $ para el final

Es válido tanto para RLIKE como REGEXP. Sin embargo, para forzar la diferenciación de mayúsculas de minúsculas se recomendaría usar “REGEXP BINARY”.
Contando filas:

mysql> SELECT COUNT(*) FROM tabla;

Agrupar las cuentas

mysql> SELECT columna, COUNT(*) FROM tabla GROUP BY columna;

GROUP BY agrupa todos los registros de cada valor distinto de la columna especificada
Filtrando varias columnas:

mysql> SELECT tabla1.columna1, columna2 FROM tabla1, tabla2 WHERE tabla1.columna1 = tabla2.columna_n;

Se puede comparar una tabla consigo misma utilizando ‘AS’ para darle un nuevo nombre a una columna.
Seleccionar la base de datos actual:

mysql> SELECT DATABASE();

Calcular el máximo

mysql> SELECT MAX(nombre_columna) AS nombre_nueva_columnal FROM tabla;

Columna auto-incrementada

mysql> CREATE TABLE tabla (numero INT NOT NULL AUTO_INCREMENT, nombre CHAR(10) NOT NULL);

mysql> INSERT INTO tabla (nombre) VALUES ("tomas"),("pedro"),("juan");

Agregando una columna a una tabla ya existente:

mysql> ALTER TABLE tabla ADD COLUMN [sintaxis para una nueva columna] AFTER nombre_columna;

Borrando una columna:

mysql> ALTER TABLE tabla DROP COLUMN nombre_columna;

Haciendo una copia de seguridad con mysqldump:

# mysqldump --opt -u usario -p base_de_datos > respaldo.sql

Si se quiere hacer el respaldo de muchas bases de datos, hay que utilizar:

# mysqldump --opt --all-databases > respaldo_todo.sql

:wq!


Acciones

Informacion



Deje un comentario

usted puede usar estos tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>