Ejercicios Prácticos de Procedimientos Almacenados y Comandos SQL en MySQL

Clasificado en Informática

Escrito el en español con un tamaño de 6,61 KB

Procedimientos Almacenados en MySQL: Ejercicios y Ejemplos

Números Pares y Conteo

Procedimiento que muestra los números pares comprendidos entre 2 números elegidos y que calcula cuántos números había.

CP Nombre(ini INT, fin INT)

BEGIN

SET cont=0;

WHILE ini<=fin DO

IF MOD(ini,2)=0 THEN SELECT ini;

END IF;

SET ini=ini+1;

SET cont=cont+1;

END WHILE;

END$$

Múltiplos de N

Igual y que muestre los múltiplos de N

CP nombre(num int, num2 int)
BEGIN DECLARE PARES INT DEFAULT 0;

DECLARE CADENA VARCHAR(100) DEFAULT ' ';

DECLARE CAD VARCHAR(100) DEFAULT ' ';

REPEAT SET NUM=NUM+1;
SELECT MOD(num,2) into pares;

IF (pares>0) THEN SET num=num+1;

END IF;

IF (num2>num) THEN SELECT num into cad;

END IF;

SELECT CONCAT(cad, ",", cadena);

UNTIL num2 >= num;

SELECT cadena;

END$$

Suma de los N Primeros Números

Reciba un número y devuelva lo que suman los n primeros números, siendo n el parámetro

DELI$$ CP nombre(n INT, OUT total INT)

BEGIN DECLARE cont INT DEFAULT 0;

SET Total=0; eti:LOOP

SET cont=cont+1; SET total=cont+total;

IF (cont=n) THEN LEAVE eti; END IF

END LOOP eti; END$$ Call nombre(5,@total);S@

Saltar Iteraciones con el Número 5

Muestre los números del 1 hasta el elegido, debe saltarse el 5.

CP nombre(n INT) BEGIN

DECLARE i INT DEFAULT 0; eti:LOOP

SET i=i+1; IF i>n THEN LEAVE eti; END IF;

IF n=5 THEN ITERATE eti; END IF;

SELECT i; END LOOP eti; END$$

Mostrar Números Impares

Muestre impares del 1 al 20

CP nombre() BEGIN DECLARE cont INT;

SET cont=1; WHILE cont<20 DO SELECT cont;

SET cont=cont+2; END WHILE; END$$

Inserción y Selección de Múltiplos

Tabla con campo tipo entero, inserte los 10 primeros números, y los 5 primeros múltiplos de 5. Y con Select para que los muestre.

Deli CP nombre() BEGIN

DECLARE cont INT DEFAULT 0;

DECLARE num INT DEFAULT 5; REPEAT;

SET cont=cont+1;

insert into numeros values(num*cont);

UNTIL cont>5 END REPEAT;

Select * From numeros; END$$

Comparación de Dos Números

Procedure reciba 2 números y devuelva una cadena que indique si es mayor, menor, iguales

CP nombre(num1 INT, num2 INT) BEGIN

IF num1=num2 THEN SELECT "son iguales";

ELSEIF num1>num2 THEN SELECT ... ;

ELSE SELECT "el segundo es mayor";

END IF; END$$

Bucle para Mostrar Texto

Mostrar 10 veces hola

CP nombre() Begin DECLARE cont INT def 0;

eti: LOOP Select 'Hola'; SET cont=cont+1 ;

IF (cont=10) THEN LEAVE eti; END IF;

END LOOP eti; END$$

Tabla de Multiplicar Excluyendo Valores

Muestre tabla multiplicar el 10 sin 5, 7, 9.

CP nombre() BEGIN DECLARE num INT Def 0;

DECLARE multi INT default 0; eti:REPEAT

SET num=num+1; IF num IN (5,7,9)

THEN ITERATE eti; END IF; SET multi=num*10;

SELECT Concat(10, 'x', num, '=', multi);

UNTIL num=10 END REPEAT; END$$

Primeras Tablas de Multiplicar

Muestre las primeras 5 tablas de multiplicar.

CP nombre() BEGIN

DECLARE num INT DEFAULT 0;

DECLARE multi INT DEFAULT 0; DECLARE n INT DEFAULT 0; DECLARE cadena varchar(500) DEFAULT ' ' ; eti:REPEAT SET n=n+1;

SET cadena=CONCAT (cadena, 'Tabla', n) ;

WHILE num<10 DO SET num=num+1;

SET multi=num*n; SET cadena=CONCAT(cadena, n, 'x', num, '=' , multi); END WHILE;

SET num=0; SET cadena=Concat; UNTIL n=5 END REPEAT; SELECT cadena; END $$

Comandos y Utilidades de MySQL

Respaldos con MYSQLDUMP

MYSQLDUMP [opciones] nombre_bd [tablas] > NOMBRE_COPIA.SQL

MYSQLDUMP [opciones] --databases nombre_bd1 nombre_bd2 > backup.sql
MYSQLDUMP [opciones] --all-databases > bk.sql

Ignorando Tablas en el Respaldo

IGNORANDO TABLAS

MysqlDump -u root -p clientes
--ignore-table=clientes.temporal --ignore-table=clientes.basura > Backup.SQL

Respaldo Transaccional

TRANSACCIONAL tipo InnoDB, asegura consistencia
Mysqldump -u root -p --single-transaction --quick ventas > backup.sql

Restauración de Base de Datos

RESTAURAR

mysql -u user -p Nombre_BD < backup.sql

Exportar e Importar Datos

SELECT ... INTO
SELECT * INTO OUTFILE 'c:\datos.txt'

FIELDS TERMINATED BY ','

LINES TERMINATED BY '\n' FROM Tabla1;

BORRAR -> delete from Tabla1;

IMPORTAR -> LOAD DATA LOCAL INFILE
'c:\datos.txt' INTO TABLE Tabla1

FIELDS TERMINATED BY ','

LINES TERMINATED BY '\n' FROM Tabla1;

Opciones de Exportación Avanzadas

OPCIONES DE EXPORTACIÓN

FIELDS (opciones para cada columna)

TERMINATED BY 'separador de columna'

(Opcional) ENCLOSED BY 'entrecomillador de columna'

ESCAPED BY 'escapar de carácteres'

LINES (opciones para cada fila)

STARTING BY 'char comienzo de linea'

TERMINATED BY 'char final de linea'

Carga y Importación Detallada

CARGAR - IMPORTAR
LOAD DATA INFILE "gente.txt"
INTO TABLE gente

FIELDS TERMINATED BY ','

LINES TERMINATED BY ' \r\n '

IGNORE 2 LINES (fecha, nombre);

Entradas relacionadas: