comandos mysql

 
Cargar Xampp: se accede al menu de windows y se escvrbe las 2 primeras letras ya deberia salirel programa darle al inicializador  cuando abra el programase le da start al apache y al mysql si dicen stop. Ya puede cerrarse el programa 
 
Luego Ingresamos al cmd y nos ubicamos en la uinidad c:
 
Comando para entrar al MYSQL:
C\>cd/xampp/mysql/bin
 
Luego
mysql -uroot -p
 
Comando para visualizar BD:
 
Comando :Show 
Sinatxis:show databases;
 
Comando para crear BD:
 
Comando: Create
 
Sintaxis : create dabtabase Nombre BD;
 
Ejemplo
create dabtabase biblioteca;
 
Comando para abrir y poder usar BD;
 
Comando;Use
 
Sintaxis: use  NombreBD:
 
EJ: Use Biblioteca;
 
Comando para crear una tabla:
 
Comando:Create 
 
Sintaxis:create table nombre table 
(campo 1  tipo (Tamaño)si si es requerido con clave, 
(campo 2  tipo (Tamaño)si si es requerido con clave, 
(campo 3  tipo (Tamaño)si si es requerido con clave); 
 
Comando para visualizar las tablas creadas:
 
Comando: Show
 
 
Sintaxis:Show Tables;
 
Ej:
Database changed
mysql> show tables;
+----------------------+
| Tables_in_biblioteca |
+----------------------+
| libro                |
+----------------------+
1 row in set (0.16 sec)
 
mysql>
 
Comando para visualizar la estructura de una tabla:
 
Comando :Describe
 
Sintaxis:Describe Nombre Tabla;
Ej:
mysql> describe libro;
+-----------+----------+------+-----+---------+-------+
| Field     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| Cod_Lib   | char(10) | NO   | PRI | NULL    |       |
| nom_Lib   | char(40) | NO   |     | NULL    |       |
| Val_Lib   | float    | NO   |     | NULL    |       |
| fecha_Edi | date     | NO   |     | NULL    |       |
+-----------+----------+------+-----+---------+-------+
4 rows in set (0.28 sec)

Comando insertar:

 

 

Comando:Insert 

 

Sintaxsis:insert into Nombre tabla (Campo1,campo2 campo 3)

values ( campo1,campo2,campo3);

 

    Ej:

 

mysql> insert into Libro( Cod_Lib,nom_Lib,Val_Lib,fecha_edi) values('0002','Cron
ica de una Muerte anunciada',120000,'1983-10-12');
 
mysql> insert into Libro(Cod_Lib,nom_Lib,Val_Lib,fecha_edi) values('0001','El Mu
ndo Motor',40000,'2000-09-20');
Query OK, 1 row affected (0.14 sec)
 
mysql>
 
Crear copia seguridad:exit
quedar en el comando inicial 
Comando hacer copia de seguridad 
 
Comando:mysqldump -b -uroot -p Biblioteca(Nombre BD) >
 
Ej:
 
C:\xampp\mysql\bin>mysqldump -B -uroot -p biblioteca>d:/biblioteca.sql
Enter password:
Para restaurar 
 
sourse  d:/biblioteca.sql
 
comando para mostar el contenido de una tabla 
 
select * from Nombre de la tabla 
 
 
select * from libro;
 
Comando para agregar campos a una tabla 
 
Comando:add:
sintaxis
alter table Nombre de la tabla  add campo,tip.tamaño, y si sera requerido o no;
 
 
mysql> alter table Usuarios add Tel_Usu Char(8) not null after Nom_Usu;
 
Para creaar primero cambiar after por first
 
comando para eliminar campos 
 
Comando:drop
 
Sintaxis:mysql> alter table Usuarios drop ,Nombre campo,
 
Eje :mysql> alter table Usuarios drop Id_Usu
 
Comando para modificar el tamaño y tipo de un campo 
 
Comando:mysql> alter table nombre tabla,nombre campo tipo tamaño y si va a ser requerdo o no ;
 
Sintaxis:mysql> alter table Usuarios modify E_mail char(40) not null; 
 
como cambiar nobre de un campo;
 
Comando: Change;
 
sintaxis: alter table nombre tabla, change,nombre del campo, nuevo nombre tipo (tamaño) requerido o no;
 
sintaxis: alter table Usuarios Change bar_usu barrio_usu Char(15) not null;
 

Comando: para renombrar una tabla Rename

Sintaxis:mysql> alter table nombre de tabla Rename to nuevo nombre;

Sintaxis:mysql> alter table Usuarios Rename to estudiante;

comando: para eliminar clave primaria: drop

Sintaxis:mysql> alter table nombre de tabla drop primary key;

Sintaxis:mysql> alter table Estudiante drop primary key;

Comando: para modificar clave primaria

Sintaxis:mysql> alter table nombre de tabla modify nombre del campo tipo(tamaño) requerido o no primary key;

Sintaxis:mysql> alter table Estudiante modify tel_usu  char(8) not null primary key;

Comando como eliminar una tabla : drop

Sintaxis:mysql> drop table nombre del campo;

Sintaxis:mysql> drop table Estudiante;

Comando para elminar una BD

Sintaxis:mysql> drop data base nombre de BD;

Sintaxis:mysql> drop database biblioteca;

 

comando para busqueda con condiccion

where 

sintaxis:

select todos o campos especificos from nombre tabla where campò con condiccion;

condicion

>  <>

<

>= <=

    =

para mostrar campos especificos ej: 

select cod_lib,nom_lib from libro where val_lib > 100000;
---+--------------------------------------+
 
comando like:
like '%a' termina
like 'a%' empezar 
like '%a%' cualquier parte 
 
select cod_lib,nom_lib from libro where nom_lib like '%r;
 
Para guardar contenido en aarchivo de txt
select *from cod_lib;
 
para hacer calculos en la bd 
 
sintaxis select (Campo) from nombre tabla;
 
select count(Val_lib) from libro;
 
Comando para modificar un campo
 
update
sintaxis:update nombre tabla set campo = valor que llevara condicion... ;
 
mysql> update libro set Cant_Lib = 90 where cod_lib = '0009';
 
update libro set tot_lib = cant_lib*val_lib;
 
visualizar nombre del libro y valor cuando el valor del libro sea menor a 30 mil 
 
select nom_lib,val_lib from libro where val_lib <30000;
 
visualizar toda la informacion del libro cuya informacion unitario este entre 50 mil y 100 mil 
 
select * from libro where val_lib between 50000 and 100000;
 
select * from libro where val_lib between 50000 and 100000;
 
Visualizar toda la informacion de los libros cuya informacion sean 0001,0002 y 0003 
 
select * from libro where cod_lib=0001 or cod_lib=0002 or cod_lib=0003;
 
select * from libro where cod_lib in('0001','0002','0003');
 
comando para visualizar  los datos hasta un limite 
 
select * from libro limit 5;
comando para 
 
order by 
sintaxis:
select campo1,campo2 campon from nombre tabla order by campo ordenar tipo de ordenado; ase
                                                                                                                                        dese
 
 
 
ejemplo:
mysql> select nom_lib,cant_lib,val_lib from libro order by nom_lib;
 
otros comandos mysql
comando auto_increment:premite crear campos que se autoincrementan automatica
ejem
 crear una nueva tabla utilizando este comando 
sintaxis 
create table edicion 
(codigo int auto_increment,
descripcion char(30) not null,
primary key (codigo));
 
eliminar un registro 
delete 
sintaxis:
delete from nombre tabla condiciones(es) 
 
mysql> delete from edicion where codigo=1;
 
truncate table edicion;
 
comando para quitar los negativos
unsigned
sintaxis
 
mysql> alter table producto modify precio float unsigned not null;
 
actualizar producto
 
update producto set precio=100000 where codigo =3;
 
borrar datos de una tabla permanente 
 
truncate table edicion;
 
comando para agrupar y contar 
 select ciudad,count(*) from visitante group by ciudad;
 
select * from visitante group by ciudad;
 
visualizar el total de compras agrupadas por sexo:
 
select sexo,sum(monto_compra) from visitante group by sexo;
 
select sexo,avg(monto_compra) from visitante group by sexo;
 
select ciudad,sexo,count(*) from visitante group by ciudad,sexo;
 
 
Hallar el monto de compras pro ciudad que sean mayores a 1.000.000
 
mysql> select ciudad,sum(monto_compra)as total from visitante group by ciudad having sum(monto_compra) >1000000;
 
visualizar las ciudades adonde van mas de 2 visitantes 
 
mysql> select ciudad,count(*) as total from visitante group by ciudad having count(*) >2;
 
Visualizar los libros con sus respectivos autores 
 
 
Consultar los libros cullos autor es riaz khadem
 
 
consultar las editoriales que tienen libros del autor robert lorber 
 
 
 
Taller 
1 consultar el precio de los libros de resdes y bases de datos 
 
2 consultar los libros que pretenescan ala materia de contabilidad , y el nombre del autor de el libro y las editoriales  que tienen a su cargo la publicacion del libro 
 
3 sumar los `recios de los libros cuyo numero de paginas sea menor a 180 
 
4 consultar los nombres de los libros que esten en la editorial mc grow hill 
5
5 consultar los libros cuyo nombre cominse con e o terminen en a 
6 actualizar el nombre de el libro calculo 2 por calculo diferencial
7 muestre los registros de los libros de diagramacion redes y administracion en una pagina 
8 consultar el libro que tiene el menor numero de paginas 
9 consultar el libro que tienen el mayor prercio 
10 consultar el promedio de el precionde los libros 
11 modificar la tabla editorial el campo nombre por descripcion 
12 consultar los libros que estan en la editorial obeja negra 
13 consultar quien es el autor(es) del libro base de datos 2 y que ediorial(es) publico este libro  
 
Comando join 
sintaxis 
select * from  tabla 1 inner join tabla 2 on tabla1.id = tabla2.id inner join tabla 3 on tabla 2.id= tabla3.id2
 
Visualizar los libros con sus respectivos autores 
 
mysql> select * from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.cadautor = autor.cadautor;
+---------+--------------+-----------+--------+-----------+---------+----------+---------+----------+----------------------+
| idlibro | descripcion  | nropagina | precio | codigomat | idlibro | cadautor | codedit | cadautor | nombre               |
+---------+--------------+-----------+--------+-----------+---------+----------+---------+----------+----------------------+
| L02     | BD ll        |       150 |  65000 | M09       | L02     | A01      | E01     | A01      | Luis Joyanes         |
| L06     | Contabilidad |       170 |  25700 | M06       | L06     | A02      | E02     | A02      | Jorge Vasquez Posada |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E01     | A04      | Riaz Khadem          |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E02     | A04      | Riaz Khadem          |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E03     | A04      | Riaz Khadem          |
| L02     | BD ll        |       150 |  65000 | M09       | L02     | A05      | E03     | A05      | Robert Lorber        |
| L07     | Redes        |       370 |  32500 | M07       | L07     | A05      | E03     | A05      | Robert Lorber        |
+---------+--------------+-----------+--------+-----------+---------+----------+---------+----------+----------------------+
7 rows in set (0.00 sec)
 
comando left join 
sinatxis 
select * from tabla 1 left join tabla 2 on tabla1.id=tabla2.id where tabla 2.id is null;
 
mysql> select * from libro left join liautedi on libro.idlibro=liautedi.idlibro where liautedi.idlibro is null;
+---------+---------------------+-----------+--------+-----------+---------+----------+---------+
| idlibro | descripcion         | nropagina | precio | codigomat | idlibro | cadautor | codedit |
+---------+---------------------+-----------+--------+-----------+---------+----------+---------+
| L01     | Calculo ll          |       120 |  55000 | M01       | NULL    | NULL     | NULL    |
| L03     | Estructura de datos |       180 |  85000 | M03       | NULL    | NULL     | NULL    |
| L05     | Admon en una pagina |        70 |   7500 | M05       | NULL    | NULL     | NULL    |
| L08     | Diagramacion        |        85 |  45000 | M08       | NULL    | NULL     | NULL    |
+---------+---------------------+-----------+--------+-----------+---------+----------+---------+
4 rows in set (0.03 sec)
 
 
Se utiliza para saber que registros no tienen correspondencia en otra tabla. Verifica de una tabla izquierda hacia una tabla derecha, si no encuentra coincidencias se genera una fila extra seteados en null 
ejemplo visualizar los libros que no tienen autores asignados 
 
 
Visualizar un lkistado de los autores que an escrito libros
 
comando rigth join 
sintaxis 
 
select * from tabla 1 right join tabla 2 on tabla1.id=tabla2.id;
 
 
mysql> select * from libro right join liautedi on libro.idlibro=liautedi.idlibro;
+---------+--------------+-----------+--------+-----------+---------+----------+---------+
| idlibro | descripcion  | nropagina | precio | codigomat | idlibro | cadautor | codedit |
+---------+--------------+-----------+--------+-----------+---------+----------+---------+
| L02     | BD ll        |       150 |  65000 | M09       | L02     | A01      | E01     |
| L02     | BD ll        |       150 |  65000 | M09       | L02     | A05      | E03     |
| L06     | Contabilidad |       170 |  25700 | M06       | L06     | A02      | E02     |
| L07     | Redes        |       370 |  32500 | M07       | L07     | A05      | E03     |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E01     |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E02     |
| L04     | Ingles       |       280 | 105000 | M04       | L04     | A04      | E03     |
+---------+--------------+-----------+--------+-----------+---------+----------+---------+
7 rows in set (0.00 sec)
 
mysql> select * from autor right join liautedi on autor.cadautor=liautedi.cadautor;
+----------+----------------------+---------+----------+---------+
| cadautor | nombre               | idlibro | cadautor | codedit |
+----------+----------------------+---------+----------+---------+
| A01      | Luis Joyanes         | L02     | A01      | E01     |
| A02      | Jorge Vasquez Posada | L06     | A02      | E02     |
| A04      | Riaz Khadem          | L04     | A04      | E01     |
| A04      | Riaz Khadem          | L04     | A04      | E02     |
| A04      | Riaz Khadem          | L04     | A04      | E03     |
| A05      | Robert Lorber        | L02     | A05      | E03     |
| A05      | Robert Lorber        | L07     | A05      | E03     |
+----------+----------------------+---------+----------+---------+
7 rows in set (0.01 sec)
 
mysql> select autor.nombre  from autor right join liautedi on autor.cadautor=liautedi.cadautor;
+----------------------+
| nombre               |
+----------------------+
| Luis Joyanes         |
| Jorge Vasquez Posada |
| Riaz Khadem          |
| Riaz Khadem          |
| Riaz Khadem          |
| Robert Lorber        |
| Robert Lorber        |
+----------------------+
7 rows in set (0.00 sec)
mysql> select distinct autor.nombre  from autor right join liautedi on autor.cadautor=liautedi.cadautor;
+----------------------+
| nombre               |
+----------------------+
| Luis Joyanes         |
| Jorge Vasquez Posada |
| Riaz Khadem          |
| Robert Lorber        |
+----------------------+
4 rows in set (0.13 sec)
 
 
 
Subconsultas    
 
Select....select(s)
Update...select(s)
delete....select(s)
insert.....select(s)
 
Ejemplo
 
Update tabla set campo=valor where condicion
 
update tabla set (Subconsulta),(Subconsulta). campo = valor where subconsultas;
 
Calcular el valor venta de la tabla detalle con un  incremento de el 23% del valor unitario de la tabla articulo 
 
 
    Analisis
 
Campo  remplazar | Valor venta t.Detalle
 
Con que voy a remplazar ? | Valor unitario (Tabla articulo) + Valor unitario * 0.23
 
Condiciones? | 
 
Relacion de las tablas | Articulo.codigo=Detalle.codigo
 
Comando | Update
 
update detalle set valorventa = (select valorunitario + (valorunitario * 0.23) from articulo where articulo.codigo =detalle.codigo); 
Query OK, 0 rows affected (0.00 sec)
Rows matched: 7  Changed: 0  Warnings: 0
 
 
Calcular el total de la tabla detalle 
 
 update detalle set total=cantidad * valorventa;
Query OK, 7 rows affected (0.00 sec)
Rows matched: 7  Changed: 7  Warnings: 0
 
 
 
calcular las existencias segun la tabla detalle de cada tipo 
 
Analisis
 
campo a rremplazar | existencias T.articulo
 
con que la voy a remplazar | Cantidad(Articulo) - suma (cantidad(Detalle) vendida)
 
Condicion | 
 
Relacion de las tablas | detalle.codigo= articulo.codigo
 
comando | Update 
 
 
Update articulo set existencia =cantidad - (select sum(cantidad) from detalle where detalle.codigo=articulo.codigo); 
Query OK, 5 rows affected (0.03 sec)
Rows matched: 5  Changed: 5  Warnings: 0
 
mysql> select *  from articulo;
+--------+------------+----------+---------------+------------+
| codigo | articulo   | cantidad | valorunitario | existencia |
+--------+------------+----------+---------------+------------+
| 150    | nevera     |       25 |        950000 |         17 |
| 200    | televisor  |       11 |       1200000 |          8 |
| 250    | estufa     |       30 |        750000 |         18 |
| 300    | ventilador |       17 |        110000 |         15 |
| 350    | lavadora   |       13 |        980000 |         12 |
+--------+------------+----------+---------------+------------+
 
 
eliminar los articulos que hayan vendido entre 3 y 5 articulos 
 
 
Analisis
 
campo a Eliminar | articulo 
 
con que la voy a remplazar | 
 
Condicion | Cantidad T.Detalle entre 3y5 codigo=codigoD
 
Relacion de las tablas | 
 
comando | delete
 

 

Crear una Copia o duplicar la tabla detalle 

 

Create Table Coipa _Detalle Like detalle ; 

 

mysql> describe copia_detalle;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| nrofactura | char(10) | NO   |     | NULL    |                |
| fecha      | date     | NO   |     | NULL    |                |
| cantidad   | int(11)  | NO   |     | NULL    |                |
| valorventa | int(11)  | NO   |     | NULL    |                |
| total      | int(11)  | NO   |     | NULL    |                |
| codigo     | char(10) | NO   |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+
7 rows in set (0.05 sec)
 
 
 
 
 
 
Inserta en a copia de la tabla mysql> select * from copia_detalle;
+----+------------+------------+----------+------------+---------+--------+
| id | nrofactura | fecha      | cantidad | valorventa | total   | codigo |
+----+------------+------------+----------+------------+---------+--------+
|  2 | 1250       | 2010-02-13 |        5 |    1168500 | 5842500 | 150    |
|  3 | 1250       | 2010-02-13 |        7 |     922500 | 6457500 | 250    |
+----+------------+------------+----------+------------+---------+--------+
2 rows in set (0.00 sec)
 
 
 
 
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(in car char(10), in nom char(40), est char(10))
Begin
Insert into alumno values(car,nom,est);
End
//
Delimiter  ;
 
Ver los procedimientos almacenados creados
Show procedure status; (visualiza los procedimientos creados)
 
Ver el contenido del procedimiento
Show créate procedure nombre del procedimiento;
 
Cargar o ejecutar un procedimiento
Call insertar(‘012’,’sofia’); e inserta el registro a la tabla
 
Para borrar un procedimiento
Drop procedure y el nombre del procedimiento.
 
 
Procedimiento para listar
 
Delimiter //
Créate procedure listar()
Begin
Select * from alumno;
End
//
Delimiter  ;
 
 
Procedimiento para consultar alumno
 
Delimiter //
Create procedure cons_alumno(in car char(10))
Begin
Select *from alumno where carnet=car;
End
//
Delimieter  ;
 
LLAMADO AL PROCEDIMIENTO CONSULTAR ALUMNO y consultar el alumno que se desee
call cons_alumno ('0001');
O digita el código que desee consultar o calve primaria
 
 
 
Procedimiento para eliminar alumno
 
Delimiter //
Créate procedure eli_alumno(in car char(10))
Begin
Delete from alumno where carnet=car;
End
//
Delimieter  ;
 
LLAMADO AL PROCEDIMIENTO ELIMINAR ALUMNO y eliminar  el alumno que se desee
call eli_alumno ('0001');
O digita el código que desee eliminar o calve primaria
 
 
Procedimiento para modificar alumno
 
Delimiter //
Create procedure modi_alumno(in car char(10), in nom char(40))
Begin
Update  alumno  set  nombre=nom  where carnet=car;
End
//
Delimieter  ;
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.