COMANDOS mySQL
Primero se deben subir los servicios de Xampp (Apache y mySQL), luego:
- Abrir la consola y digitar el primer comando: cd/xampp/mysql/bin
- Digitar mysql -uroot -p (dar enter en el password)
- Para grabar los comandos de la consola: tee c:/xampp/clase1mysql.txt
--- Comando para crear una base de datos ---
Comando create
sintaxis: create database nombre_la_BD;
Ejemplo:
create database bdbiblioteca;
--- Comando para abrir la BD ---
Comando use
sintaxis: use nombre_de_la_bd;
--- Comando ´para mostrar las tablas ---
show tables;
--- Comando para eliminar una base de datos ---
comando drop
sintaxis: drop database nombre_de_la_bd;
--- Comando para crear una tabla ---
(Campo1 tipo(tamaño) nulo o no primary key,
campo 2 tipo(tamaño) nulo o no,
campo 3 tipo(tamaño) nulo o no);
--- Visualizar la estructura de la tabla ---
Comando Describe
sintaxis: Describe nombree_de_la_tabla;
--- Hacer copia de seguridad ---
Comando Exit
sintaxis: mysqldump -B -uroot -p nombre_BD>c:/xampp/nombre_BD.sql
--- Restaurar la BD ---
Comando Source
Ejemplo:
Sintaxis: source c:/xampp/nombreBD.sql
--- Crear tablas relacionales ---
foreign key(id_libro1) references libro(Id_Libro) on delete cascade on update cascade);
--- Comando para eliminar una clave primaria ---
comando Drop
Sintaxis: alter table nombretabla drop primary key;
ejemplo:
alter table libro drop primary key;
--- Definir nuevamente una clave primaria ---
Comando modify
sintaxis: alter table nombretabla modifiy nombre_de_campo tipo(tamaño) not null primary key;
Ejemplo:
alter table libro modify idlibro varchar()
--- Comando agregar campos a una tabla al final ---
comando add
sintaxis: alter table nombretabla add nombre_De_campo tipo(tamaño) not null;
Ejemplo:
alter table libro add Cantidad int(3) not null;
--- Colocar un campo después de otro según la necesidad ---
Comando after
sintaxis: alter table nombretabla add nombre_de_campo tipo(tamaño) not null after nombre_de_campo que va a quedar antes del nuevo campo;
Ejemplo:
alter table libro add area varchar(20) not null after Titulo;
--- Insertar un campo al principio de la tabla ---
comando first
sintaxis: alter table nombretabla add nombre_de_campo tipo(tamaño) not null firts;
Ejemplo:
alter table libro add serial varchar(15) not null first;
--- Eliminar campos de una tabla ---
Comando Drop
sintaxis: alter table nombretabla drop nombre_de_campo;
Ejemplo:
alter table libro drop serial;
--- Cambiar el nombre de un campo ---
comando change
sintaxis: alter table nombretabla change nombre_campo_actual nuevo_nombre tipo(tamaño) not null;
Ejemplo:
alter table libro change Titulo Nombre varchar(60) not null;
--- Visualizar como esta creada una tabla ---
comando show
sintaxis: show create table nombretabla;
Ejemplo:
show create table libro;
--- Cambiar el nombre de una tabla ---
comando Rename
sintaxis: alter table nombretabla rename to nuevonombretabla;
Ejemplo:
alter table libro rename to obra;
--- Eliminar una tabla ---
Comando Drop
sintaxis: drop table nombretabla;
Ejemplo:
drop table libro;
--- Insertar información en una tabla ---
comando insert
sintaxis: insert into nombretabla(campo1,campo2,campo...campon) values(dato1,dato2,dato3...daton);
Ejemplo:
insert into libro(IdLibro, Nombre, area, Nropaginas, P´recio, Cantidad) values('001','A','Informatica',100,4000,50);
--- Consultar o visualizar información (De una tabla antes o después de haber insertado datos) ---
comando select
sintaxis: select * fromnombretabla;
Ejemplo:
select * from libro;
Los campos tipos texto siempre van con comilla sencilla ' ' y todo lo que sea entero o float va sin comillas
--- Consultar uno o varios campos de una tabla ---
Sintaxis: select campo1, campo2, campo3...campon from nombre tabla;
Ejemplo: Visualizar el código del libro y su descripción
select idLibro, Titulo from libro;
Consultas con Condicionales
Comando: where
Sintaxis: select todos(*) o campos_especificos from nombretabla where campo con condicion;
Ejemplo: Visualizar la información del libro 001
select * from libro where idLibro='001';
----------------------------------------------------------------------------------------------------------------------
Crear una consulta para visualizar todos los libros con número de páginas menores a 160
Análisis:
Qué información se desea mostrar o visualizar *
Tabla: Libro
Condición: número de páginas < 160
Sintaxis: select * from libro where nropaginas < 160;
----------------------------------------------------------------------------------------------------------------------
Crear una consulta que visualice descripción, número de páginas y precio de los libros cuyo precio sea mayor a 5000 pesos
Análisis:
Qué información se desea mostrar o visualizar (titulo, nropagina, precio)
Tabla libro
Condición: Precio > 5000;
Sintaxis: select titulo,nropaginas,precio from libro where precio > 5000;
----------------------------------------------------------------------------------------------------------------------
Crear una consulta que visualice todos los libros que pertenecen al área de informática
Análisis:
Qué información se desea mostrar o visualizar (*)
Tabla libro
Condición: area del libro = informatica
sintaxis: select * from libro where area='informatica';
----------------------------------------------------------------------------------------------------------------------
Realizar una consulta que visualice la información de los libros que tengan a partir de 100 páginas y su precio sea mayor o igual a 10000
Análisis:
Qué información se desea mostrar o visualizar(¨*)
Tabla libro
Condición: nropaginas>=100 y precio>=10000;
Sintaxis: select * from libro where nropaginas>=100 and precio>10000;
----------------------------------------------------------------------------------------------------------------------
Visualizar la información de los libros 001,002,003
Análisis:
Qué información se desea mostrar o visualizar(*)
Tabla libro
Condición: codigo=001 o codigo=002 o codigo=003;
Sintaxis: select ¨* from libro where idLibro='001' or idLibro='002' or idLibro='003';
----------------------------------------------------------------------------------------------------------------------
Visualizar de los libros del 001 al 005
Análisis:
Qué información se desea mostrar o visualizar(*)
Tabla libro
Condición: codigo>=001 y codigo<=005
Sintaxis: select * from libro where idLibro>='001' and idLibro<='005';
----------------------------------------------------------------------------------------------------------------------
Reemplazar el comando or por el comando in
Visualizar la información de los libros 001,002,003
Análisis:
Qué información se desea mostrar o visualizar(*)
Tabla libro
Condición: codigo=001 o codigo=002 o codigo=003;
Sintaxis: select * from libro where idLibro in('001','002','003');
----------------------------------------------------------------------------------------------------------------------
Reemplazar el comando and por el comando between cuando se manejan intervalos
Análisis:
Qué información se desea mostrar o visualizar(*)
Tabla libro
Condición: codigo del libro entre 001 y 006
Sintaxis: select * from libro where idLibro between '001' and '006';
----------------------------------------------------------------------------------------------------------------------
El comando "like" sirve para buscar coincidencias búsquedas 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 letra a
----------------------------------------------------------------------------------------------------------------------
Visualizar la información de los libros cuya área comience con la letra L
Análisis:
Qué información se desea mostrar o visualizar(*)
Tabla libro
Condición: El nombre del área comience con la letra L
Sintaxis: select * from libro where area like 'L%';
----------------------------------------------------------------------------------------------------------------------
Visualizar la información de los libros cuya área termine en con la letra S
Sintaxis: select * from libro where area like '%S';
----------------------------------------------------------------------------------------------------------------------
Visualizar la información de los libros que en el nombre del área contengan la letra t
Sintaxis: select * from libro where area like '%t%';
----------------------------------------------------------------------------------------------------------------------
Visualizar la información de los libros que en el nombre del área incluyan la palabra datos
Sintaxis: select * from libro where area like '%datos%';
Consultas Relacionales (Entre varias tablas)
Visualizar la información de los libros que en el nombre incluyan EL II
Visualizar el codigo del libro, el nombre del libro, el codigo del autor y el nombre del autor con sus respectivos libros escritos
Análisis:
¿Qué desea consultar y de qué tablas?
libro.idLibro
libro.descripcion
autor.codautor
autor.nombre
¿Qué tablas se ven afectadas o involucradas?
Libro
Autor
Liautedi
Condicion(es)
Ninguna
¿Cómo se relacionan las tablas?
libro.idLibro = liautedi.idLibro
liautedi.codautor = autor.codautor
¿Qué comando se debe utilizar?
select
Sintaxis: select distinct libro.idlibro, libro.descripcion, autor.codautor, autor.nombre from libro,autor,liautedi where libro.idlibro=liautedi.idlibro and liautedi.codautor=autor.codautor;
----------------------------------------------------------------------------------------------------------------------
CONSULTA
Consultar quién es el autor del libro Estructura de datos
Análisis
1. ¿Qué se desea consultar y de qué tablas?
libro.idlibro
libro.descripcion
autor.codautor
autor.nombre
2.¿ Qué tablas se ven afectadas o involucradas?
Libro
Autor
Liautedi
3.Condicion (es)
libro.descripcion=Estructura de datos
4. ¿Cómo se relacionan las tablas?
libro.idLibro=liautedi.idlibro
liautedi.codautor=autor.codautor
5. ¿Qué comando se debe utilizar?
select
Sintaxis
select libro.descripcion,autor.nombre from libro,autor,liautedi where libro.descripcion='Estructura de datos' and libro.idlibro=liautedi.idlibro and liautedi.codautor=autor.codautor;
Funciones Básicas Para Realizar Cálculos
FUNCION--------------- DESCRIPCION
SUM ------------------ Suma o Total
MAX -------------------- Valor Máximo
MIN ------------------- Valor Mínimo
COUNT ---------------- Contar o cantidad
AVG ----------------- Promedio
Sintaxis
Select funcion(valor o campo) from nombretabla;
Ejemplo: Cuantos libros hay en la librería
----------------------------------------------------------------------
Ej: Cual es el valor total de los libros que posee la librería
Función a Utilizar: Sum
Sintaxis
Select sum(precio) 'Valor Total' from libro;
-------------------------------------------------------------------------------
Ej: Cual es el valor del libro más costoso que vende la librería
Función a Utilizar: Max
Sintaxis
Select max(precio) 'Libro Más Costoso' from libro;
--------------------------------------------------------------------------------
Ej: Cuál es el número de páginas del libro más pequeño que vende la librería
Función a Utilizar: Min
Sintaxis
Select min(nropagina) 'Libro mas Pequeño' from libro;
--------------------------------------------------------------------------------
Ej: hallar el valor promedio de los libros
Función a Utilizar: Avg
Sintaxis
Select Avg(precio) 'Valor promedio de un libro' from libro;
Modificar o Actualizar Datos o Registros
Comando: Update
Sintaxis: update nombretabla set nombre del campo a actualizar='valor' condicion;
Cambiar o actualizar la descripción del libro Redes por Redes y Comunicaciones:
update libro set Titulo='Redes y Comunicaciones' where id_libro='L07';
---------------------------------------------------------------------------------------------------------------
INSERTAR EN LA TABLA LIBRO LOS CAMPOS CANTIDAD TIPO ENTERO Y VTOTAL
TIPO FLOAT
Sintaxis: alter table libro add cantidad int not null after Numpg;
alter table libro add vtotal float not null after precio;
-----------------------------------------------------------------------------------------------------------------
ACTUALIZAR LA CANTIDAD DE LIBROS,COMENZANDO EN 5 PARA EL PRIMER LIBRO E INCREMENTAR DE 5 EN 5 PARA LOS DEMAS
Sintaxis: update libro set cantidad=5 where idlibro='L01';
-------------------------------------------------------------------------------------------------------
ACTUALIZAR EL CAMPO VALOR TOTAL DE CADA LIBRO
Sintaxis: update libro set vtotal=cantidad*precio;
Precaución: realizar copia de seguridad antes de ejecutar la acción.
NOTA: Si se actualizan o modifican todos los campos de una tabla NO se requiere de condiciones, en caso contrario, De modificar o actualizar campos en específicos es necesario tener la condición.
-----------------------------------------------------------------------------------------------------------
ELIMINAR INFORMACIÓN O REGISTROS
Comando: Delete
Sintaxis: delete from tabla where condición;
-----------------------------------------------------------------------------------------------------------------
ELIMINAR DE LA TABLA LIBRO,EL LIBRO DE REDES Y COMUNICACIONES
Sintaxis: Delete from libro where id_libro='L07';
delete from libro where Titulo='Redes y comunicaciones';
---------------------------------------------------------------------------------------------------------------------------------
ORDENAR LA INFORMACION
Comando: Order by
Sintaxis: Select * from NombreTabla order by (campo a ordenar) tipo de ordenado ;
-------------------------------------------------------------------------------------------------------------------
Ordenar la tabla LIBRO por la DESCRIPCION de los libros
Select * from libro order by descripcion;
Nota: Si se desea ordenar ordenar de forma ascendente se agrega asc o descendente se agrega desc al final de la sintaxis.
Ejemplo: Ordenar la tabla libro por el Titulo de forma Ascendente-Descendente.
Ascendente:
select * from libro order by descripcion asc;
Descendente:
select * from libro order by descripcion desc;
Comando JOIN
El comando JOIN en mysql, sirve para combinar 2 o mas tablas según las designación de variables que queramos o necesitemos.
unión entre varias tablas, devuelve la información que encuentra esa unión (relación).
select * from tabla1 inner join tabla2 on tabla1.id=tabla2.id inner join tabla3 on tabla2.id=tabla3.id2;
select distinct libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor;
Sintaxis: select * from tabla1 inner join tabla2 on tabla1.id=tabla2.id inner join tabla3 on tabla2.id=tabla3.id2;
---------------------------------------------------------------------------------------------------------
CONSULTAS RELACIONALES (Entre varias tablas)
Visualizar el codigo del libro, el nombre del libro, el codigo del autor y el nombre del autor con sus respectivos libros escritos.
Sintaxis: select distinct libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor into outfile 'c:/xampp/libroautorjoin.xls';
into outfile 'c:/xampp/libroautorjoin.xls'
El left join se utiliza 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 seteados a NULL.
------------------------------------------------------------------
GROUP BY Y VIEW
Agrupar información
Comando Group by
Sintaxis: Select * from nombretabla grup 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
Análisis
Qué se desea consultar?
Cantidad de visitantes por ciudad
Campo en el que se aplica la función?
Montocompra o ciudad
Campo por el cual va a agrupar?
Ciudad
Comando
group by - Select - Count
Sintaxis
Select nombrecampo(s), función(campofuncion) as nombredeseado from nombretabla group by nombrecampo;
select ciudad ,count(ciudad) as 'cantidad visitantes' from visitantes group by ciudad;
Visualizar el total comprado por ciudad
Análisis
Qué se desea consultar?
Total comprado por ciudad
Campo en el que se aplica la función?
Montocompra
Campo por el cual va a agrupar?
Ciudad
Comando
group by: Funcion sum
Sintaxis
select ciudad ,sum(montocompra) as 'total compra por ciudad' from visitantes group by ciudad;
Visualizar el monto de compra por sexo
Análisis
Qué se desea consultar?
Suma compra por sexo
Campo en el que se aplica la función?
Montocompra
Campo por el cual va a agrupar?
Sexo
Comando
group by: Funcion sum
Sintaxis
select ciudad ,sum(montocompra) as 'total compra por ciudad' from visitantes group by ciudad;
Visualizar las ciudades a las que van más de dos visitantes
Análisis
Qué se desea consultar?
Ciudad
Campo en el que se aplica la función?
Ciudad
Campo por el cual va a agrupar?
Ciudad
Comando
Condición: Cantidad >2 select group by: funcion Count - Where
Sintaxis
Select ciudad ,count(ciudad) as 'cantidad de visitantes' from visitantes group by ciudad having count(ciudad)>2;
Calcular el valor promedio de montocompra agrupado por ciudad y sexo
NOTA: Cuando utilizamos grup by y se manejan condiciones estas no funcionan con where sino con la opción having
Análisis
Qué se desea consultar?
Promedio de compra por ciudad y sexo
Campo en el que se aplica la función?
Montocompra
Campo por el cual va a agrupar?
Ciudad y sexo
Comando
Select - grup by: Funcion AVG
Sintaxis
Select ciudad,sexo ,avg(montocompra) as 'promedio de compra' from visitantes group by ciudad, sexo;
Visualizar el monto compra por ciudad mayores a 5 millones
NOTA: Cuando utilizamos group by y se manejan condiciones estas no funcionan con where sino con la opción having
Análisis
Qué se desea consultar?
Ciudad
Campo en el que se aplica la función?
Montocompra
Campo por el cual va a agrupar?
Ciudad
Comando
Condición: suma > 5 Millones select - group by: funcion sum-having
Sintaxis
Select ciudad, sum(montocompra) as 'Mayores_a_5000000' 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;
Ejemplo: Crear una vista con los nombre que terminan en A
create view visitantesa as select * from visitantes where nombre like '%a';
NOTA: Se crea una tabla tal cual es la original, pero con la información consultada
Inserta un nuevo visitante
insert into visitantes(nombre,ciudad,sexo,montocompra) values('Ana Maria Guerrero Guasca','cartagena','femenino',5000000);
Eliminar una vista
Drop view nombredelavista;
Eliminar la vista visitantesa
Drop view visitantesa;