Apuntes para trabajar con MySQL

Estos son algunas notas o apuntes que me sirven de referencia a la hora de trabajar con MySQL.

No pretendo que sean de uso básico, sino más bien de recordatorio cuando algo se olvida o no se recuerda exactamente su sintaxis.

Directorios habituales

  • Programa: /usr/local/var/
  • Datos: /usrl/local/mysql/data/ (o /var/lib/mysql/)
  • mysqladmin variables; => Muestra variables y directorios.

Permiso base de datos

  • mysql -h servidor -u usuario -p => Posteriormente nos pedirá el password. Conectar con el servidor (ip o nombre) a través del usuario.
  • GRANT ALL ON basedatos TO usuario@localhost IDENTIFIED BY “password”; => Dar permisos a usuario con el password indicado sobre la base de datos indicada. Acceso solo desde localhost (normalmente es suficiente ya que si lo queremos para scripts PHP o similar se ejecutarán, seguramente en localhost).
  • GRANT ALL ON basedatos TO usuario@% IDENTIFIED BY “password”; => Idem a anterior, pero % indica que se podrá conectar desde cualquier IP.
  • GRANT ALL ON basedatos.* TO usuario@localhost IDENTIFIED BY “password”; => Dar permiso al usuario sobre las tablas de la base de datos.
  • mysqladmin -u root password “nuevopassword”; => Asignar contraseña a root.

Trabajar con bases de datos

  • mysql basedatos <crear-basedatos.sql; => Crear una base de datos a través de un fichero.
  • mysqlshow; => Lista de bases de datos del servidor.
  • mysqlshow basedatos; => Lista de tablas de la base de datos.
  • mysqshow tabla; => Lista de campos (estructura) de la tabla.
  • create database basedatos; => Crea una base de datos.
  • show databases; => Muestra las bases de datos para el usuario actual.

Tipos de campos

  • Enteros: TINYURL (1 byte, -128…127), SMALLINT (2 bytes, -32768…32767), MEDIUMINT (3 bytes), INT (4 bytes), BIGINT (8 bytes).
  • Reales: FLOAT (4 bytes), DOUBLE (8 bytes).
  • Cadenas: CHAR (cadena de longitud fija, si no se usa se rellena con espacios), VARCHAR (cadena de longitud variable).
  • Fechas y horas: DATE (AAAA-MM-DD), TIME (hh:mm:ss), DATETIME (AAAA-MM-DD hh:mm:ss), TIMESTAMP (AAAAMMDDhhmmss).

Trabajo con tablas (SQL)

  • SELECT … ORDER BY … LIMIT 10,5; => Mostrar 5 registros a partir del registro 10.
  • SELECT COUNT(*) FROM tabla; => Mostrar cantidad de registros de una tabla.
  • SELECT COUNT(DISTINCT campo) FROM tabla; => Mostrar cantidad de valores diferentes de un campo en una tabla.
  • SELECT campo, COUNT(*) FROM tabla GROUP BY campo; => Mostrar un campo y la cantidad de veces que aparece en una tabla.
  • SELECT MONTH(fecha) as Mes, MONTHNAME(fecha) as Nombre, COUNT(*) AS Cantidad FROM tabla GROUP BY Nombre ORDER BY Mes; => Dado un campo llamado fecha, mostrar el número de mes, el nombre de mes (en inglés) y la cantidad de registros para dicho mes.
  • SELECT … FROM t1, t2 WHERE t1.id=t2.id; => Mostrar registros coincidentes de dos tablas.

Funciones

  • TO-DAYS(“1997-04-11”) => 729490. Nos devuelve el entero asociado a la fecha.
  • mysql_num_rows() => Cantidad de registros de una tabla.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s