Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use banco; -- Se usa para no tener que escribir select * from banco.nombre_tabla
- use Farmacia;
- select *
- from cliente; -- Muestra los datos de la tabla cliente
- select *
- from impositor
- order by numero_cuenta; -- Muestra la tabla impositor ordenando según el orden de la columna numero_cuenta
- select *
- from prestamo order by importe desc; -- Por defecto, el orden es descendente, pero se puede modificar para que sea ascendente
- select count(*)
- from prestamo; -- Muestra el número de filas que cumplen los requisitos
- select nombre_sucursal
- from prestamo; -- Consulta básica; muestra la columna nombre_sucursal de la tabla prestamo
- select distinct nombre_sucursal
- from prestamo; -- Muestra la columna nombre_sucursal de la tabla prestamo sin duplicados
- select nombre_sucursal, numero_prestamo
- from prestamo; -- Muestra las columnas nombre_sucursal y numero_prestamo de la tabla prestamo
- select nombre_sucursal, (importe * 25) / 100
- from prestamo; -- Muestra la columna nombre_sucursal y una columna con el cálculo formulado para cada uno de sus datos
- select nombre_sucursal, importe, (importe * 25) / 100 as p25
- from prestamo; -- Muestra la columna nombre_sucursal, importe y una columna con el cálculo para cada uno de sus datos, mostrando el resultado en una columna nombrada p25
- select sysdate(); -- Muestra la fecha y hora del sistema
- select month(sysdate()); -- Muestra el mes de la fecha del sistema
- select date_format(sysdate(), '%Y'); -- Muestra el año de la fecha del sistema
- select date_format(sysdate(), '%d/%m/%y'); -- Muestra el día, mes y hora de la fecha del sistema, especificando el orden
- select str_to_date('25/1/2019', '%d/%m/%y'); -- Pasa un string a fecha
- insert into cliente (id, fecha_alta)
- values (7, str_to_date('25/12/2019', '%d/%m/%y')); -- Ejemplo para insertar un string en un campo de una tabla que solo adite fecha
- -- CLÁUSULA WHERE
- select numero_prestamo
- from prestamo
- where nombre_sucursal = 'Paseo Alfonso X' and importe > 240; -- Muestra los valores de la columna numero_prestamo de la tabla prestamo que tienen de nombre PAseo Alfonso X y tienen un valor en importe mayor a 240
- select numero_prestamo
- from prestamo
- where nombre_sucursal = 'Paseo Alfonso X' and importe >= 10000;
- select numero_prestamo
- from prestamo
- where importe >= 60000 and importe <= 3000000;
- select numero_prestamo
- from prestamo
- where importe between 60000 and 3000000; -- Equivalente a la consulta de arriba
- -- CLÁUSULA FROM
- select *
- from prestamo, prestatario; -- Muestra todos los campos de las tablas prestamo y prestatario. Muestra 36 resultados porque se obtiene un producto cartesiano; para hacerlo correctamente deberían de obtenerse 6 resultados
- select *
- from prestamo, prestatario
- where prestamo.numero_prestamo = prestatario.numero_prestamo; -- Tiene que coincidir porque se referencian en el relacional. Con esto evitaos el producto cartesiano y obtenemos únicamente 6 resultados
- select
- nombre_sucursal,
- prestamo.numero_prestamo as numero, -- No es necesario poner el as, pero es recomendable, ya que facilita la comprensión y lectura
- prestatario.numero_prestamo as numero_prestamo_del_prestatario
- from
- prestamo, prestatario
- where
- prestamo.numero_prestamo = prestatario.numero_prestamo;
- select prestamo. *
- from prestamo; -- Muestra todas las columnas de la(s) tabla(s) introducida(s) delante del asterisco
- select nombre_cliente, importe
- from prestatario, prestamo;
- select
- nombre_cliente, importe
- from
- prestamo, prestatario
- where
- prestamo.numero_prestamo = prestatario.numero_prestamo;
- select
- prestatario.nombre_cliente, prestamo.*
- from
- prestamo, prestatario
- where
- prestatario.numero_prestamo =
- prestamo.numero_prestamo and
- nombre_sucursal = "Plza Camachos";
- -- Renombrar tabla
- select
- c.nombre_cliente as cliente, p.*
- from
- prestamo as p, prestatario as c
- where
- c.numero_prestamo =
- p.numero_prestamo and
- nombre_sucursal = "Paseo Alfonso X";
- select sum(saldo) -- Muestra el valor de la suma de los valores de la columna saldo
- from cuenta;
- select nombre_cliente, cuenta.*
- from impositor, cuenta
- where impositor.numero_cuenta = cuenta.numero_cuenta; -- Condición de reunión para evitar el producto cartesiano
- select distinct T.nombre_sucursal
- from sucursal as T, sucursal as S
- where T.activo > S.activo and
- S.ciudad_sucursal = "Barcelona";
- select activo
- from sucursal
- where nombre_sucursal = 'Plza Bastarreche';
- select s.*, basta.activo as activo_bastarreche
- from sucursal as s, sucursal as basta
- where basta.nombre_sucursal = 'Plza Bastarreche'
- and s.activo < basta.activo;
- -- Comparar cadenas de caracteres (VARCHAR)
- select *
- from sucursal
- where nombre_sucursal
- like 'Plza%'; -- El % sirve para indicar cualquier caracter, varios caracteres o cero caracteres
- select *
- from sucursal
- where nombre_sucursal
- like '_lza%'; -- El _ sirve para indicar un único caracter cualquiera
- use Farmacia;
- select *
- from farmacos
- where concentracion
- like '%\%%'; -- El \ sirve para indicar que el siguiente caracter special debe de usarse como un caracter
- select *
- from farmacos
- where upper(forma)
- like '%TABLETA%';
- select *
- from farmacos
- order by length(nombre);
- select concat('El cliente ', nombre_cliente, ' vive en ', calle_cliente) -- Es el equivalente a un .print en Java
- as direccion
- from cliente;
- select nombre, length(nombre) -- length obtiene como valor la longitud de cada valor de la columna nombre
- from farmacos
- order by length(nombre);
- select ' test ', length(' test '), ltrim(rtrim(' test ')), length(ltrim(rtrim(' test ')))
- from farmacos
- order by length(nombre); -- ltrim elimina los espacios de la izquierda; rtrim de la derecha
- -- A UNION B ---> Todo el contenido de A y B
- -- A INTERSECT B ---> El contenido que comparten A y B
- -- A MINUS B ---> Todo el contenido de A menos el que coincide con B
- select *
- from farmacos
- where forma_simpl = 'Suspension' or forma_simpl = 'Tableta';
- select *
- from farmacos
- where forma_simpl = 'Suspension'
- union select *
- from farmacos
- where forma_simpl = 'Tableta'; -- Es equivalente a la consulta de arriba
- select distinct forma
- from farmacos
- where forma_simpl = 'Suspension' or forma_simpl = 'Tableta';
- select forma
- from farmacos
- where forma_simpl = 'Suspension'
- union
- select forma
- from farmacos
- where forma_simpl = 'Tableta'; -- Es equivalente a usar el distinct de arriba
- select ciudad_cliente
- from cliente
- union
- select ciudad_sucursal
- from sucursal; -- Union sirve para consultar a la vez datos de diferentes tablas
- select ciudad_cliente, ciudad_sucursal -- Da error puesto que no se puede hacer una unión de dos columnas con una, deben de tener la misma cantidad
- from cliente
- union
- select ciudad_sucursal
- from sucursal;
- select avg(saldo)
- from sucursal, cuenta
- where ciudad_sucursal = 'Murcia'; -- ASÍ NO CABRA
- select avg(saldo)
- from cuenta as c, sucursal as s
- where c.nombre_sucursal = s.nombre_sucursal
- and s.ciudad_sucursal = 'Murcia'; -- ASÍ SI CABRA
- select nombre_cliente, cuenta.numero_cuenta, saldo -- OJO HAY QUE ESPECIFICAR DE QUE TABLA ES NUMERO_CUENTA
- from cuenta, impositor
- where cuenta.numero_cuenta = impositor.numero_cuenta;
- select nombre_cliente, importe, prestamo.numero_prestamo
- from prestatario, prestamo
- where prestatario.numero_prestamo = prestamo.numero_prestamo;
- -- Nombre de cliente, ciudad de cliente, número de cuenta y saldo
- select min(nombre_cliente), c.ciudad_cliente, d.numero_cuenta, saldo
- from cliente as c, impositor as i, cuenta as d
- where c.nombre_cliente = i.nombre_cliente
- and i.numero_cuenta = d.numero_cuenta;
- -- Nombre cliente, ciudad cliente, numero prestamo, importe
- select c.nombre_cliente, ciudad_cliente, p.numero_prestamo, importe
- from cliente c, prestatario i, prestamo p
- where c.nombre_cliente = i.nombre_cliente
- and i.numero_prestamo = p.numero_prestamo;
- -- Nombre de cliente, núemero de cuenta, saldo, nombre sucursal, ciudad sucursal
- select nombre_cliente, c.numero_cuenta, c.saldo, s.nombre_sucursal, ciudad_sucursal
- from impositor as i, cuenta as c, sucursal as s
- where i.numero_cuenta = c.numero_cuenta
- and c.nombre_sucursal = s.nombre_sucursal
- order by nombre_cliente, c.numero_cuenta;
- -- Nombre de cliente, ciudad de cliente, número de cuenta, saldo, nombre sucursal, ciudad sucursal
- select cl.nombre_cliente, ciudad_cliente, c.numero_cuenta, saldo, s.nombre_sucursal, ciudad_sucursal
- from cliente as cl, impositor as i, cuenta as c, sucursal as s
- where cl.nombre_cliente = i.nombre_cliente
- and i.numero_cuenta = c.numero_cuenta
- and c.nombre_sucursal = s.nombre_sucursal
- order by nombre_cliente, c.numero_cuenta;
- -- Importe medio de los prestamos de las sucursales de Murcia
- select avg(importe)
- from prestamo as p, sucursal as s
- where p.nombre_sucursal = s.nombre_sucursal
- and s.ciudad_sucursal = 'Murcia';
- -- Agrupaciones
- select nombre_sucursal, avg(saldo)
- from cuenta
- group by nombre_sucursal; -- Fusiona todos los datos que tengan el ismo valor en nombre_sucursal
- select nombre_sucursal, sum(saldo) as total
- from cuenta
- group by nombre_sucursal
- order by total desc;
- select numero_cuenta, avg(saldo) -- No se puede agrupar por el nombre de sucursal, ya que
- from cuenta -- los datos pueden venir de más de una cuenta distinta
- group by nombre_sucursal;
- -- having
- select nombre_sucursal, avg(saldo) as saldo_medio
- from cuenta
- group by nombre_sucursal
- having saldo_medio > 20000;
- select count(saldo)
- from cuenta;
- select nombre_sucursal, avg(saldo) as saldo_medio
- from cuenta
- where nombre_sucursal like 'P%'
- group by nombre_sucursal
- having saldo_medio > 60000;
- select impositor.nombre_cliente, avg(saldo)
- from impositor, cuenta, cliente
- where impositor.numero_cuenta = cuenta.numero_cuenta
- and impositor.nombre_cliente = cliente.nombre_cliente
- and ciudad_cliente = 'Murcia'
- group by impositor.nombre_cliente
- having count(distinct impositor.numero_cuenta) >= 1;
- -- Nombre cliente, saldo total en cuentas e importe total en préstamos
- select i.nombre_cliente, sum(saldo), sum(importe)
- from impositor as i, cuenta as c, prestamo as p, prestatario as b
- where i.numero_cuenta = c.numero_cuenta and
- p.numero_prestamo = b.numero_prestamo
- group by nombre_cliente;
Advertisement
Add Comment
Please, Sign In to add comment