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:

  1. Cuando voy a ingresar un precio o variable int y float en una tabla no va dentro de comillas.
  2. las tipos de variable int, float no tiene que ponerle cantidad de caracteres.
  3. 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.

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar