Crear tabla
CREATE TABLE `table_name`(
ID INT(6) NOT NULL,
names VARCHAR(20) NOT NULL,
PRIMARY KEY (ID)
);
Borrar tabla si existe
DROP TABLE IF EXISTS `table_name`;
Alter table para dejar campos fechas con valor por defecto o cambiar valor cada vez que se actualiza
ALTER TABLE `users`
CHANGE COLUMN `createdAt` `createdAt` TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `users`
CHANGE COLUMN `updatedAt` `updatedAt` TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Crear usuario
grant all on table_name. * to 'username'@'localhost';
Crear usuario con acceso externo
grant select on table_name. * to 'username'@'localhost';
Mostrar usuarios
SELECT user FROM mysql.user;
Borrar registro
delete from laTabla where laColumna='unValor'
Actualizar registros que cumplan las condiciones
update af set columna='valor_ nuevo' where columna='valor_registro'
Mostrar un intervalo de fechas
select * from miTable fecha > now() - interval 4 hour and fecha < now() + interval 4 hour
Levantar como usuario
sudo chown -R user_name /var/lib/mysql
/usr/sbin/mysqld --user=user_name
Restar 10 segundos a una fecha
select now(), TIMESTAMPADD(SECOND, -10, now());
+---------------------+----------------------------------+
| now() | TIMESTAMPADD(SECOND, -10, now()) |
+---------------------+----------------------------------+
| 2017-07-05 22:16:21 | 2017-07-05 22:16:11 |
+---------------------+----------------------------------+
El /etc/mysql/my.conf/
se definen las configuraciones.
Para que se pueda realizar una consulta remota es necesario cambiar la linea que contiene bind-address
[mysqld]
bind-address = ip_real
Revisar configuración de los character set
show variables like 'char%'; show variables like 'collation%';
Y reiniciar el el servicio MySQL
.
mysqldump
con where
mysqldump -u user dababase_name table_name --where="id=10"
Solo datos, sin creación de tablas y con multiples insert por registro
mysqldump --no-create-info --extended-insert=FALSE -u user_name db_name