{"id":2679,"date":"2012-11-22T18:43:00","date_gmt":"2012-11-22T17:43:00","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=2679"},"modified":"2014-11-24T12:54:12","modified_gmt":"2014-11-24T11:54:12","slug":"libro-gratuito-y-ejemplos-de-consultas-sql-para-aprender-y-practicar","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/libro-gratuito-y-ejemplos-de-consultas-sql-para-aprender-y-practicar\/","title":{"rendered":"Libro gratuito y ejemplos de consultas SQL para aprender y practicar."},"content":{"rendered":"<p style=\"text-align: justify;\">Los or\u00edgenes del SQL est\u00e1n ligados a los de las bases de datos relacionales. En 1970\u00a0<a title=\"Edgar Frank Codd\" href=\"http:\/\/es.wikipedia.org\/wiki\/Edgar_Frank_Codd\">E. F. Codd<\/a>\u00a0propone el\u00a0<a title=\"Modelo relacional\" href=\"http:\/\/es.wikipedia.org\/wiki\/Modelo_relacional\">modelo relacional<\/a>\u00a0y asociado a este un sublenguaje de acceso a los\u00a0<a title=\"Datos\" href=\"http:\/\/es.wikipedia.org\/wiki\/Datos\">datos<\/a>\u00a0basado en el c\u00e1lculo de predicados. Bas\u00e1ndose en estas ideas, los laboratorios de\u00a0<a title=\"IBM\" href=\"http:\/\/es.wikipedia.org\/wiki\/IBM\">IBM<\/a>\u00a0definen el lenguaje\u00a0<a title=\"SEQUEL\" href=\"http:\/\/es.wikipedia.org\/wiki\/SEQUEL\">SEQUEL<\/a>\u00a0(Structured English Query Language) que m\u00e1s tarde ser\u00eda ampliamente implementado por el\u00a0<a title=\"Sistema de gesti\u00f3n de bases de datos\" href=\"http:\/\/es.wikipedia.org\/wiki\/Sistema_de_gesti%C3%B3n_de_bases_de_datos\">sistema de gesti\u00f3n de bases de datos<\/a>\u00a0(SGBD) experimental System R, desarrollado en 1977 tambi\u00e9n por IBM. Sin embargo, fue\u00a0<a title=\"Oracle\" href=\"http:\/\/es.wikipedia.org\/wiki\/Oracle\">Oracle<\/a>\u00a0quien lo introdujo por primera vez en 1979 en un programa comercial.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<p style=\"text-align: justify;\">El SEQUEL terminar\u00eda siendo el predecesor de SQL, siendo este una versi\u00f3n evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos\u00a0<a title=\"Sistema de gesti\u00f3n de bases de datos\" href=\"http:\/\/es.wikipedia.org\/wiki\/Sistema_de_gesti%C3%B3n_de_bases_de_datos\">sistemas de gesti\u00f3n de bases de datos<\/a>\u00a0relacionales surgidos en los a\u00f1os siguientes y es por fin estandarizado en 1986 por el\u00a0<a title=\"ANSI\" href=\"http:\/\/es.wikipedia.org\/wiki\/ANSI\">ANSI<\/a>, dando lugar a la primera versi\u00f3n\u00a0<a title=\"Normalizaci\u00f3n\" href=\"http:\/\/es.wikipedia.org\/wiki\/Normalizaci%C3%B3n\">est\u00e1ndar<\/a>\u00a0de este lenguaje, el &#8220;SQL-86&#8221; o &#8220;SQL1&#8221;. Al a\u00f1o siguiente este est\u00e1ndar es tambi\u00e9n adoptado por la ISO.<\/p>\n<p style=\"text-align: justify;\">Sin embargo, este primer est\u00e1ndar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definici\u00f3n de almacenamiento que se consider\u00f3 suprimirlas. As\u00ed que, en\u00a0<a title=\"1992\" href=\"http:\/\/es.wikipedia.org\/wiki\/1992\">1992<\/a>, se lanz\u00f3 un nuevo est\u00e1ndar ampliado y revisado del SQL llamado &#8220;SQL-92&#8221; o &#8220;SQL2&#8221;.<\/p>\n<p style=\"text-align: justify;\">En la actualidad el SQL es el est\u00e1ndar\u00a0<em>de facto<\/em>\u00a0de la inmensa mayor\u00eda de los SGBD comerciales. Y, aunque la diversidad de a\u00f1adidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al est\u00e1ndar SQL-92 es general y muy amplio.<\/p>\n<p style=\"text-align: justify;\">El ANSI SQL sufri\u00f3 varias revisiones y agregados a lo largo del tiempo.<\/p>\n<p style=\"text-align: justify;\">Estas son las consultas para el aprendizaje con SQL-92 gen\u00e9rico.<\/p>\n<p><strong>1. Cuantas veces se ha alquilado el\/los libro\/s m\u00e1s caro y el t\u00edtulo del mismo.<\/strong><\/p>\n<p><span style=\"color: #000080;\">Select count(*), titulo<\/span><br \/>\n<span style=\"color: #000080;\">from libro l, prestamo p<\/span><br \/>\n<span style=\"color: #000080;\">where l.numero_libro=p.numero_libro and precio =(select * max(precio) from libro)<\/span><br \/>\n<span style=\"color: #000080;\">group by p.numero_libro, titulo;\u00a0<\/span><\/p>\n<p><strong>2. T\u00edtulo del libro que pas\u00f3 m\u00e1s tiempo sin estrenarse en la biblioteca.<\/strong><\/p>\n<p><span style=\"color: #000080;\">Select titulo<\/span><br \/>\n<span style=\"color: #000080;\">from libro l, prestamo p<\/span><br \/>\n<span style=\"color: #000080;\">where l.numero_libro=p.numero_libro<\/span><br \/>\n<span style=\"color: #000080;\">group by p.numero_libro,titulo<\/span><br \/>\n<span style=\"color: #000080;\">having min(fecha_prestamo) &#8211; fecha_compra &gt;= All (Select min(fecha_prestamo)- fecha_compra from libro l, prestamo p where l.numero_libro=p.numero_libro group by p.numero_libro, fecha_compra)<\/span><\/p>\n<p>Alternativa:<\/p>\n<p><span style=\"color: #000080;\">Select titulo, min(fecha_prestamo) primera_vez, fecha_compra<\/span><br \/>\n<span style=\"color: #000080;\">from libro l, prestamo p<\/span><br \/>\n<span style=\"color: #000080;\">where l.numero_libro=p.numero_libro<\/span><br \/>\n<span style=\"color: #000080;\">group by p.numero_libro,titulo,fecha_compra<\/span><br \/>\n<span style=\"color: #000080;\">into temp t1;<\/span><br \/>\n<span style=\"color: #000080;\">select titulo<\/span><br \/>\n<span style=\"color: #000080;\">from t1<\/span><br \/>\n<span style=\"color: #000080;\">where primera &#8211; fecha_compra&gt;= select max (primera-fecha_compra)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>3. Nombre de los socios que han alquilado alg\u00fan libro de Cela pero nunca han alquilado un libro de Delibes.<\/strong><\/p>\n<p><span style=\"color: #000080;\">Select nombre<\/span><br \/>\n<span style=\"color: #000080;\">from socio s, prestamo p, libro l<\/span><br \/>\n<span style=\"color: #000080;\">where s.dni_socio=p.dni_socio and p.num_libro= l.num_libro and autor=&#8221;Cela&#8221; and p.dni_socio &lt;&gt; all(select p.dni_socio from prestamo p, libro l, socio s where s.dni_socio=p.dni_socio and p.num_libro = l.num_libro and autor = &#8220;Delibes&#8221;)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>4. Pa\u00eds del que tenemos m\u00e1s libros (sin contar Espa\u00f1a).<\/strong><\/p>\n<p><span style=\"color: #000080;\">Select pais<\/span><br \/>\n<span style=\"color: #000080;\">from libro<\/span><br \/>\n<span style=\"color: #000080;\">where pais&lt;&gt;&#8221;Espa\u00f1a&#8221;<\/span><br \/>\n<span style=\"color: #000080;\">group by pais<\/span><br \/>\n<span style=\"color: #000080;\">having count(*)&gt;= all (select count(*) from libro where pais &lt;&gt; &#8220;Espa\u00f1a&#8221; group by pais)\u00a0<\/span><\/p>\n<p>Nota: Por favor, recuerda si te ha gustado, puedes contribuir con aportaciones publicitarias, \u00a0para caf\u00e9s al menos <img decoding=\"async\" class=\"wp-smiley\" src=\"http:\/\/www.palentino.es\/blog\/wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";-)\" \/><\/p>\n<p><strong>5. Nombre de las editoriales de las cuales no se ha alquilado ni un s\u00f3lo libro.<\/strong><\/p>\n<p><span style=\"color: #000080;\">Select editorial<\/span><br \/>\n<span style=\"color: #000080;\">from libro<\/span><br \/>\n<span style=\"color: #000080;\">where editorial&lt;&gt; all (select editorial from libro l, prestamo where l.num_libro=p.num_libro)\u00a0<\/span><\/p>\n<h2><\/h2>\n<p><strong>Descarga el\u00a0<a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2012\/11\/ejemplos-sql.pdf\" target=\"_blank\">Libro de ejemplos SQL en pdf<br \/>\n<\/a><\/strong><span style=\"color: #993300;\">Nota: Por favor, recuerda si te ha gustado, puedes contribuir con aportaciones publicitarias, \u00a0para caf\u00e9s al menos <img decoding=\"async\" class=\"wp-smiley\" src=\"http:\/\/www.palentino.es\/blog\/wp-includes\/images\/smilies\/icon_wink.gif\" alt=\";-)\" \/><\/span><strong><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2012\/11\/ejemplos-sql.pdf\" target=\"_blank\"><br \/>\n<\/a><\/strong><\/p>\n<h3><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Los or\u00edgenes del SQL est\u00e1n ligados a los de las bases de datos relacionales. En 1970\u00a0E. F. Codd\u00a0propone el\u00a0modelo relacional\u00a0y asociado a este un sublenguaje de acceso a los\u00a0datos\u00a0basado en el c\u00e1lculo de predicados. Bas\u00e1ndose en estas ideas, los laboratorios de\u00a0IBM\u00a0definen el lenguaje\u00a0SEQUEL\u00a0(Structured English Query Language) que m\u00e1s tarde ser\u00eda ampliamente implementado por el\u00a0sistema de gesti\u00f3n de bases de datos\u00a0(SGBD) experimental System R, desarrollado en 1977 tambi\u00e9n por IBM. Sin embargo, fue\u00a0Oracle\u00a0quien lo introdujo por primera vez en 1979 en un programa comercial.<\/p>\n","protected":false},"author":1,"featured_media":2683,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40,295],"tags":[],"class_list":["post-2679","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bases-de-datos","category-sql-2"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/2679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=2679"}],"version-history":[{"count":14,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/2679\/revisions"}],"predecessor-version":[{"id":7418,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/2679\/revisions\/7418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/2683"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=2679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=2679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=2679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}