Comandos MySQL
Pasos para Iniciar a Xampp
1. Botón inicio
2. Digitar Xampp
3. Ingresar a Xampp e inciar MySQL y Apache
4. Botón inicio y digitar cmd
5. En cmd en la linea de comandos ingregar los siguientes comandos en orden:
Ingresar al disco duro donde esté instalado el Xampp con el comando "(disco):"
cd/xampp/mysql/bin
mysql -uroot -p
password: ???
show databases; (Comando para visualizar las bases de datos creadas)
tee c:/xamppClase1Mysql.txt (Comando para guardar las sintaxis utilizadas en el diseño e implementación de la BD)
Nota: Todo comando en MySQL terminbd2a con " ; "
Comando para crear una Base de Datos:
Comando
Create
SINTAXIS
create database "nombre la BD"
Comando para abrir la BD
use "nombre de la BD";
Comando para visualizar tablas:
show tables;
¿Cómo crear tablas?:
Create
create table "nombre de la tabla"
(campo 1 = tipo(tamaño) nulo o no primare key,
campo 2 = tipo(tamaño) nulo o no,
campo n = tipo(tamaño) nulo o no);
Para ver el detalle de cualquier tabla:
describe "Nombre de la tabla";
Nota: Siempre se deben crear las tablas primarias para poder crear las tablas relacionales.
¿Cómo eliminar la clave primaria de una tabla?:
Comando Drop
sintaxis
alter table "nombre de la tabla" drop primary key;
¿Cómo definir la primary key de una tabla?:
Comando Modify
sintaxis
alter table "nombre de la tabla" modify "Nombre del campo" tipo(tamaño) not null primary key;
¿Cómo crear tablas relacionales?:
Muy simular a las tablas normales pero al final se agregan las claves foráneas
foreign key("nombre del campo") references "Nombre de la tabla" ("Nombre del campó") on delete cascade on update cascade,
Ejemplo:
create table libro_autor
(id_libro2 varchar(20) not null,
Id_autor1 varchar(10) not null,
foreign key(id_libro2) references libro(id_libro) on delete cascade on update cascade,
foreign key(Id_autor1) references autor(id_autor) on delete cascade on update cascade);
Comando para mostrar como fue creada una tabla:
show create table "nombre de la tabla";
¿Cómo agregar campos a una tabla?(al final):
Comando Add
Sintaxis
alter table "nombre de la tabla" add "nombre del campo" tipo(tamaño) not null;
Si se necesita en otro sitio:
Comando After
Sintaxis
alter table "nombre de la tabla" add "nombre del campo" tipo(tamaño) not null after "nombre del campo";
Al principio:
Comando First
alter table "nombre de la tabla" add "nombre del campo" tipo(tamaño) not null after first;
El comando drop funciona para borrar cualquier cosa, sean campos, tablas y hasta la propia base de datos.
¿Cómo es hacer una copia de seguridad?:
Primero hay que salir de cmd con el comando "exit"
y luego se pone el comando:
\xampp\mysql\bin>
mysqldump -B -uroot -p biblioteca>c:/xampp/biblioteca.sql
Comando para restaurar una libreria
Comando source
Sintaxis
source "disco donde esta el xampp":/xampp/"nombre de la libreria a restaurar"
ejemplo
source c:/xampp/libreria2.sql
Comando para consultar 1 o mas campos
Comando select
Sintaxis
select campo1,campo2,campo3...campon from nombre de la tabla;
Ejemplo
select id_libro,titulo,precio from libro;
Para consultar toda la información se usa *
Ejemplo
select * from libro;
Para campos muy específicos:
Ejemplo
select id_libro,titulo,numpg from libro where id_libro='L01';
Crear consultas
ejemplo libros con páginas menores a 160
select * from "nombre de la tabla" where "condicional";
select * from libro where numpg<160;
Otro ejemplo
visualizar descripción(titulo), numero de paginas y precio de los libros cuyo precio sea mayor a 5000.
select titulo,numpg,precio from libro where precio>5000;
Ejemplo de 2 condicionales
select * from libro where numpg>=100 and precio>=10000;
Visualizar los libros con codifo L01, L02 y L03
select * from libro where id_libro='L01' or id_libro='L02' or id_libro='L03';
Visualizar la información de los libros del L01 al L05
select * from libro where id_libro>='L01' and id_libro<='L05';
Podemos reemplazar el condicional "or" por "in" de la siguiente manera:
select * from libro where id_libro in ('L01','L02','L03');
Tambien podemos reemplazar el comando "and" con "between"
Comando para buscar información con coincidencias
Comando like
Sintaxis
like '%a' (Termina en la letra a)
like 'a%' (Inicia con la letra a)
like '%a%' (Que en alguna parte contenga a)
Visualizar la información de los libros que el titulo empiece en la letra C
select * from libro where titulo like 'C%';
Consultas en tablas relacionales
select libro.id_libro,libro.titulo,autor.codaut,autor.nombre from libro,autor,liautedi where libro.id_libro=liautedi.id_libro1 and liautedi.codaut1=autor.codaut;
Si agregamos distinct para no repetir datos
select distinct libro.id_libro,libro.titulo,autor.codaut,autor.nombre from libro,autor,liautedi where libro.id_libro=liautedi.id_libro1 and liautedi.codaut1=autor.codaut;
Funciones Básicas para Realizar Cálculos
Función Descripción
SUM Suma o Total
MAX Valor Máximo
MIN Valor Mínimo
COUNT Contar o Cantidad
AVG Promedio
Sintaxis
select "función"(valor o campo) from "nombre de la tabla"
Ejemplo cuántos libros hay en la librería
select count(*) from libro;
Para mejorar las consultas se le puede agregar el titulo de la consulta:
select count(*) 'Cantidad de Libros' from libro;
El asterisco es para todos, pero se puede buscar por campo en específico:
select count(Titulo) 'Cantidad de Libros' from libro;
select count(Precio) 'Cantidad de Libros' from libro;
Cuál es el valor total de los libros que posee la librería?
select sum(Precio) 'Valor Total de Todos los Libros' from libro;
Cuál es el libro más costoso que vende la librería?
select max(Precio) 'El Libro más Costoso vale:' from libro;
Cuál es el libro con el número más pequeño que vende la librería?
Hallar el valor promedio de los libros
select avg(precio) 'El Promedio del Valor de los Libros es' from libro;
Actualizar datos o registros de una tabla
Comando
Update
Sintaxis
update "nombre de tabla" set "nombre del campo a actualizar = 'valor' condición;
Actualizar el nombre de Redes a Redes y Comunicaciones:
update libro set titulo = 'Redes y Comunicaciones' where id_libro = 'L07';
update libro set cantidad = 5 where id_libro = 'L01';
update libro set cantidad = 10 where id_libro = 'L02';
.
.
.
update libro set cantidad = 35 where id_libro = 'L07';
Valor total de los libros de la librería(Cantidad * Precio)
update libro set vtotal = cantidad * precio;
Para eliminar información o registros(tuplas)
Comando
Delete
Sintaxis
Delete from "tabla" where "condición"
Eliminar de la tabla libro el libro "Redes y Comunicaciones
delete from libro where id_libro = 'L07';
Para eliminar toda la información:
delete from libro;
Como Ordenar información
Comando
Order by
Sintaxis
select * from "Nombre de tabla" order by "campo a ordenar" tipo de ordenado;
Ordenar la tabla libro por el Titulo (asc(ascendente)-desc(descendentemente))
select * from libro order by titulo; (ascendentemente)
select * from libro order by titulo desc; (descendentemente)
Si no se pone ninguno de los dos, se ordenará ascendentemente automáticamente.
Comando
Join
Une 2 o más tablas, devolviedo la información que encuentra de esa unión(relación)
Sintaxis
select * from "tabla 1" inner join "tabla 2" on tabla1.id = tabla2.id inner join "tabla 3" on tabla2.id = tabla3.id2;
ejemplo
select libro.id_libro,libro.titulo,autor.codaut,autor.nombre from libro inner join liautedi on libro.id_libro = liautedi.id_libro1 inner join autor on liautedi.codaut1 = autor.codaut;
Usamos "distinct" para que no se repitan campos
select distinct libro.id_libro,libro.titulo,autor.codaut,autor.nombre from libro inner join liautedi on libro.id_libro = liautedi.id_libro1 inner join autor on liautedi.codaut1 = autor.codaut;
Colocandole alias a las columnas
select distinct libro.id_libro 'CODIGO' ,libro.titulo 'TITULO' ,autor.codaut 'CODIGO DEL AUTOR' ,autor.nombre 'NOMBRE' from libro inner join liautedi on libro.id_libro = liautedi.id_libro1 inner join autor on liautedi.codaut1 = autor.codaut;
Exportar consultas a excel
Comando
se le agrega a la instrucción
into outfile 'c:/xampp/libroautorjoin.xls'
Visualizar los autores con las editoriales que les publican los libros.
Análisis
Tabla 1 autor, tabla 2 liautedi, tabla 3 editorial
sintaxis
select * from autor inner join liautedi on autor.codaut = liautedi.codaut1 inner join editorial on liautedi.codedit1 = editorial.codedit;
Comando
left join
Se usa para saber que registros no tienen correspondencia en otra tabla. verifica de una tabla izquierda a una tabla derecha, si no encuentra coincidencias se genera una fila extra con todos los campos citados a Null;
Visualizar que libros no se les ha asignado un autor utilizando left join
tabla 1 libro, tabla 2 liautedi
Sintaxis
select libro.id_libro,liautedi.id_libro1 from libro libro left join liautedi on libro.id_libro = liautedi.id_libro1 where liautedi.id_libro1 is null;
* Visualizar que autores no tienen una editorial asignada
tabla1 autor, tabla 2 liautedi
Comando
right join
Opera del mismo modo que el left join pero ahora busca de la derecha a la izquierda, buscando las coincidencias, si no encuentra coincidencias se genera una fila extra con todos los campos citados en null
* Visualizar el listado de los libros que tienen al menso 1 autor asignado
tabla 1 libro, tabla 2 liautedi
sintaxis
select libro.id_libro, libro.titulo, liautedi.id_libro1 from libro right join liautedi on libro.id_libro = liautedi.id_libro1;
Base de datos Turismo
Group by
Sintaxis
select * from "nombre tabla" group by "nombre campo";
Se usa con las funciones matemáticas mayormente
* Visualizar las cantidades de visitantes por ciudad
Sintaxis
select nombredecampo, función(campoFunción) as nombredeseado from nombretabla group by nombredecampo
select ciudad, count(ciudad) as 'Cantidad de Visitantes' from visitantes group by ciudad;
* Monto total de lo gastado por ciudad de los visitantes
Análisis:
Que desea consultar
Campo en que se va a aplicar la función
Campo por el cual va a agrupar
Comando y función a utilizar
Sintaxis
select ciudad, sum(montocompra) as 'Cantidad de Compras por ciudad' from visitantes group by ciudad;
* Visualizar el monto de compra por sexo
Que desea consultar
suma por sexo
Campo en que se va a aplicar la función
monto compra
Campo por el cual va a agrupar
sexo
Comando y función a utilizar
select- group by funcion sum
Sintaxis
select sexo, sum(montocompra) as 'Total de Compra por Sexo' from visitantes group by sexo;
* Visualizar las ciudades a las que van más de 2 visitantes
Sintaxis
Para condicionales en group by cambiamos el where por having
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
select ciudad, sexo, avg(montocompra) as 'Promedio de Compra por Ciudad y Sexo' from visitantes group by ciudad, sexo;
* Visualizar el monto compra por ciudad mayores a 5 millones.
select ciudad, sum(montocompra) as 'Montos Mayores a 5 Millones' from visitantes group by ciudad having sum(montocompra)>5000000;
*VISTAS*
Se Utiliza para crear tablas temporales
Comando
View
Sintaxis
create view "nombre de la vista";
* Crear una vista con los nombres que terminan en A
Sintaxis
Consulta: select * from visitantes where nombre like'%a';
create view VisitantesA as select * from visitantes where nombre like'%a';
Comando para eliminar vistas
Drop view nombredelatabla;
Eliminar la tabla VisitantesA
PROCEDIMIENTOS ALMACENADOS
Subprogramas
Son importantes para no repetir instrucciones o por cuestión de seguridad
Trabajan con:
Select
Update
Insert
Delete
Trabajo simple (automático), dinámico (parámetros)
Procedimiento para insertar
Delimiter //
Create procedure insertar_alumno(in carnet_ char(10), in nombre_ char(40), in estado_ char(10))
Begin
Insert into alumno values(carnet_,nombre_,estado_);
End
//
Delimiter ;
show procedure status; (visualiza los procedimientos creados)
show create procedure insertar_alumno; (Ver el contenido del procedimiento)
Cargar o ejecutar un procedimiento
Call insertar('1140422165','Freddy Palacio','Activo'); e inserta el registro a la tabla
Para borrar un procedimiento
Drop procedure y el nombre del procedimiento.
Procedimiento para listar
Delimiter //
Create procedure listar_alumno()
Begin
Select * from alumno;
End
//
Delimiter ;
Procedimiento para consultar alumnoDelimiter //
Create procedure consultar_alumno(in carnet_ char(10))
Begin
Select * from alumno where carnet=carnet_;
End//
Delimiter ;
call consultar_alumno('1140422165');
Procedimiento para modificar alumno
Delimiter //
Create procedure actualizar_alumno(in carnet_ char(10), in nombre_ char(40), in estado_ char(10))
Begin
Update alumno set nombre=nombre_,estado=estado_ where carnet=carnet_;
End
//
Delimiter ;
LLAMADO AL PROCEDIMIENTO MODIFICAR ALUMNO y eliminar el alumno que se desee
call modi_alumno ('0001','Juan Pablo rava');
O digita el código y la información que de todos los campos para actualizarlos o calve primaria.
Copia de seguridad para bases de datos que trabajan procedimientosmysqldump -B -uroot -p --routines matricula>d:/xampp/matricula_proce.sql