32 - Búsqueda de patrones (regexp) |
Trabaje con la tabla "agenda" que registra la información referente a sus amigos. 1- Elimine la tabla si existe. 2- Cree la tabla con la siguiente estructura: create table agenda( apellido varchar(30), nombre varchar(20) not null, domicilio varchar(30), telefono varchar(11), mail varchar(30) ); 3- Ingrese los siguientes registros: insert into agenda values('Perez','Juan','Sarmiento 345','4334455','juancito@gmail.com'); insert into agenda values('Garcia','Ana','Urquiza 367','4226677','anamariagarcia@hotmail.com'); insert into agenda values('Lopez','Juan','Avellaneda 900',null,'juancitoLopez@gmail.com'); insert into agenda values('Juarez','Mariana','Sucre 123','0525657687','marianaJuarez2@gmail.com'); insert into agenda values('Molinari','Lucia','Peru 1254','4590987','molinarilucia@hotmail.com'); insert into agenda values('Ferreyra','Patricia','Colon 1534','4585858',null); insert into agenda values('Perez','Susana','San Martin 333',null,null); insert into agenda values('Perez','Luis','Urquiza 444','0354545256','perezluisalberto@hotmail.com'); insert into agenda values('Lopez','Maria','Salta 314',null,'lopezmariayo@gmail.com'); 4- Busque todos los mails que contengan la cadena "gmail": select *from agenda where mail regexp 'gmail'; 5- Busque los nombres que no tienen "z" ni "g": select * from agenda where nombre not regexp '[zg]'; 6- Busque los apellidos que tienen por lo menos una de las letras de la "v" hasta la "z" (v,w,x,y,z): select * from agenda where apellido regexp '[v-z]'; 7- Seleccione los apellidos que terminen en "ez": select * from agenda where apellido regexp 'ez$'; 8- Seleccione los apellidos, nombres y domicilios de los amigos cuyos apellidos contengan 2 letras "i": select apellido,nombre,domicilio from agenda where nombre regexp 'i.*i'; 9- Seleccione los teléfonos que tengan 7 caracteres exactamente: select * from agenda where telefono regexp '^.......$'; 10- Seleccione el nombre y mail de todos los amigos cuyos mails tengan al menos 20 caracteres: select nombre,mail from agenda where mail regexp '....................';
Un comercio que vende artículos de computación registra los datos de sus artículos en una tabla con ese nombre. 1- Elimine "articulos", si existe: drop table if exists articulos; 2- Cree la tabla, con la siguiente estructura: create table articulos( codigo int unsigned auto_increment, nombre varchar(25) not null, descripcion varchar(30), precio decimal(6,2) unsigned, cantidad tinyint unsigned, primary key(codigo) ); 3- Ingrese algunos registros: insert into articulos (nombre, descripcion, precio,cantidad) values ('impresora','Epson Stylus C45',400.80,20); insert into articulos (nombre, descripcion, precio,cantidad) values ('impresora','Epson Stylus C85',500,30); insert into articulos (nombre, descripcion, precio,cantidad) values ('monitor','Samsung 14',800,10); insert into articulos (nombre, descripcion, precio,cantidad) values ('teclado','ingles Biswal',100,50); insert into articulos (nombre, descripcion, precio,cantidad) values ('teclado','español Biswal',90,50); insert into articulos (nombre, descripcion, precio,cantidad) values ('impresora multifuncion','HP 1410',300,20); 4- Seleccione todos los artículos que comienzan con "impresora": select * from articulos where nombre regexp '^impresora'; 5-Busque los artículos en los cuales el campo "descripcion" no tienen "H" ni "W": select * from articulos where descripcion not regexp '[hw]'; 6- Seleccione las descripciones que contengan una letra "s" seguida de un caracter cualquiera y luego una "n": select * from articulos where descripcion regexp 's.n';