Mostrando entradas con la etiqueta Base de datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Base de datos. Mostrar todas las entradas


No es más que un hasta luego

Hola todos y a todas, quiero informarles que hoy he decidido no seguir publicando en éste blog, debido a diversas ocupaciones que tienen mayor prioridad. En verdad se me complica mucho mantener éste blog.

Estoy pensando en publicar tutoriales en mi canal de Youtube, pero debo planificarme muy bien. Posiblemente todo aquello que pensaba publicar aquí sobre programacion y GNU/Linux, se colocará en dicho canal. 

Cabe destacar que dejaré http://gamgux.blogspot.com abierto para que otras personas puedan acceder a su contenido. Muchas gracias a todos los que de alguna u otra forma llegaron aquí y pudieron beneficiarse con las entradas publicadas

Si desean comunicarse conmigo pueden hacerlo a través de:
- Twitter: aquí (@gamg_ )
- Google+:  aquí

Cómo dice el título es un hasta luego, dudo que más adelante continue con éste blog pero como dice el dicho "Nunca digas nunca". Sin mas nada que decir me despido.

Gustavo A. Meza G.


Colección de comandos básicos mysql (Parte 3)

- Añadir un registro en la BD:
Sintaxis:
INSERT INTO tabla_nombre(campo1,campo2) VALUES('valor1','valor2');

Ejemplo:
INSERT INTO tabla1(nombre,cedula) VALUES ('Gustavo','18255639');

- Añadir varios registros en la BD:
Sintaxis:
INSERT INTO tbl_name(c1,c2) VALUES('v1','v2'),('v3','v4'),('v5','v6');

Ejemplo:
INSERT INTO tabla1(nombre,cedula) VALUES ('Gustavo','18255639'),('Pepito','17569321');


- Anadir un valor nulo a la base de datos:
INSERT INTO nombre_tabla(campo1,campo2) VALUES('jose',null);

- Otra forma de anadir un registro:
INSERT INTO nombre_tabla VALUES('valor1','valor2');

- Insertar un registro de una tabla a otra:
INSERT INTO nombre_tabla1 SELECT cedula,nombre,campo3 FROM nombre_tabla2 WHERE cedula=18103454;

- Consultar todos los registros de una tabla:
SELECT * FROM nombre_tabla;

- Consultar campos especificos de una tabla:
SELECT nombre,cedula,campo3 FROM nombre_tabla;

- Consultar un campo especifico seleccionando los registros distintos:
SELECT DISTINCT campo FROM nombre_tabla;

- Consultar toda la informacion de un registro utilizando condicion:
SELECT * FROM nombre_tabla WHERE nombre="fulano";
SELECT * FROM nombre_tabla WHERE edad>30;
SELECT nombre,cedula,campo3 FROM nombre_tabla WHERE nombre="juan" OR nombre="maria";
SELECT nombre,cedula,edad FROM nombre_tabla WHERE nombre="juan" AND edad=25;
SELECT * FROM nombre_tabla WHERE not(edad=20);
SELECT * FROM nombre_tabla WHERE campo1 IS NULL;
SELECT * FROM nombre_tabla WHERE edad BETWEEN 20 AND 40;
SELECT * FROM nombre_tabla WHERE nombre LIKE "M%";

Nota: en el ultimo ejemplo, mostrara todos los registros cuyo nombre comience con M o m.

- Ordenar la edad de forma descendente(que muestre los menores primeros):
SELECT nombre,edad FROM nombre_tabla ORDER BY edad DESC;

- Consultar registros con funciones de agregacion(COUNT devuelve en numero el total de registros otros son SUM MAX MIN AVG ):
SELECT COUNT(*) FROM nombre_tabla;

- Muestra el promedio de cada asignatura (as "promedio" es el alias a mostrar):
SELECT avg(nota) as promedio FROM nombre_tabla GROUP BY id_asignatura;

Nota: la clausula "GROUP BY" es utilizada para separar los registros seleccionados en grupos específicos. En el ejemplo anterior separa los registro por el id de la asignatura de alguna tabla y mostrando a traves del campo "nota" su promedio.

- Consultar varias tablas:
SELECT tabla1.cedula,tabla1.nombre,tabla2.nota FROM tabla1,tabla2 WHERE tabla1.cedula=tabla2.cedula_alumno;

