Comandos MySQL
1-inicializar xampp
2-subir los servicios de apache y MySql
3-cmd
4-cd/xampp/mysql/bin
5-c:\xampp\mysql\bin>mysql -uroot -p
6-MariaDB [(none)]>
como crear una base de datos
-comando create
-sintaxis create database nombre BD;
-ejemplo create database biblioteca;
nota todo comando en mysql termina en punto y coma
mostrar bases de datos que estan creadas
-comando show
-sintaxis:show databases;
-ejemplo:show databases;
Para utilizar una base de datos
Comando use
Sintaxis: use (nombre bd);
comando para crear uan tabla
-comando create
sintaxis
mysql> create table nombre de la tabla (
escribir el nombre del campo, el tipo, el tamaño, si es requerido o no y si es clave primaria
Ejemplo: create table libro(
idlibro char(3) not null primary key,
titulo char(50) not null,
nropagina int not null,
precio int not null);
Crear tabla con clave foranea
create table liautedi(
idlibro char(3) not null,
codautor char(3) not null,
codedit char(3) not null,
foreign key(idlibro) references libro(idlibro) on delete cascade on update cascade,
foreign key(codautor) references autor(codautor) on delete cascade on update cascade,
foreign key(codedit) references editorial(codedit) on delete cascade on update cascade);
Como mirar o mostrar la estructura de una tabla
nota: cuando se va crear una tabla relacional hay que tener en cuenta las sig carateristicas:
1-el campo o clave foranea debe llevar el mismo nombre de la tabla principal, si desea puede cambiar el nombre.
2-tiene que ser del mismo tipo que la clave principal.
3-tienen que ser del mismo tamaño que la clave principal.
Como agregar un campo en mysql
comando: add
sintaxis: Alter table [nombre tabla (cierra corchete) add [campo a insertar (no es obligatorio poner corchetes) tipo (tamaño) requerido o no; (los parentesis de tamaño si son necesarios
Insertar despues del campo deseado
comando add
Sintaxis Alter table *nombre tabla* add *campo a insertar* tipo (tamaño) requerido o no
Cambiar nombre del campo:
Comando: change
Sintaxis: Alter table (corchetes* nombre de tabla) change (nombre del campo a cambiar) nuevo nombre campo tipo (tamaño) requerido o no; Ejemplo: fvista
Como modificar el tamaño de un campo:
Comando: modify
Sintaxis: Alter table (nombre tabla) modify nombre del campo tipo (nuevo tamaño) requerido o no;
Ejemplo:
Alter table autor modify nacionalidad varchar(30) not null;
Eliminar la clave primaria de una tabla:
Comando: drop
Sintaxis: Alter table (nombre tabla) drop primary key;
Ejemplo: Alter table libro drop primary key;
Como definir una nueva clave primaria en una tabla
Comando: modify
Sintaxis: alter table nombre tabla modify nombre del campo tipo (tamaño) not null primary key;
Ejemplo: alter table prueba modify Nombre varchar(40) not null primary key;
Como cambiar el nombre de una tabla
Como eliminar una tabla
Comando: drop
Sintaxis: drop table nombretabla;
Ejemplo: drop table examen;
Como insertar registros o informacion a una tabla
Comando: insert
Sintaxis: Insert into (nombre de ta tabla) (campo1, campo2, campo3, campon...)values(valorcampo1, valorcampo2, valorcampo3...campoN);
Nota: si el tipo de campo es char o varchar debe inr 'encerrado' en comillas sencillas
Ejemplo: insert into autor(Id_autor,Nombre,Nacionalidad,correo) values ('001','Gabriel Garcia Marquez','Colombiano'.'gabo_marquez@gmail.com');
Como visualizar o consultar la informacion de una tabla
Comando select
Sintaxis select * from nombretabla;
Ejemplo select *from libro;
Guardar copia de seguridad
Primero Comando exit
para guardar se copia lo SIGUIENTE! como esta: mysqldump -B -uroot -p biblioteca (nombre de la BD)>c:/xampp/biblioteca(nombre que le quiere dar BD).sql
Para abrir una base de datos ya creada
(direccion que le sale al principio) mysql -uroot -p
source y arrastra el archivo
Comando para consultar con condicional
Comando: where
Sintaxis: select todos o campos especificios from nombretabla where campo con condicion;
Ejemplo: visualizar los libros cuyo valor sea mayor a 30000. select descripcion from libro where Precio>30000;
Analisis.
1) Primero que tablas estan involucradas: libro
2) que informacion se desea visualizar: descripcion, precio
3) Hay condiciones? Si- Cual? Precio del libro>30000
4) Cual es el comando que nos da la soluciones (sintaxis) Where (select)
Sintaxis: select descripcion, precio from libro where Precio>30000;
Visualizar la informacion de los autores colombianos
1) tablas que se involucran: autor
2) se desea visualizar: Nombre, nacionalidad
3) nacionalidad='colombiano'
4) Where (select)
Sintaxis: select Nombre,nacionalidad from autor where nacionalidad='colombiano';
Visualizar el autor con el Id_autor=008
1) tabla que se involucran autor
2 se desea visualizar Id_autor, Nombre, correo
3) Id_autor='008'
4) Where (select)
Sintaxis: select Id_autor,Nombre,correo from autor where Id_autor='008';
Visualizar la informacion de los libros 00001,0000,00003
1) tabla que se incolucran: libro
2) toda la informacion (Id_libro, Descripcion, Nro_paginas, Precio, Cantidad)
3 Id_libro>='00003';
4) Where (select)
Sintaxis: select *from libro where Id_libro<='00003';
Sintaxis con or:
select *form autor where Id_Autor ='01' or Id_Autor='03';
Reemplazar el comando or por el comando in:
Sintaxis select *from libro where Id_libro in('00001','00002','00003');
Visualizar la informacion de los autores 005 hasta el 008
select *from autor where Id_autor in('001','000
Visualizar la informacion de los libros 1 hasta el 5 con el comando and
select *from libro where Id_libro>='00001' and Id_libro<='00005';
Reemplazar el comando and por el comando between cuando se manejan intervalos
-select *from libro where Id_libro>='00001' and Id_libro<'00005';
-select *from libro where Id_libro between'00001' and '00005';
Comando like sirve para buscar coincidencias o busquedas no precisas
Este comando tiene tres variables
-Like '% a': Que termina en la letra a
-Like 'a%': Que inicia en la letra a
-Like '%a%': Que en alguna parte contenga la a
Ejemplo: Visualizar la informacion de los libros que comiencen con la letra e
-En la tabla libro buscar todo
-Condicion comenzar con la letra E
-Sintaxis select *from libro where descripcion like 'e%';
Para visualizas los que terminan con E
-Tabla libro buscar todo
-Condicion terminar con E
- Sintaxis select *from libro where descripcion like '%e';
Modificar o actualizar informacion
Comando update
Sintaxis: update nombretalbla set nombre del campo a actualizar='valor' condicion;
Ejemplo: cambiar el codigo 00001 por lo que el viento se llevo
update libro set descripcion='Lo que el viento se llevo' where id_libro='00001';
Elimiinar un registro
Comando: delete
Sintaxis
Delete from nombre tabla where condicion;
Eliminar el autor cuyo codigo es el 006
Ejemplo delete from autor where Id_autor='006';
Funciones para calculos
Como consultar varias tablas o una tabla relacional
libros cuyo autor sea de riaz khadem
1) Que voy a mostrar: autor.codautor,autor.nombre,libro.descripcion
2) tablas: autor, libro, liautedi
3) Condicion: autor.nombre='riaz khadem'
4) como se relacional: autor.codautor=liautedi.codautor
libro.idlibro=liautedi.idlibro
sintaxis: select autor.codautor,autor.nombre,libro.descripcion from autor,libro,liautedi where autor.nombre='raiz khadem' and autor.codautor=liautedi.codautor and libro.idlibro=liautedi.idlibro;
Consultar las editoriales que tienene libros del autor Robert Lorber
1) Que voy a mostar: autor.nombre,editorial.nombre,libro.descripcion
2) tablas: autor, editorial, libro, liautedi
3) condicion: autor.nombre='Robert Lorber'
4) se relaciona: autor.codautor=liautedi.codautor
libro.idlibro=liautedi.idlibro
editorial.codedit=liautedi.codedit
Sintaxis: select editorial.nombre,autor.nombre,libro.descripcion from editorial,autor,libro,liautedi where autor.nombre='Robert Lorber' and editorial.codedit=liautedi.codedit and autor.codautor=liautedi.codautor and libro.idlibro=liautedi.idlibro;
Comando para no repetir informacion
Comando distinct
Sintaxis: select distinc libro.idlibro from libro where descripcion='Robert Lorber';
comando join
join: union entre varias tablas, devuelve la informacion que encuentra esa union (relacion)
select * from tabla1 innner join tabla 2 on tabla 1.id=tabla 2.id inner join tabla 3 on tabla 2.id=tabla 3.id2;
visualizar el codigo del libro, nombre del libro, el codigo de la editorial y el nombre de la editorial con sus respectivos libros publicados
analisis
1º ¿que se desea consultar y de que tablas?
2º ¿que tablas se ven afectadas o involucradas?
3º condicion
4º¿como se relacionan las tablas?
right join
el right join opera del mismo modo que el left join, solo que la busqueda de coincidencias las realizan de modo contrario, es decir busca valores de coincidencias desde la tabla de la derecha hacia la tabla que esta a la izquierda y sucede lo mismo en el left, sino que encuentra coincidencias se genera una fila extra con todos los campos ceteados en null.
-Visualizar el codigo del libro, el nombre del libro, el codigo de la editorial y el nombre de la editorial con sus respectivos libros publicados
1) Mostrar: idlibro, descripcion libro, codigo editorial, nombre editorial
2) libro, editorial, liautedi
3) Condicion: no
4) se relaciona: libro.idlibro=liautedi.idlibro, editorial.codedit=liautedi.codedit
select distinct libro.idlibro,libro.descripcion,editorial.codedit,editorial.descripcion from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join editorial on liautedi.codedit=editorial.codedit;
-Visualizar el listado de los libros que tienen al menos un autor asignado
1) Mostrar: id libro. descripcion libro, liautedi.idlibro
2) Tblas: libro liautedi
3) condicion: no
4) relacion: libro.idlibro=liautedi.idlibro
select libro.idlibro,libro.descripcion,liautedi.idlibro from libro right join liautedi on libro.idlibro=liautedi.idlibro;
el left join se utiliza para saber que registros no tienen correspondecia en otra tabla. Verifica una tabla izquierda a una tabla derecha, sino encuentra coincidencias se genera una fila extra con todos los camos cateados a uno
Ejemplo: Visualizar que libros no se les ha asignado un autor utilizando el left join
1) Mostrar: id libro, descripcion libro, liautedi idlibro
2) tablas: id libro
3) condiciones: liautedi.idlibro=null
4) relacion: libro.idlibro=liautedi,idlibro
Sintaxis: select libro.idlibro,libro.descripcion,liautedi.idlibro from libro left join liautedi on libro.idlibro=liautedi.idlibro where liautedi.idlibro is null;
ORDENAR INFORMACION
ASCENDENTE
Comando: order by
Sintaxis: select *from nombretabla order by nombrecampo tipodeordenado;
Ejemplo: select *from libro order by descripcion;
Ordenar por dos campos
Comando: order by
Sintaxis: select *from nombretabla order by nombrecampo1,nombrecampo2,nombrecampon tipodeordenado;
Ejemplo: select *from libro order by id_libro,descripcion;
DESCENDENTE
Comando order by
Sintaxis select *from nombretabla order by nombrecampo tipodeordenado;
Ejemplo: select *from libro order by id_libro,descripcion desc;
Ordenar por dos campos
Comando: order by
Sintaxis: select *from nombretabla order by nombrecampo1,nombrecampo2,nombrecampon tipodeordenado;
Ejemplo: select *from estudiante order by nom_E,dir desc;
AGRUPAR INFORMACION
Comando: group by
Sintaxis: select *from nombretabla group by nombrecampo;
Ejemplo: select *from estudiante group by nom_E;
Usando las funciones (max,min,sum,avg,count)
Visualizar las cantidades de visitantes por ciudad
Analisis:
1) Que se desea consultar
Ciudad
2) Campo en el que se aplica la funcion
ciudad
3)Campo por el caul va a agrupar
Ciudad
Sintaxis: select ciudad,count(ciudad)as'camtodad de vosotamtes' from visitantes group by ciudad;
Visualizar el total comprado por ciudad
1) Que se desea consultar
ciudad
2) Campo en el que se aplica la funcion
montocompra
3) campo por el cual va a agrupar
Ciudad
Sintaxis: select ciudad,sum(montocompra) as'total compra' from visitantes group by ciudad;
Visualizar el monto de compra por sexo
1) Que se desea consultar
sexo
2) campo en el que se aplica
montocompra
3) campo por el cual va agrupar
sexo
sintaxis: select sexo,sum(montocompra) as' total de compra por sexo' from visitantes group by sexo;
Visualizar las ciudades a las que van mas de dos visitantes
Nota: cuando utlizamos group by y se manejan condiciones estas funcionan con where sino con la opcion having
1)Que se desea consultar
ciudad
2) campo en el que se aplica la funcion
ciudad
3) campo por el cual va agrupar
ciudad
4) condicion:
mas de dos visitantes
Sintaxis: select ciudad,count(ciudad) as 'cantidad de visitantes' from visitantes group by ciudad having count(ciudad)>2;
Calcular el valor promedio de montocompra agrupados por ciudad y sexo
1) que desea consultar
ciudad y sexo
2) campo en el que se aplica
montocompra
3) campo por el cual va agrupar
ciudad y sexo
Sintaxis: select ciudad,sexo,avg(montocompra) as'promedio compra' from visitantes group by ciudad,sexo;
Visualizar el monto compra por ciudad mayores a 5millones
1) Que se desea consultar
ciudad
2) campo en el que se aplica
montocompra
3)campo por el cual va agrupar
ciudad
4) condicion
sum(montocompra)>5millones
sintaxis select ciudad,sum(montocompra) as 'El total de monto de compra mayores a 5millones por ciudad es:' from visitantes group by ciudad having sum(montocompra)>5000000;
VISTAS
se utiliza para crear tablas temporales
Crear una vista que guarde toda la informacion de los nombres que finalicen en a
Comando view
Sintaxis: create view nombredelavista as consulta;
Ejemplo: create view visitatensa as select *from visitantes where nombre like '%a';
Comando para auto incrementar automaticamente: auto_increment
create table edicion(
-> codigo int auto_increment,
-> descripcion varchar(30) not null,
-> Primary key(codigo));
COMANDO TRUNCATE
Sirve para eliminar los registros de una tabla y reinicia el auto incremento
Sintaxis: truncate table (nombre tabla);
Ejemplo:Ttruncate tabla edicion;
Comando float o float usigned
tipo de dato para los valores float (permite los negativos) float usigned (solo positivos)
precio float not null,
precio float unsigned not null,
Comando CALL: sirve para insertar datos en un procedimiento almacenado
Sintaxis: call insertar(nombre del procedimiento) (envia campos);
Ejemplo: call insertaalumno ('431413','Sofia perez','Activo');
Para borrar un procedimiento:
Drop procedure y el nombre del procedimiento;
Procedimiento para listar
Ejemplo: van en diferente linea
delimiter //
create procedure listaralumno ()
begin
select *from alumno;
end
//
Query OK, 0 rows affected (0.00 sec)
delimiter ; (siempre lleva espacio antes del punto y coma)
Sintaxis para visualizar procedimientos: show procedure status;
Procedimiento para consultar un alumno con condicion
Delimiter //
create procedure consultarlumno(in_codesu char(3))
begin
select *from alumno where carnet=_codestu;
end
//
delimiter ;
procedimiento para eliminar un alumno
Delimiter //
create procedure eliminaralumno(in_codestu char(3))
begin
delete from alumno where codestu=_codestu;
end
//
delimiter ;
Procedimiento para modficar
Delimiter //
Create procedure modificaralumno(in_codestu char(3),in_nombre char(60),in_direccion char(50),in_telefono char(10))
begin
update alumno set nombre=_nombre,direccion=_direccion,telefono=_telefono where codestu=_codestu;
end
//
delimiter ;
Comando para visualizar los procedimientos de almacenados de la base de datos:
SHOW PROCEDURE STATUS;
Copia de seguridad con procedimientos almacenados:
Sintaxis: mysqldump -B -uroot -p --routines (bd)>c>/xampp/nombrebd.sql
TRIGGER
delimiter //
create trigger (nombredeltrigger) after insert on (tabla) (create trigger actualizar_existenciap after insert on detalle)
for each row
begin
update articulo set existencia =cantidad -(select sum(cantidad) from detalle where detalle.codigo = articulo.codigo);
end
//
demiliter ;