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);