- Cambiar el valor de un registro (si se coloca sin el where cambiara todo los registros):
Sintaxis:
UPDATE nombre_tabla SET campo2='nuevo_valor' WHERE campo1='valor';

Ejemplo:
UPDATE nombre_tabla SET apellido='nuevo_apellido' WHERE id_usuario='07';

- Borrar datos de una Tabla, todos los registros:
DELETE FROM nombre_tabla;

-Borrar un registro especifico:
Sintaxis:
DELETE FROM nombre_tabla WHERE campo1=valor;

Ejemplo:
DELETE FROM nombre_tabla WHERE cedula=20566321;

- Consultar y unir resultados(todas las columnas correspondientes necesitan ser del mismo tipo de datos):
Sintaxis:
SELECT campo FROM tabla1 UNION SELECT campo FROM tabla2;

Ejemplo:
SELECT nombre FROM tabla1 UNION SELECT direccion FROM tabla2;


Colección de comandos básicos mysql (Parte 2)

- Cargar datos en una tabla mediante un archivo (por defecto el tabulador es el separador de columnas):
LOAD DATA LOCAL INFILE "archivo.txt" INTO TABLE nombre_tabla;

Nota: Obviamente tenemos que crear previamente el .txt con los datos de la tabla.

- Cargar datos en una tabla mediante un archivo (si esta en otro directorio):
LOAD DATA LOCAL INFILE "/home/Desktop/archivo.txt" INTO TABLE nombre_tabla;

- Ejemplo colocando la "," como separador de columnas e indicando las lineas que comiencen con "xxx":
LOAD DATA LOCAL INFILE "/tmp/archivo.txt" INTO TABLE nombre_tabla FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';

- Muestra el conjunto de carateres:
SHOW CHARACTER SET;

- Crear base de datos:
CREATE DATABASE nombre_BD;

- Ejemplo con codificación utf8:
CREATE DATABASE nombre_BD CHARACTER SET utf8;

- Para ver el tipo de codificación y caracteristicas en la BD:
SHOW CREATE DATABASE nombre_BD;

- Eliminar Bases de Datos:
DROP DATABASE nombre_BD;

- Crear tabla:

Sintaxis:
CREATE TABLE nombre_tabla(campo CHAR(10));

Ejemplo:
CREATE TABLE tabla1(nombre CHAR(30), apellido varchar(20), nacimiento (date), edad int);

- Ejemplo dandole a los campos valores nulos:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL, poblacion INT NULL);

- Creando tabla con campo de auto incremento y llave primaria:
CREATE TABLE nombre_tabla(clave INT AUTO_INCREMENT PRIMARY KEY, nombre CHAR(20) NOT NULL, poblacion INT NULL);

- Creando tabla con un valor por defecto:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL, poblacion INT NULL DEFAULT 5000);

- Creando tabla con comentarios:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL COMMENT 'Aqui va el comentario', poblacion INT(3) NULL);

- Creando tabla con llave primaria:
CREATE TABLE alumnos(ClaveAlumno int(4), nombre varchar(20), PRIMARY KEY (ClaveAlumno));

- Creando llave foranea:

Sintaxis:
CREATE TABLE nombre_BD(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Campo) REFERENCES otra_BD(Campo_otra_tabla));

Ejemplo:
CREATE TABLE libros(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno));

- Creando tabla con un index (INDEX=KEY):
CREATE TABLE mi_tabla(id INT, nombre CHAR(19), INDEX (nombre));

- Este ejemplo usará sólo los cuatro primeros caracteres de la columna 'nombre' para crear el índice:
CREATE TABLE mitabla(id INT, nombre CHAR(19), INDEX (nombre(4)));

-Crear tabla con ON DELETE y ON UPDATE (CASCADE, SET NULL, NO ACTION, RESTRICT, SET DEFAULT(no es soportado por tablas InnoDB)):

CREATE TABLE alumnos(ClaveAlumno int(4), nombre varchar(20), PRIMARY KEY (ClaveAlumno));

CREATE TABLE libros(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno) ON DELETE CASCADE ON UPDATE CASCADE);

- Para borrar la clave foranea en la tabla:
ALTER TABLE nombre_tabla DROP FOREIGN KEY codigo_CONSTRAINT;

- Para verifcar las caracteristicas de la tabla creada:
SHOW CREATE TABLE nombre_tabla;

