Comandos Aprendidos
xmapp
cdm
cd/xampp/mysql/bin
mysql -uroot -p
tee c:/xampp/claseunomysql.txt
c:/xampp/claseunomysql.txt'
show databases;
ver tablas
describe nombretabla;
comando para crear una base de datos:
create database marimuneraBD;
comando para abrir una base de datos
use + nombre de la bd
visualizar tablas
show tables;
crear tablas
create table nombre de tabla
(campo1 tipo(tamaño) not null primary key, campo2 tipo (tamaño) not null, campoN tipo (tamaño) not null);
Como eliminar una clave primaria
alter table nombretabla drop primary key;
como definir nuevamente una clave primaria
alter table nombretabla modify nombre_de_campo tipo(tamaño) not null primary key;
Crear tablas relacionales o de movimiento
mariaDB[biblioteca1]>create table libro_autor
(idlibro varchar(10) not null,
idautor vrachar(10) not null,
foreign key (idlibro) references libro(idlibro) on delete cascade on update cascade,
foreign key (idautor1) references autor(idautor) on delete cascade on update cascade);
copia de seguridad
mysqldump -B -uroot -p nombreBD>c:/xampp/nombre_bd.sql
comando para restaurar la base de datos
source
source C:\xampp\marimuneraBD.sql
exit =salir
segunda clase
agregar campos al final de la tabla
alter table nombretabla add nombredecampo tipo(tamaño) not null;
eliminar campos
alter table nombretabla drop nombredecampo;
para poner un campo en una ubicacion especifica
alter table nombredetabla add nombredecampo tipo(tamaño) not null after nombredecampo;
poner campo de primeras
alter table nombretabla add nombrecampo tipo(tamaño) not null first;
cambiar el nombre de un campo
alter table nombretabla change nombreactual nuevo nombre tipo(tamaño) not null;
para ver como se creo una tabla
show create table libro;
cambiar el nombre de una tabla
alter table nombretabla rename to nuevonombretabla
eliminar una tabla
drop table nombredetabla;
insertar informacion en una tabla
insert into nombretabla (campo 1, "campo2", campo 3, ..... campo x) values (dato1, dato2, dato3,.....,daton);
comando para visualizar la infomacion agregada
select * from nombretabla;
para ver solo algunos campos se remplaza * por campos que deseo ver;
para ver campos con condición
tee c:/xampp/claseunomysql.txt
Remplaza el or
select * from libro where idlibro in('001','002','003');
Remplaza el and
select * from libro where idlibro between 'L01' and 'L05';
búsquedas inexactas
select libro.descripcion 'LIBRO' ,autor.nombre 'AUTOR' ,editorial.nombre 'EDITORIAL' from libro,autor,editorial,liautedi where libro.idlibro=liautedi.idlibro and liautedi.codautor=autor.codautor and editorial.codedit=liautedi.codedit;

Select funcion(valor o campo) from nombretabla;
Modificar o actualizar datos o registros
update nombretabla set nombre del campo a actualizar='valor' condicion;
eliminar
DELETE FROM tabla WHERE condición;
organizar una tabla
select * from libro order by tabla ------> ascendente
select * from libro order by tabla desc; ---------> descendente
para unir 2 tablas
select distinct autor.nombre, editorial.nombre from autor inner join liautedi on autor.codautor=liautedi.codautor inner join editorial on liautedi.codedit=editorial.codedit;
se agrega para guardar y exportar en Excel
'c:/xampp/libroautorjoin.xls'
datos que no estan relacionados null
select libro.idlibro,libro.descripcion,liautedi.idlibro from libro left join liautedi on libro.idlibro=liautedi.idlibro where liautedi.idlibro is null;
para agrupar datos
select * from nombretabla group by nombrecampo;
usamos las funciones
Usando las funciones (max,min,sum,avg,count)
select ciudad ,count(ciudad) as 'cantidad visitantes' from visitantes group by ciudad;
restricciones
having
tablas temporales
create view nombrenewtable as a select * from nombretabla
excepciones
create view nombrenewtable as a select * from nombretabla where like "a%"
eliminar
drop view nombretabla;
si tenemos un consecutivo para volverlo al inicio y recuperarlo usamos el truncate
para no aceptar valores negativos usamos
alter table producto modify precio float unsigned not null;
actualizar informacion tabla
update producto set precio=100000 where codigo=3;
BASE DE DATOS II
Manejo de fechas
Para usa fecha actual
select current_date();
Para imprimir el año
select year (current_date());
Para imprimir el mes
select month (current_date());
para imprimir el año
select day (current_date());
Agregarle años a la fecha
select date_add(current_date(),interval 6 year);
Agregarle meses a la fecha
select date_add(current_date(),interval 6 month);
Agregarle días a la fecha
select date_add(current_date(),interval 6 day);
cuantos dias - fecha escrita
select datediff(current_date(),'2004-03-05');
restar entre dos fechas
select nombre, year(current_date()) - year(nacimiento) from ejercicio
restar años entre dos fechas
select (year(current_date()) - '2004-03-05');
seleccionar los nombres de mujeres que termine en a
select nombre from ejercicio where sexo='mujer' and nombre like '%a';
cuantas persona nacieron entre 1960 y 1969
select count(*) from ejercicio where sexo='mujer' and nombre like '%a';
visualizar toda la información de las personas que tienen entre 34 y 37 años
select count(*) from ejercicio where year(nacimiento) between '1960'and 1969;
calcular el total de hijos
select sum(hijos) from ejercicio;
seleccionar entre un rango de edades
select * from ejercicio where year(current_date()) - year(nacimiento) between '34' and '37';
agrupar hijos y mostrarlo
select hijos,count(*) from ejercicio group by hijos;
________________________________________________________________________________________________
