JuanMtz

Apuntes_Consultas_1

Jan 10th, 2020
669
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 10.16 KB | None | 0 0
  1. use banco; -- Se usa para no tener que escribir select * from banco.nombre_tabla
  2. use Farmacia;
  3.  
  4. select *
  5. from cliente; -- Muestra los datos de la tabla cliente
  6.  
  7. select *
  8. from impositor
  9. order by numero_cuenta; -- Muestra la tabla impositor ordenando según el orden de la columna numero_cuenta
  10.  
  11. select *
  12. from prestamo order by importe desc; -- Por defecto, el orden es descendente, pero se puede modificar para que sea ascendente
  13.  
  14. select count(*)
  15. from prestamo; -- Muestra el número de filas que cumplen los requisitos
  16.  
  17. select nombre_sucursal
  18. from prestamo; -- Consulta básica; muestra la columna nombre_sucursal de la tabla prestamo
  19.  
  20. select distinct nombre_sucursal
  21. from prestamo; -- Muestra la columna nombre_sucursal de la tabla prestamo sin duplicados
  22.  
  23. select nombre_sucursal, numero_prestamo
  24. from prestamo; -- Muestra las columnas nombre_sucursal y numero_prestamo de la tabla prestamo
  25.  
  26. select nombre_sucursal, (importe * 25) / 100
  27. from prestamo; -- Muestra la columna nombre_sucursal y una columna con el cálculo formulado para cada uno de sus datos
  28.  
  29. select nombre_sucursal, importe, (importe * 25) / 100 as p25
  30. 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
  31.  
  32. select sysdate(); -- Muestra la fecha y hora del sistema
  33.  
  34. select month(sysdate()); -- Muestra el mes de la fecha del sistema
  35.  
  36. select date_format(sysdate(), '%Y'); -- Muestra el año de la fecha del sistema
  37.  
  38. select date_format(sysdate(), '%d/%m/%y'); -- Muestra el día, mes y hora de la fecha del sistema, especificando el orden
  39.  
  40. select str_to_date('25/1/2019', '%d/%m/%y'); -- Pasa un string a fecha
  41.  
  42. insert into cliente (id, fecha_alta)
  43. 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
  44.  
  45. -- CLÁUSULA WHERE
  46.  
  47. select numero_prestamo
  48. from prestamo
  49. 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
  50.  
  51. select numero_prestamo
  52. from prestamo
  53. where nombre_sucursal = 'Paseo Alfonso X' and importe >= 10000;
  54.  
  55. select numero_prestamo
  56. from prestamo
  57. where importe  >= 60000 and importe <= 3000000;
  58.  
  59. select numero_prestamo
  60. from prestamo
  61. where importe between 60000 and 3000000; -- Equivalente a la consulta de arriba
  62.  
  63. -- CLÁUSULA FROM
  64.  
  65. select *
  66. 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
  67.  
  68. select *
  69. from prestamo, prestatario
  70. 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
  71.  
  72. select
  73.     nombre_sucursal,
  74.     prestamo.numero_prestamo as numero, -- No es necesario poner el as, pero es recomendable, ya que facilita la comprensión y lectura
  75.     prestatario.numero_prestamo as numero_prestamo_del_prestatario
  76. from
  77.     prestamo, prestatario
  78. where
  79.     prestamo.numero_prestamo = prestatario.numero_prestamo;
  80.    
  81. select prestamo. *
  82. from prestamo; -- Muestra todas las columnas de la(s) tabla(s) introducida(s) delante del asterisco
  83.  
  84. select nombre_cliente, importe
  85. from prestatario, prestamo;
  86.  
  87. select
  88.     nombre_cliente, importe
  89. from
  90.     prestamo, prestatario
  91. where
  92.     prestamo.numero_prestamo = prestatario.numero_prestamo;
  93.    
  94. select
  95.     prestatario.nombre_cliente, prestamo.*
  96. from
  97.     prestamo, prestatario
  98. where
  99.     prestatario.numero_prestamo =
  100.     prestamo.numero_prestamo and
  101.     nombre_sucursal = "Plza Camachos";
  102.    
  103. -- Renombrar tabla
  104. select
  105.     c.nombre_cliente as cliente, p.*
  106. from
  107.     prestamo as p, prestatario as c
  108. where
  109.     c.numero_prestamo =
  110.     p.numero_prestamo and
  111.     nombre_sucursal = "Paseo Alfonso X";
  112.    
  113. select sum(saldo) -- Muestra el valor de la suma de los valores de la columna saldo
  114. from cuenta;
  115.  
  116. select nombre_cliente, cuenta.*
  117. from impositor, cuenta
  118. where impositor.numero_cuenta = cuenta.numero_cuenta; -- Condición de reunión para evitar el producto cartesiano
  119.  
  120. select distinct T.nombre_sucursal
  121. from sucursal as T, sucursal as S
  122. where T.activo > S.activo and
  123. S.ciudad_sucursal = "Barcelona";
  124.  
  125. select activo
  126. from sucursal
  127. where nombre_sucursal = 'Plza Bastarreche';
  128.  
  129. select s.*, basta.activo as activo_bastarreche
  130. from sucursal as s, sucursal  as basta
  131. where basta.nombre_sucursal = 'Plza Bastarreche'
  132. and s.activo < basta.activo;
  133.  
  134. -- Comparar cadenas de caracteres (VARCHAR)
  135. select *
  136. from sucursal
  137. where nombre_sucursal
  138. like 'Plza%'; -- El % sirve para indicar cualquier caracter, varios caracteres o cero caracteres
  139.  
  140. select *
  141. from sucursal
  142. where nombre_sucursal
  143. like '_lza%'; -- El _ sirve para indicar un único caracter cualquiera
  144.  
  145. use Farmacia;
  146.  
  147. select *
  148. from farmacos
  149. where concentracion
  150. like '%\%%'; -- El \ sirve para indicar que el siguiente caracter special debe de usarse como un caracter
  151.  
  152. select *
  153. from farmacos
  154. where upper(forma)
  155. like '%TABLETA%';
  156.  
  157. select *
  158. from farmacos
  159. order by length(nombre);
  160.  
  161. select concat('El cliente ', nombre_cliente, ' vive en ', calle_cliente) -- Es el equivalente a un .print en Java
  162. as direccion
  163. from cliente;
  164.  
  165. select nombre, length(nombre) -- length obtiene como valor la longitud de cada valor de la columna nombre
  166. from farmacos
  167. order by length(nombre);
  168.  
  169. select '   test   ', length('   test   '), ltrim(rtrim('   test   ')), length(ltrim(rtrim('   test   ')))
  170. from farmacos
  171. order by length(nombre); -- ltrim elimina los espacios de la izquierda; rtrim de la derecha
  172.  
  173. -- A UNION B ---> Todo el contenido de A y B
  174. -- A INTERSECT B ---> El contenido que comparten A y B
  175. -- A MINUS B ---> Todo el contenido de A menos el que coincide con B
  176.  
  177. select *
  178. from farmacos
  179. where forma_simpl = 'Suspension' or forma_simpl = 'Tableta';
  180.  
  181. select *
  182. from farmacos
  183. where forma_simpl = 'Suspension'
  184. union select *
  185. from farmacos
  186. where forma_simpl = 'Tableta'; -- Es equivalente a la consulta de arriba
  187.  
  188. select distinct forma
  189. from farmacos
  190. where forma_simpl = 'Suspension' or forma_simpl = 'Tableta';
  191.  
  192. select forma
  193. from farmacos
  194. where forma_simpl = 'Suspension'
  195. union
  196. select forma
  197. from farmacos
  198. where forma_simpl = 'Tableta'; -- Es equivalente a usar el distinct de arriba
  199.  
  200. select ciudad_cliente
  201. from cliente
  202. union
  203. select ciudad_sucursal
  204. from sucursal; -- Union sirve para consultar a la vez datos de diferentes tablas
  205.  
  206. 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
  207. from cliente
  208. union
  209. select ciudad_sucursal
  210. from sucursal;
  211.  
  212. select avg(saldo)
  213. from sucursal, cuenta
  214. where ciudad_sucursal = 'Murcia'; -- ASÍ NO CABRA
  215.  
  216. select avg(saldo)
  217. from cuenta as c, sucursal as s
  218. where c.nombre_sucursal = s.nombre_sucursal
  219. and s.ciudad_sucursal = 'Murcia'; -- ASÍ SI CABRA
  220.  
  221. select nombre_cliente, cuenta.numero_cuenta, saldo -- OJO HAY QUE ESPECIFICAR DE QUE TABLA ES NUMERO_CUENTA
  222. from cuenta, impositor
  223. where cuenta.numero_cuenta = impositor.numero_cuenta;
  224.  
  225. select nombre_cliente, importe, prestamo.numero_prestamo
  226. from prestatario, prestamo
  227. where prestatario.numero_prestamo = prestamo.numero_prestamo;
  228.  
  229. -- Nombre de cliente, ciudad de cliente, número de cuenta y saldo
  230. select min(nombre_cliente), c.ciudad_cliente, d.numero_cuenta, saldo
  231. from cliente as c, impositor as i, cuenta as d
  232. where c.nombre_cliente = i.nombre_cliente
  233. and i.numero_cuenta = d.numero_cuenta;
  234.  
  235. -- Nombre cliente, ciudad cliente, numero prestamo, importe
  236. select c.nombre_cliente, ciudad_cliente, p.numero_prestamo, importe
  237. from cliente c, prestatario i, prestamo p
  238. where c.nombre_cliente = i.nombre_cliente
  239. and i.numero_prestamo = p.numero_prestamo;
  240.  
  241. -- Nombre de cliente, núemero de cuenta, saldo, nombre sucursal, ciudad sucursal
  242. select nombre_cliente, c.numero_cuenta, c.saldo, s.nombre_sucursal, ciudad_sucursal
  243. from impositor as i, cuenta as c, sucursal as s
  244. where i.numero_cuenta = c.numero_cuenta
  245. and c.nombre_sucursal = s.nombre_sucursal
  246. order by nombre_cliente, c.numero_cuenta;
  247.  
  248. -- Nombre de cliente, ciudad de cliente, número de cuenta, saldo, nombre sucursal, ciudad sucursal
  249. select cl.nombre_cliente, ciudad_cliente, c.numero_cuenta, saldo, s.nombre_sucursal, ciudad_sucursal
  250. from cliente as cl, impositor as i, cuenta as c, sucursal as s
  251. where cl.nombre_cliente = i.nombre_cliente
  252. and i.numero_cuenta = c.numero_cuenta
  253. and c.nombre_sucursal = s.nombre_sucursal
  254. order by nombre_cliente, c.numero_cuenta;
  255.  
  256. -- Importe medio de los prestamos de las sucursales de Murcia
  257. select avg(importe)
  258. from prestamo as p, sucursal as s
  259. where p.nombre_sucursal = s.nombre_sucursal
  260. and s.ciudad_sucursal = 'Murcia';
  261.  
  262. -- Agrupaciones
  263. select nombre_sucursal, avg(saldo)
  264. from cuenta
  265. group by nombre_sucursal; -- Fusiona todos los datos que tengan el ismo valor en nombre_sucursal
  266.  
  267. select nombre_sucursal, sum(saldo) as total
  268. from cuenta
  269. group by nombre_sucursal
  270. order by total desc;
  271.  
  272. select numero_cuenta, avg(saldo) -- No se puede agrupar por el nombre de sucursal, ya que
  273. from cuenta -- los datos pueden venir de más de una cuenta distinta
  274. group by nombre_sucursal;
  275.  
  276. -- having
  277. select nombre_sucursal, avg(saldo) as saldo_medio
  278. from cuenta
  279. group by nombre_sucursal
  280. having saldo_medio > 20000;
  281.  
  282. select count(saldo)
  283. from cuenta;
  284.  
  285. select nombre_sucursal, avg(saldo) as saldo_medio
  286. from cuenta
  287. where nombre_sucursal like 'P%'
  288. group by nombre_sucursal
  289. having saldo_medio > 60000;
  290.  
  291. select impositor.nombre_cliente, avg(saldo)
  292. from impositor, cuenta, cliente
  293. where impositor.numero_cuenta = cuenta.numero_cuenta
  294. and impositor.nombre_cliente = cliente.nombre_cliente
  295. and ciudad_cliente = 'Murcia'
  296. group by impositor.nombre_cliente
  297. having count(distinct impositor.numero_cuenta) >= 1;
  298.  
  299. -- Nombre cliente, saldo total en cuentas e importe total en préstamos
  300. select i.nombre_cliente, sum(saldo), sum(importe)
  301. from impositor as i, cuenta as c, prestamo as p, prestatario as b
  302. where i.numero_cuenta = c.numero_cuenta and
  303. p.numero_prestamo = b.numero_prestamo
  304. group by nombre_cliente;
Advertisement
Add Comment
Please, Sign In to add comment