Para buscar libros que contengan la cadena "Ma" usamos:
select titulo from libros where titulo regexp 'Ma';
Para buscar los autores que tienen al menos una "h" o una "k" o una "w" tipeamos:
select autor from libros where autor regexp '[hkw]';
Para buscar los autores que no tienen ni "h" o una "k" o una "w" tipeamos:
select autor from libros where autor not regexp '[hkw]';
Para buscar los autores que tienen por lo menos una de las letras de la "a" hasta la "d",
es decir, "a,b,c,d", usamos:
select autor from libros where autor regexp '[a-d]';
Para ver los títulos que comienzan con "A" tipeamos:
select titulo from libros where titulo regexp '^A';
Para ver los títulos que terminan en "HP" usamos:
select titulo from libros where titulo regexp 'HP$';
Para buscar títulos que contengan una "a" luego un caracter cualquiera y luego una "e"
utilizamos la siguiente sentencia:
select titulo from libros where titulo regexp 'a.e';
El punto (.) identifica cualquier caracter.
Podemos mostrar los títulos que contienen una "a" seguida de 2 caracteres y luego una "e":
select titulo from libros where titulo regexp 'a..e';
Para buscar autores que tengan 6 caracteres exactamente usamos:
select autor from libros where autor regexp '^......$';
Para buscar autores que tengan al menos 6 caracteres usamos:
select autor from libros where autor regexp '......';
Para buscar títulos que contengan 2 letras "a" usamos:
select titulo from libros where titulo regexp 'a.*a';
El asterisco indica que busque el caracter inmediatamente anterior, en este caso cualquiera porque hay un punto.
Problema Resuelto:
Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla, si existe.
Creamos la tabla:
create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30), editorial varchar(15), precio decimal(5,2) unsigned, primary key(codigo) );
Ingresamos algunos registros:
insert into libros (titulo,autor,editorial,precio) values('El aleph','Borges','Planeta',15.50); insert into libros (titulo,autor,editorial,precio) values('Martin Fierro','Jose Hernandez','Emece',22.90); insert into libros (titulo,autor,editorial,precio) values('Antologia poetica','J.L. Borges','Planeta',39); insert into libros (titulo,autor,editorial,precio) values('Aprenda PHP','Mario Molina','Emece',19.50); insert into libros (titulo,autor,editorial,precio) values('Cervantes y el quijote','Bioy Casare- J.L. Borges','Paidos',35.40); insert into libros (titulo,autor,editorial,precio) values('Manual de PHP', 'J.C. Paez', 'Paidos',19); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la piedra filosofal','J.K. Rowling','Paidos',45.00); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la camara secreta','J.K. Rowling','Paidos',46.00); insert into libros (titulo,autor,editorial,precio) values('Alicia en el pais de las maravillas','Lewis Carroll','Paidos',36.00);
Para buscar libros cuyos títulos contengan la cadena "Ma" usamos:
select titulo from libros where titulo regexp 'Ma';
Retorna 4 registros.
Para buscar los registros cuyos autores tienen al menos una "h" o una "k" o una "w" tipeamos:
select titulo,autor from libros where autor regexp '[hkw]';
4 registros devueltos.
Para buscar los libros cuyos autores no tienen ni "h" o una "k" o una "w" tipeamos:
select titulo,autor from libros where autor not regexp '[hkw]';
Selecciona 5 registros.
Para buscar los autores que tienen por lo menos una de las letras de la "a" hasta la "d", es decir, "a,b,c,d", usamos:
select autor from libros where autor regexp '[a-d]';
Selecciona 7 registros.
Para ver los títulos que comienzan con "A" tipeamos:
select titulo from libros where titulo regexp '^A';
Devuelve 3 registros.
Para ver los títulos que terminan en "HP" usamos:
select titulo from libros where titulo regexp 'HP$';
Retorna 2 registros.
Para buscar títulos que contengan una "a" luego un caracter cualquiera y luego una "e" utilizamos la siguiente sentencia:
select titulo from libros where titulo regexp 'a.e';
Retorna 2 registros.
Podemos mostrar los títulos que contienen una "a" seguida de 2 caracteres y luego una "e":
select titulo from libros where titulo regexp 'a..e';
Selecciona 3 registros.
Para buscar autores que tengan 6 caracteres exactamente usamos:
select autor from libros where autor regexp '^......$';
Devuelve 1 registro.
Para buscar autores que tengan al menos 6 caracteres usamos:
select autor from libros where autor regexp '......';
Selecciona 9 registros.
Para buscar títulos que contengan 2 letras "a" usamos:
select titulo from libros where titulo regexp 'a.*a';
Selecciona 6 registros.
Problema Propuesto:
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": 5- Busque los nombres que no tienen "z" ni "g": 6- Busque los apellidos que tienen por lo menos una de las letras de la
"v" hasta la "z" (v,w,x,y,z): 7- Seleccione los apellidos que terminen en "ez": 8- Seleccione los apellidos, nombres y domicilios de los amigos cuyos
apellidos contengan 2 letras "i": 9- Seleccione los teléfonos que tengan 7 caracteres exactamente: 10- Seleccione el nombre y mail de todos los amigos cuyos mails
tengan al menos 20 caracteres:
Otros problemas:
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: 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": 5-Busque los artículos en los cuales el campo "descripcion" no tienen
"H" ni "W": 6- Seleccione las descripciones que contengan una letra "s" seguida de
un caracter cualquiera y luego una "n":
Muy bueno, Jhon. Para comprender la sintaxis de los patrones, genial
ResponderEliminar