Comandos MYSQL 3
Otros comandos MySQL
Comando (auto_increment) :
Permite crear campos que se autoincrementan automatica/
crear una tabla utilzando este camando
Ejemplo
mysql> create table edicion(codigo int auto_increment, descripcion char(30) notnull, primary key (codigo));
Como quedo:
mysql> describe edicion;

Queda así:
mysql> insert into edicion(descripcion) value('segunda edicion'),('tercera edicion');

* Eliminar registros o Informacion
Comando (Delete)
SINTAXIS
delete from nombre de tabla condicion, condiciones;
Ejemplo:
mysql> delete from edicion where codigo=1;

* Para borrar todos los registros de una tabla
Ejemplo:
mysql> delete from edicion;
mysql> select * from edicion;
Empty set (0.00 sec) ( Da a entender que esta tabla no tiene datos )
* Truncate table edicion
truncate: hace un borrado físico de los registros de las tables y recupera los consecutivos
mientras que delete hace un borrado lógico y no borra consecutivos
Ejemplo:
mysql> truncate table edicion;
Importante:
- Cuando voy a ingresar un precio o variable int y float en una tabla no va dentro de comillas.
- las tipos de variable int, float no tiene que ponerle cantidad de caracteres.
- Para que se grabe todo lo que uno hace en MySQL seria:
mysql>tee d:/fechas.txt
* Para que en un precio no acepte valores negativos
Ejemplo.
mysql> create table producto(codigo int auto_increment, nombre char(30) not null,precio float unsigned, primary key (codigo));
mysql> insert into producto(nombre,precio)value('camisa',25000),('pantalon',45000),('chaqueta',-100000);

mysql> update producto set precio=100000 where codigo=3;

A continuación se puede observar el tee de esta sesión.
Subconsultas

1. calcular el valor venta de la tabla detalle con un incremento del 23% del valor unitario de la tabla articulo
Análisis:
a) Campo a reemplazar= Valorventa de la tabla detalle
b) Con quien o que lo va a reemplazar= (valorunitario*0.23)+valorunitario de la tabla articulo
c) Condiciones= articulo.codigo=detalle.codigo
d) Comando Update
SENTENCIA MYSQL
mysql> update detalle set valorventa = (select valorunitario + (valorunitario * 0.23) from articulo where articulo.codigo = detalle.codigo);


2. calcular el total de la tabla detalle
Análisis:
a) Campo a reemplazar= total de la tabla detalle
b) Con quien o que lo va a reemplazar= cantidad*valorventa
c) Condiciones= ninguna
d) Comando Update
mysql> update detalle set total = cantidad * valorventa;

3. calcular las existencias según la tabla detalle de cada artículo
Análisis
a) Campo a reemplazar= existencia de la tabla artículo
b) Con quien o que lo va a reemplazar= cantidad-suma(cantidad) de la tabla detalle
c) Condiciones= detalle.codigo = articulo.codigo
d) Comando Update
update articulo set existencia = cantidad - (select sum(cantidad) from detalle where detalle.codigo = articulo.codigo);


4. eliminar los artículos que hayan vendido entre 2 y 5 artículos en cada venta
mysql> delete from articulo where codigo = (select codigo from detalle where cantidad between 2 and 5 and detalle.codigo = articulo.codigo group by articulo.codigo);

5. Crear una tabla copia (duplicar la tabla detalle) y llenarla con la información de detalle, solo los registros del mes de febrero
mysql> create table copia like detalle;




mysql> insert into copia select * from detalle where month(fecha)=2;

A continuación se puede observar el tee de esta sesión.
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 alumnos
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 ;
* Ver los procedimientos almacenados creados
Show procedure status; (visualiza los procedimientos creados)
* Ver el contenido del procedimiento
Show create procedure nombre del procedimiento;
* Cargar o ejecutar un procedimiento
Call insertar('012','sofia', 'activo'); e inserta el registro a la tabla
* Para borrar un procedimiento
Drop procedure y el nombre del procedimiento.
* Procedimiento para listar ( mostrar una tabla )
Delimiter //
Create 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
//
Delimiter ;
* 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 clave primaria
* Procedimiento para eliminar alumno
Delimiter //
Create procedure eliminar_alumno(in _carnet char(10))
Begin
Delete from alumno where carnet=_carnet;
End
//
Delimiter ;
* LLAMADO AL PROCEDIMIENTO ELIMINAR ALUMNO y eliminar el alumno que se desee
call eliminar_alumno ('0001');
O digita el código que desee eliminar o calve primaria
* Procedimiento para modificar alumno
Delimiter //
Create procedure modificar_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 ('1000','Juan Pablo rava', 'inactivo');
O digita el código y la información que de todos los campos para actualizarlos o calve primaria.
A continuación se puede observar el tee de esta sesión.