- Para ver indices de una tabla:
SHOW INDEX FROM nombre_tabla;

- Para añadir un indice en una tabla ya creada:
ALTER TABLE nombre_tabla ADD INDEX nombre_indice (columna_indexada);

- Para eliminar un indice:
ALTER TABLE tabla_nombre DROP INDEX nombre_indice;

- Añadir una llave foranea en una tabla ya creada:
ALTER TABLE nombre_tabla ADD FOREIGN KEY (campo) REFERENCES nombre_tabla2 (campo);

- Añadir clave foranea y restricciones de tabla (que actualice en cascada y que no pueda borrar):
ALTER TABLE libros ADD FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno) ON UPDATE CASCADE ON DELETE RESTRICT;

- Añadir un atributo a una tabla:
ALTER TABLE nombre_tabla ADD nuevo_campo varchar(12);

- Elimina el atributo de una tabla:
ALTER TABLE nombre_tabla DROP campo_a_borrar CASCADE;

- Renombrar una tabla:
ALTER TABLE viejo_nombre RENAME nuevo_nombre;

- Cambiar el tipo de campo (columna, atributo) por otro (de char a int not null):
ALTER TABLE nombre_tabla MODIFY nombre_campo INT NOT NULL;

- Cambiar el nombre de un campo:
ALTER TABLE nombre_tabla CHANGE viejo_nombre_campo nuevo_nombre_campo char(10);

- Eliminar la llave primaria:
ALTER TABLE nombre_tabla DROP PRIMARY KEY;

- Eliminar la llave unique:
ALTER TABLE nombre_tabla DROP UNIQUE nombre_constraint;

- Exportar una base de datos (en la consola):
myslqdump -u root -p nombre_BD > /home/usuario/Respaldo.sql

- Importar una base de datos:
myslq -u root -p nombre_BD < /home/usuario/Respaldo.sql


Nota: Antes de importar, cear la base de datos primero.


Colección de comandos básicos mysql (Parte 1)

A continuación se mostrará una colección de los comandos básicos para el manejador de base de datos MySQL. Lo único que necesitaremos para verificar dichos comandos es nuestra poderosa consola y tener instalado correctamente el paquete mysql-server-5.0

Comandos sin entrar a la consola de mysql utilizando Mysqladmin:

- Sintaxis de mysqladmin:
mysqladmin -u usuario -p comando -h maquina(ip)

Nota: Si el servidor mysql es remoto se tendrá que colocar "-h ip_servidor", pero si es local no es necesario colocarlo.

- Asignar Contraseña para el root de mysql:
mysqladmin -u root -h localhost password "123"

- Cambiar la clave de root:
mysqladmin -u root -p password "nuevo_password"

- Comprobar si el servidor MySQL está en funcionamiento:
mysqladmin ping -u root -p

- Ver el estado actual del servidor de MySQL:
mysqladmin -u root -p status

- Mostrar todos los procesos en marcha o consultas en la base de datos MySQL:
mysqladmin -u root -p processlist

- Igual que el anterior pero con intérvalo de tiempo ("-i 2" ---> 2 segundos):
mysqladmin -u root -p -i 2 processlist

- Detener un proceso cliente:
mysqladmin -u root -p kill id

- Crear una base de datos mysql:
mysqladmin -u root -p create nombre_base_datos

- Ver las bases de datos mysql:
mysqlshow -u root -p

- Eliminar una base de datos MySQL existentes:
mysqladmin -u root -p drop
nombre_base_datos

- El método seguro para apagar el servidor MySQL:
mysqladmin -u root -p shutdown

- Observar las variables del sistema:
mysqladmin -u root -p variables

Ahora dentro de la consola de mysql:

- Entrar a la consola de mysql:
mysql -u root -p -h maquina(ip)

Nota: -h especificar si es remoto

- Cambiar la clave de root:
UPDATE mysql.user SET Password=PASSWORD('Nueva_password') WHERE User='root';

y luego

flush privileges;

- Otra forma de cambiar la pass del root:
set password for root@localhost=password('Nueva_password');

- Observar las variables del sistema:
show variables;

- Seleccionar el motor de almacenamiento al crear una tabla:
Sintaxis:
CREATE TABLE nombre_tabla(definición) ENGINE=nombre_motor;

Ejemplo:
CREATE TABLE Alumnos(nombre char) ENGINE=InnoDB;

- Cambiar motor de almacenamiento:
ALTER TABLE City ENGINE=MyISAM;

- Para ver la version de mysql:
SELECT version();

- Para ver la fecha:
SELECT CURRENT_DATE;

- Para sumar valores:
select 2+2;

- El estado actual del servidor de MySQL:
status

- Ejecuta comando de linux:
\! ls
\! pwd

- Para escribir en un fichero y que los resultados de los comandos vayan a él:
pager cat > /tmp/log.txt
show databases;
nopager

Verificar con: cat /tmp/log.txt

- Ejecutar sentencias SQL desde un fichero de texto:
\. nombre_de_fichero

- Para ver la lista de bases de datos disponibles:
show databases;

- Para seleccionar una base de datos:
USE nombre_de_la_base_de_datos;

- Para ver tablas de la
base de datos seleccionada:
SHOW TABLES;

- Para ver las columnas de la tabla:
SHOW COLUMNS FROM nombre_tabla;

o también

DESCRIBE nombre_tabla;

- Crear una nueva base de datos:
CREATE DATABASE nueva_base_datos;

- Crear una tabla:
Sintaxis:
CREATE TABLE nombre_tabla(definición);

Ejemplo:
create table tabla1(edad int);

- Alterar una tabla:
ALTER TABLE tabla modificación;

- Para ver caracteristicas de la tabla:
show create table nombre_tabla;

- Para ver las vistas:
show create view nombre_de_la_vista;

- Listar la sentencia grant para observar sus privilegios:
show grants;

- Listar la sentencia grant para observar sus privilegios de un usuario especifico:
Sintaxis:
show grants for usuario@maquina;

Ejemplo:
SHOW GRANTS FOR pepe@192.168.1.200;

- Ver la lista de usuarios conectados:
show processlist;

- Detener un proceso cliente:
kill id

- Crear un usuario con privilegios:
Sintaxis:
GRANT privilegios(columnas) ON elemento TO nombre_usuario@maquina IDENTIFIED BY 'contraseña' with grant option;

Ejemplos:

- Crea usuario para una BD y tabla especifica con privilegios (Consulta y actualización):
GRANT select, update ON nombre_BD.nombre_tabla TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para una BD especificas y Todas sus tablas con todos los privilegios:
GRANT all ON nombre_DB.* TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para todas las BD y Todas sus tablas con todos los privilegios:
GRANT all ON *.* TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para la base de datos actual de la tabla test con privilegios de actualizar en el campo id y consultar en el campo nombre:
GRANT UPDATE(id), SELECT(nombre) ON test TO javier@localhost IDENTIFIED BY '123';

- Usuario con privilegios de consultar e insertar en todas las BD y tablas.(el % significa que maria se puede conectar desde cualquier maquina):
grant select, insert on *.* to maria@'%' identified by '123';

With grant option: Es opcional y permite dar privilegios a otros usuarios.

-Creando usuario en la tabla user de mysql:
mysql -u root -p mysql

insert into user values('localhost','admin',PASSWORD('clave'), Reload_priv='Y', Process_priv='Y');

FLUSH PRIVILEGES;

- Otra manera de Crear Usuarios:
CREATE USER fulano2 IDENTIFIED BY '123';

CREATE USER Alumno@Salon1 IDENTIFIED BY PASSWORD(Alumno);

- Cambiar el nombre de un usuario:
RENAME USER viejo_nombre TO nuevo_nombre@192.168.40.21;

- Cambiar clave de un usuario:
SET PASSWORD FOR Pepe@'%'=PASSWORD('123');

- Cambiar clave del ususario logueado:
SET PASSWORD=PASSWORD('minuevaclave');

- Ver los Usuarios de MySQL y sus parametros:
SELECT User,Host,Password FROM mysql.user;

- Eliminar privilegios de un ususario:
Sintaxis:
REVOKE privilegios ON base_datos.tabla(columnas) FROM usuario;

Ejemplo:
REVOKE select ON PDVSA.* FROM manuel;

- Borrar usuario:
Sintaxis:
DROP USER nombre_usuario;

Ejemplo:
DROP USER manuel;

- Borrar usuario con condición "where":
DELETE FROM user WHERE user.User='manuel';

Nota: En el comando anterior la palabra where significa "donde", es decir, se borrará el registro "donde" el nombre de usuario sea igual a "manuel". Se usa como una especie de condición.