<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5947290269907186218</atom:id><lastBuildDate>Thu, 19 Dec 2024 03:32:25 +0000</lastBuildDate><category>SQL</category><category>AVG</category><category>Base de Datos</category><category>Campos</category><category>Constraint</category><category>Consulta</category><category>Count</category><category>DCL</category><category>DDL</category><category>DISTINCT</category><category>DML</category><category>EXCEPT</category><category>Group By</category><category>HAVING</category><category>IN</category><category>INTERSECT</category><category>Indice</category><category>JOIN</category><category>LIKE</category><category>Max</category><category>Min</category><category>Modificar</category><category>ORDER BY</category><category>SUM</category><category>Select</category><category>Tipos de Datos</category><category>UNION</category><category>Update</category><category>WHERE</category><category>delete</category><category>insert</category><category>registros</category><category>truncate</category><title>Bases de Datos Jolunf</title><description>Bases de Datos y T-SQL todo sobre lo relacionado a este mundo muy importante.</description><link>http://basededatosysql.blogspot.com/</link><managingEditor>noreply@blogger.com (jolunf)</managingEditor><generator>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Bases de Datos y T-SQL todo sobre lo relacionado a este mundo muy importante.</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-7167762788162130649</guid><pubDate>Sat, 26 May 2012 00:14:00 +0000</pubDate><atom:updated>2012-05-25T17:14:52.641-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">EXCEPT</category><category domain="http://www.blogger.com/atom/ns#">INTERSECT</category><category domain="http://www.blogger.com/atom/ns#">UNION</category><title>Consultas III: UNION-EXCEPT-INTERSECT</title><description>&lt;span style="color: #666666;"&gt;&lt;b&gt;Consultas de operaciones con conjuntos.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;A partir de SQL Server 2005 se permiten tres tipos de operaciones con conjuntos: &lt;br /&gt;&lt;br /&gt;UNION: Disponible en todas las versiones de SQL Server, es ademas el mas usado.&lt;br /&gt;EXCEPT: Nuevo en SQL Server 2005. &lt;br /&gt;INTERSECT: Nuevo en SQL Server 2005. &lt;br /&gt;&lt;br /&gt;    Para utilizar operaciones de conjuntos debemos cumplir una serie de normas. &lt;br /&gt;Las consultas a unir deben tener el mismo número campos, y además los campos deben ser del mismo tipo. &lt;br /&gt;Sólo puede haber una única clausula ORDER BY al final de la sentencia SELECT. &lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;

&lt;b&gt;&lt;span style="color: #134f5c;"&gt;UNION&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;br /&gt;    UNION devuelve la suma de dos o más conjuntos de resultados.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;El conjunto obtenido como resultado de UNION tiene la misma estructura que los conjuntos originales.&lt;br /&gt;El siguiente ejemplo muestra el uso de UNION&lt;br /&gt; &lt;br /&gt;&lt;b&gt;
SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&lt;br /&gt;FROM EMPLEADOS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #666666;"&gt;UNION &lt;/span&gt;&lt;span style="color: #666666;"&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;span style="color: #666666;"&gt;&lt;b&gt;&lt;br /&gt;FROM CLIENTES
&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;    Cuando realizamos una consulta con UNION internamente se realiza una operacion DISTINCT sobre el conjunto de resultados final. Si queremos obtener todos los valores debemos utilizar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #666666;"&gt;UNION ALL.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;

&lt;b&gt;&lt;span style="color: #134f5c;"&gt;&amp;nbsp;UNION ALL&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;b&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&lt;br /&gt;FROM EMPLEADOS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #666666;"&gt;UNION&amp;nbsp;ALL&lt;/span&gt;&lt;span style="color: #666666;"&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;span style="color: #666666;"&gt;&lt;b&gt;&lt;br /&gt;FROM CLIENTES&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;

&lt;span style="color: #134f5c;"&gt;&lt;b&gt; EXCEPT&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;span style="color: #666666;"&gt;    EXCEPT devuelve la diferencia (resta) de dos o más conjuntos de resultados. El conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los conjuntos originales.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #666666;"&gt;El siguiente ejemplo muestra el uso de EXCEPT&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #666666;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;b&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&lt;br /&gt;FROM EMPLEADOS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #666666;"&gt;EXCEPT&lt;/span&gt;&lt;span style="color: #666666;"&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;span style="color: #666666;"&gt;&lt;b&gt;&lt;br /&gt;FROM CLIENTES&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #666666;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #666666;"&gt;
El uso de EXCEPT, como norma general, es mucho más rápido que utilizar condiciones NOT IN o EXISTS en la clausula WHERE.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;

&lt;span style="color: #134f5c;"&gt;&lt;b&gt; INTERSECT&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style="color: #666666;"&gt;Devuelve la intersección entre dos o más conjuntos de resultados en uno.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;El conjunto obtenido como resultado de INTERSECT tiene la misma estructura que los conjuntos originales.&lt;/span&gt;&amp;nbsp;&lt;span style="color: #666666;"&gt;El siguiente ejemplo muestra el uso de INTERSECT&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #666666;"&gt;&lt;b&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&lt;br /&gt;FROM EMPLEADOS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #666666;"&gt;INTERSECT&lt;/span&gt;&lt;span style="color: #666666;"&gt;SELECT Nombre, ApellPaterno , ApellMaterno, FechaNacimiento&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;span style="color: #666666;"&gt;&lt;b&gt;&lt;br /&gt;FROM CLIENTES&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/consultas-iii-union-except-intersect.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-3541145422770580833</guid><pubDate>Tue, 15 May 2012 16:32:00 +0000</pubDate><atom:updated>2012-05-15T09:34:23.929-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AVG</category><category domain="http://www.blogger.com/atom/ns#">Count</category><category domain="http://www.blogger.com/atom/ns#">Group By</category><category domain="http://www.blogger.com/atom/ns#">HAVING</category><category domain="http://www.blogger.com/atom/ns#">Max</category><category domain="http://www.blogger.com/atom/ns#">Min</category><category domain="http://www.blogger.com/atom/ns#">SUM</category><title>Consulta de Tablas II</title><description>&lt;h3&gt;
















&lt;b&gt;&lt;u&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;GROUP BY&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;En esta parte veremos a varias clausulas entre ellas al GROUP BY, que se encarga de agrupar los registros de una&amp;nbsp;selección&amp;nbsp;según&amp;nbsp;se le indique (suma, valor&amp;nbsp;mínimo&amp;nbsp;o&amp;nbsp;máximo...)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;
La clausula GROUP BY combina los registros devueltos por una consulta SELECT obteniendo uno o varios valores agregados(suma, valor mínimo y máximo ...).&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;    Para cada registro se puede crear un valor agregado si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Como recordaran la sintaxis es: &lt;br /&gt;&lt;br /&gt;&lt;b&gt;
SELECT [ALL | DISTINCT ] [TOP &amp;lt;n&amp;gt; [WITH TIES]]
             &amp;lt;nombre_campo&amp;gt; [{,&amp;lt;nombre_campo&amp;gt;}]
 [{,&amp;lt;funcion_agregado&amp;gt;}]&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;FROM &amp;lt;nombre_tabla&amp;gt;|&amp;lt;nombre_vista&amp;gt; 
        [{,&amp;lt;nombre_tabla&amp;gt;|&amp;lt;nombre_vista&amp;gt;}]&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;[WHERE &amp;lt;condicion&amp;gt; [{ AND|OR &amp;lt;condicion&amp;gt;}]]
[GROUP BY &amp;lt;nombre_campo&amp;gt; [{,&amp;lt;nombre_campo &amp;gt;}]]
[HAVING &amp;lt;condicion&amp;gt;[{ AND|OR &amp;lt;condicion&amp;gt;}]]
[ORDER BY &amp;lt;nombre_campo&amp;gt;|&amp;lt;indice_campo&amp;gt; [ASC | DESC]
       [{,&amp;lt;nombre_campo&amp;gt;|&amp;lt;indice_campo&amp;gt; [ASC | DESC ]}]] &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;    Si se utiliza GROUP BY pero no existe una función SQL agregada en la instrucción SELECT se obtiene el mismo resultado que con una consulta SELECT DISTINCT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. Sin embargo, los valores Null no se evalúan en ninguna de las funciones SQL agregadas.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;    Todos los campos de la lista de campos de SELECT deben incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
















&lt;b&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;u&gt;HAVING&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;HAVING&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;, esta clausula permita escoger solo algunos de la filas,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;    HAVING es parecido a WHERE, muestra qué registros se seleccionan pero&amp;nbsp;después&amp;nbsp;del agregado. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;La sintaxis es la siguiente:&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;SELECT CLIENTES.NOMBRE, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO1, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO2,
&lt;/span&gt;&lt;span style="color: #444444;"&gt;SUM(PRECIO)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;FROM DETALLE_PEDIDO
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN PEDIDOS
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON DETALLE_PEDIDO.CO_PEDIDO = PEDIDOS.CO_PEDIDO
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;WHERE CLIENTES.NOMBRE != 'UN NOMBRE'
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;GROUP BY CLIENTES.NOMBRE,&lt;/span&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;CLIENTES.APELLIDO1, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO2 &lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;HAVING SUM(PRECIO) &amp;gt; 100
&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
















&lt;b&gt;&lt;u&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;AVG&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguiente&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;AVG(&amp;lt;expr&amp;gt;) &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;   En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;SELECT CLIENTES.NOMBRE, &lt;/span&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;CLIENTES.APELLIDO1, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO2,A&lt;/span&gt;&lt;span style="color: #444444;"&gt;VG(PRECIO) &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;FROM DETALLE_PEDIDO
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN PEDIDOS
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON DETALLE_PEDIDO.CO_PEDIDO = PEDIDOS.CO_PEDIDO
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;GROUP BY CLIENTES.NOMBRE, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO1, &lt;/span&gt;&lt;span style="color: #444444;"&gt;CLIENTES.APELLIDO2
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;u&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;
















&lt;b&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;u&gt;COUNT&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Count, como indica su nombre cuenta las filas que existen en el resultado o la tabla&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;COUNT(&amp;lt;expr&amp;gt;)&lt;/span&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;El siguiente ejemplo realiza una "cuenta" de los datos que hay en la tabla PRODUCTOS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SELECT COUNT(*) FROM PRODUCTOS&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Otro Ejemplo&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;SELECT COUNT(*) FROM PEDIDOS
&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Otro mas:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;
SELECT CLIENTES.NOMBRE, COUNT(*)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM PEDIDOS&lt;br /&gt;INNER JOIN CLIENTES&amp;nbsp;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE&lt;br /&gt;GROUP BY CLIENTES.NOMBRE
&lt;/span&gt;&lt;/b&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
















&lt;u&gt;&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;MAX, MIN&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;    Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;
MIN(&amp;lt;expr&amp;gt;) 
 MAX(&amp;lt;expr&amp;gt;) &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;SELECT CLIENTES.NOMBRE, &lt;/span&gt;&lt;span style="color: #444444;"&gt;MIN(PEDIDOS.FX_ALTA),
&lt;/span&gt;&lt;span style="color: #444444;"&gt;MAX(PEDIDOS.FX_ALTA)
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;FROM PEDIDOS
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;GROUP BY CLIENTES.NOMBRE
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
















&lt;span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;u&gt;SUM&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;    Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;
SUM(&amp;lt;expr&amp;gt;)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;     En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;SELECT CLIENTES.NOMBRE, &lt;/span&gt;&lt;span style="color: #444444;"&gt;SUM(PEDIDOS.TOTAL_PEDIDO)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;FROM PEDIDOS
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES
&lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;GROUP BY CLIENTES.NOMBRE
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Uso de Select TOP con consultas agregadas.     Podemos utilizar SELECT TOP con consultas agregadas como con cualquier otra instruccion Transact SQL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;     En estos casos, la clausula TOP se aplica despues de calcular el agregado, devolviendo las N filas indicadas.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;     En este escenario es posible que queramos obtener los N valores que satisfagan una condicion. Por ejemplo, queremos si queremos obtener los tres primeros clientes con mayores pedidos, usariamos una consulta parecida a esta:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;SELECT TOP 3 
 CLIENTES.NOMBRE, 
 SUM(DETALLE_PEDIDO.PRECIO)
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;FROM DETALLE_PEDIDO
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN PEDIDOS&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;ON DETALLE_PEDIDO.CO_PEDIDO = PEDIDOS.CO_PEDIDO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES &lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;GROUP BY CLIENTES.NOMBRE
&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;ORDER BY 2 -- SUM(DETALLE_PEDIDO.PRECIO_UNIDAD)
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Sin embargo, puede darse el caso, de que el cuarto cliente devuelto por la consulta tenga un valor agragado identico al tercero, (es decir, estan empatados). El uso de TOP 3 discriminaría el cuarto registro. Para evitar este comportamiento, y que la consulta devuelva también al cuarto cliente utilizamos la clausula WITH TIES.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;SELECT TOP 3 WITH TIES 
 CLIENTES.NOMBRE, 
 SUM(DETALLE_PEDIDO.PRECIO)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #444444;"&gt;FROM DETALLE_PEDIDO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN PEDIDOS&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;ON DETALLE_PEDIDO.CO_PEDIDO = PEDIDOS.CO_PEDIDO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;INNER JOIN CLIENTES &lt;/span&gt;&lt;span style="color: #444444;"&gt;ON PEDIDOS.CO_CLIENTE = CLIENTES.CO_CLIENTE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;GROUP BY CLIENTES.NOMBRE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #444444;"&gt;ORDER BY 2 -- SUM(DETALLE_PEDIDO.PRECIO_UNIDAD)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;Algunas Tablas para recordar:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th colspan="2"&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Operadores matemáticos:&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Mayor que&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Menor que&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;gt;=&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Mayor o igual que&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;=&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Menor o igual que&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Distinto&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;=&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: #134f5c; font-family: Arial, Helvetica, sans-serif;"&gt;Igual&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br style="background-color: #e1e5ef; font-size: 12px; line-height: 18px; text-align: left;" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Operadores lógicos&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;And&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Or&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Not&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br style="background-color: #e1e5ef; font-size: 12px; line-height: 18px; text-align: left;" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th colspan="2"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Otros operadores&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Like&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Selecciona los registros cuyo valor de campo se asemeje, no teniendo en cuenta mayúsculas y minúsculas.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;In y Not In&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Da un conjunto de valores para un campo para los cuales la condición de selección es (o no) valida&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Is Null y Is Not Null&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Selecciona aquellos registros donde el campo especificado esta (o no) vacío.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Between...And&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Selecciona los registros comprendidos en un intervalo&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Distinct&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Selecciona los registros no coincidentes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Desc&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Clasifica los registros por orden inverso&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br style="background-color: #e1e5ef; font-size: 12px; line-height: 18px; text-align: left;" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th colspan="2"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Comodines&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sustituye a todos los campos&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sustituye a cualquier cosa o nada dentro de una cadena&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;_&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sustituye un solo carácter dentro de una cadena&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Función&lt;/span&gt;&lt;/th&gt;&lt;th align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Descripción&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sum(campo)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Calcula la suma de los registros del campo especificado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Avg(Campo)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Calcula la media de los registros del campo especificado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Count(*)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Nos proporciona el valor del numero de registros que han sido seleccionados&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Max(Campo)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Nos indica cual es el valor máximo del campo&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Min(Campo)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Nos indica cual es el valor mínimo del campo&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="texto" style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/consulta-de-tablas-ii.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-3557047044054032079</guid><pubDate>Mon, 14 May 2012 23:08:00 +0000</pubDate><atom:updated>2012-05-14T16:19:05.924-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Consulta</category><category domain="http://www.blogger.com/atom/ns#">DISTINCT</category><category domain="http://www.blogger.com/atom/ns#">IN</category><category domain="http://www.blogger.com/atom/ns#">JOIN</category><category domain="http://www.blogger.com/atom/ns#">LIKE</category><category domain="http://www.blogger.com/atom/ns#">ORDER BY</category><category domain="http://www.blogger.com/atom/ns#">Select</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><category domain="http://www.blogger.com/atom/ns#">WHERE</category><title>Consulta de Tablas I</title><description>&lt;span style="color: #444444;"&gt;Para seleccionar Datos es importante conocer la palabra: SELECT&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;SELECT&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;La sentencia SELECT permite consultar los datos almacenados en la tabla deseada de la base de datos con la que se trabaja.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;La sintaxis es simple:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT&amp;nbsp;
&amp;lt;nombre_campos&amp;gt;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&amp;lt;nombre_tabla&amp;gt; WHERE&amp;nbsp;&amp;lt;condicion&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;Sin embargo para aquellos que ya&amp;nbsp;conozcan&amp;nbsp;un poco de sintaxis SQL pueden tomar como base esta sentencia mas completa:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT [ALL | DISTINCT ][ TOP expression [ PERCENT ] [ WITH TIES ] ]&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;             &amp;lt;nombre_campos&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM &amp;lt;nombre_tabla&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;[ INNER | LEFT [OUTER]| RIGHT [OUTER] | CROSS]&lt;/b&gt;&lt;b&gt;[JOIN ] &amp;lt;nombre_tabla&amp;gt; ON &amp;lt;condicion_join&amp;gt;[ AND|OR &amp;lt;condicion&amp;gt;]&lt;/b&gt;&lt;b&gt;[WHERE &amp;lt;condicion&amp;gt; [ AND|OR &amp;lt;condicion&amp;gt;]]&lt;/b&gt;&lt;b&gt;[GROUP BY &amp;lt;nombre_campos&amp;gt;]&lt;/b&gt;&lt;b&gt;[HAVING &amp;lt;condicion&amp;gt;[ AND|OR &amp;lt;condicion&amp;gt;]]&lt;/b&gt;&lt;b&gt;[ORDER BY &amp;lt;nombre_campo&amp;gt; [ASC | DESC]&lt;/b&gt;&lt;b&gt;La cláusula WHERE&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Poco a poco iremos viendo cada una de estas sentencias, mientras solo veremos la primera forma.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;El ejemplo a&amp;nbsp;continuación&amp;nbsp;muestra una consulta sencilla y simple de&amp;nbsp;selección&amp;nbsp;de datos (todas las filas existentes) de una tabla llamada CURSOS, obtendremos el&amp;nbsp;código&amp;nbsp;y el nombre del curso.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT COD_CURSO, NOM_CURSO&amp;nbsp;FROM CURSO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Podemos&amp;nbsp;también&amp;nbsp;modificar los nombres de los campos por el uso de un asterisco, el uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la tabla (ojo todas las columnas no todas las filas).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;SELECT *&amp;nbsp;FROM&amp;nbsp;
CURSO&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;INNER JOIN&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Ahora seleccionaremos no solo el curso sino&amp;nbsp;también el profesor y la sede&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT *&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM CURSO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;INNER JOIN PROFESOR&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;ON&amp;nbsp;
PROFESOR&amp;nbsp;.COD_PROFESOR = CURSO.COD_PROFESOR&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;INNER JOIN SEDES&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;ON&amp;nbsp;
SEDES&amp;nbsp;.COD_SEDE=&amp;nbsp;
CURSO&amp;nbsp;.COD_SEDE&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;La combinación se realiza a través de la clausula INNER JOIN, que es una clasula exclusiva, es decir los cursos que no tengan profesores&amp;nbsp;y sedes asociadas no se&amp;nbsp;devolverán.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;






&lt;span style="color: #45818e; font-size: large;"&gt;&lt;u&gt;LEFT JOIN&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Si queremos realizar la consulta para que no sea exclusiva, tenemos que utilizar LEFT JOIN. El uso de la palabra reservada OUTER es opcional.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT *&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM CURSO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;LEFT&amp;nbsp;OUTER&amp;nbsp;&amp;nbsp;JOIN PROFESOR&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;ON&amp;nbsp; PROFESOR&amp;nbsp;.COD_PROFESOR = CURSO.COD_PROFESOR&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;LEFT&amp;nbsp;JOIN SEDES&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;ON&amp;nbsp;&amp;nbsp;SEDES&amp;nbsp;.COD_SEDE=&amp;nbsp;&amp;nbsp;CURSO&amp;nbsp;.COD_SEDE&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Los registros que no tengan datos relacionados en una consulta LEFT JOIN devolveran en valor null en los campos que correspondan a las tablas en las que no tienen dato.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;CROSS JOIN&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;También podemos forzar un producto cartesiano (todos con todos) a través de CROSS JOIN.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;SELECT * FROM&amp;nbsp;&lt;/b&gt;&lt;b&gt;CURSO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;CROSS JOIN&amp;nbsp;&lt;/b&gt;&lt;b&gt;PROFESOR&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;WHERE&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Gracias a la clausula WHERE podemos filtrar los resultados de nuestro query, veamos su uso.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT COD_CURSO, NOM_CURSO&amp;nbsp;FROM CURSO&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;COD_CURSO&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;span style="color: #444444;"&gt;= 1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Podemos especificar varias condiciones para el WHERE:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT COD_CURSO, NOM_CURSO&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM CURSO&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;COD_CURSO&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;= 1&lt;/span&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;OR&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;COD_CURSO&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;= 2&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;La clausula WHERE se puede utilizar conjuntamente con INNER JOIN, LEFT JOIN ...&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;SELECT *&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;FROM CURSO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;INNER JOIN PROFESOR&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;ON&amp;nbsp; PROFESOR&amp;nbsp;.COD_PROFESOR = CURSO.COD_PROFESOR&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;CURSO&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;.&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;COD_CURSO&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #444444;"&gt;&amp;nbsp;&amp;gt; 1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Siempre que incluyamos un valor alfanumerico para un campo en la condición WHERE este debe ir entre comillas simples:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT *&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;CURSO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;WHERE&amp;nbsp;&amp;nbsp;NOM_CURSO&amp;nbsp;= 'CURSO 1'&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;IN&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Gracias al IN es posible consultar varios valores en una sola condicion.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;SELECT *&amp;nbsp;&lt;/b&gt;&lt;b&gt;FROM CURSO&amp;nbsp;&lt;/b&gt;&lt;b&gt;WHERE&amp;nbsp;&amp;nbsp;COD_CURSO&amp;nbsp;IN&amp;nbsp;(1,2)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;&lt;span style="color: #45818e;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Otra herramienta muy buena es la clausula LIKE que sirve para consultar campos&amp;nbsp;alfanuméricos&amp;nbsp;no exactos sino por&amp;nbsp;aproximación.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;b&gt;SELECT *&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b style="color: #444444;"&gt;FROM&amp;nbsp;&lt;/b&gt;
&lt;b style="color: #444444;"&gt;CURSO&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;b style="color: #444444;"&gt;WHERE NOM_CURSO LIKE 'CURSO %'&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Los comodines que podemos utilizar en son los siguientes:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;% , representa cualquier cadena de texto de cero o más caracteres de cualquier longitud.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;_ , representa un caracter.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;[a-d], representa cualquier caracter del intervalo a-d.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;[abcd], representa cualquier caracter del grupo abcd.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;[^a-d], representa cualquier caracter diferente del intervalo a-d.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;[^abcd], representa cualquier caracter distinto del grupo abcd.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;DISTINCT&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;También podemos obtener los valores distintos utilizando DISTINCT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT DISTINCT&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;span style="color: #444444;"&gt;NOM_&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;CURSO&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="color: #444444;"&gt;CURSO&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Devuelve los distintos nombres de Curso (no se repiten)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;TOP&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Podemos limitar el número de registros que devuelve la consulta a través de la clausula TOP. La clausula TOP admite como parámetros un valor numérico entero o un porcentaje (sólo a partir de la version 2005)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT TOP 10 *&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;CURSO&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Devuelve 10 registros&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT TOP 50 PERCENT *&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="color: #444444;"&gt;CURSO&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Devuelve el 50% de los registros&lt;/span&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;La clausula TOP se puede combinar con WITH TIES en consultas agregadas.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;






&lt;u&gt;&lt;span style="color: #45818e; font-size: large;"&gt;ORDER BY&lt;/span&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;span style="color: #444444;"&gt;Podemos especificar el orden en el que serán devueltos los datos a través de la cláusula ORDER BY.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT COD_
CURSO, NOM_CURSO&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;CURSO&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;ORDER BY&amp;nbsp;
NOM_CURSO&amp;nbsp;DESC&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;También podemos indicar el índice del campo en la lista de selección en lugar de su nombre :&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #444444;"&gt;SELECT COD_&amp;nbsp;CURSO, NOM_CURSO&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;FROM&amp;nbsp;CURSO &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #444444;"&gt;ORDER BY&amp;nbsp;&amp;nbsp;2 DESC&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #444444;"&gt;Ordena por nombre de Curso, porque en la&amp;nbsp;selección&amp;nbsp;es la columna numero 2.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/consulta-de-tablas-i.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-3264722545735065150</guid><pubDate>Thu, 10 May 2012 17:12:00 +0000</pubDate><atom:updated>2012-05-10T10:14:18.131-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">delete</category><category domain="http://www.blogger.com/atom/ns#">truncate</category><title>Borrar Datos: Delete</title><description>&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Delete&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Para poder eliminar los datos de una tabla es necesaria la sentencia DELETE.&lt;br /&gt;
La sintaxis es asi:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;DELETE&amp;nbsp;FROM&amp;nbsp;PAÍS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Esta sentencia borrara todas las filas de la tabla&amp;nbsp;PAÍS&lt;br /&gt;
También&amp;nbsp;podemos especificar que registros deseamos borrar a travez de la ya conocida pero aun no especificada clausula WHERE.&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;DELETE FROM&amp;nbsp;PAÍS&amp;nbsp;WHERE Id= '01'&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Un dato Importante&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
Cuando borramos datos de una tabla, podemos obtener el número de filas que han sido afectadas por la instrucción a través de la variable @@RowCount.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo ilustra el uso de @@RowCount.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DELETE FROM&amp;nbsp;PAÍS&amp;nbsp;WHERE Id=17&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SELECT @@ROWCOUNT&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Clausula OUTPUT&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DECLARE @FILAS_BORRADAS TABLE&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;( &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Id int,dato varchar(100),fx_alta datetime&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;DELETE FROM&amp;nbsp;&lt;/b&gt;&lt;b&gt;PAÍS&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;OUTPUT DELETED.* INTO @FILAS_BORRADAS&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;WHERE Id=17&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SELECT &amp;nbsp;* &amp;nbsp;from @FILAS_BORRADAS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Truncate Table&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Tiene la misma&amp;nbsp;función&amp;nbsp;que DELETE sin el WHERE.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;TRUNCATE TABLE&amp;nbsp;PAÍS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Cuando trabajamos con TRUNCATE TABLE debemos tener en cuenta las siguientes consideraciones:&lt;br /&gt;
TRUNCATE TABLE no admite la clausula WHERE.&lt;br /&gt;
No podemos ejecutar TRUNCATE TABLE sobre tablas que sean "padres" en foreign keys.&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/borrar-datos-delete.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-851087306663613890</guid><pubDate>Thu, 10 May 2012 17:03:00 +0000</pubDate><atom:updated>2012-05-10T10:04:06.907-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Update</category><title>Modificar Registros: Update</title><description>Para modificar los datos SQL provee una palabra reservada llamada UPDATE, esta sentencia permite la&amp;nbsp;fácil&amp;nbsp;actualización&amp;nbsp;de uno o mas registros&amp;nbsp;según&amp;nbsp;sea el caso. La sintaxis&amp;nbsp;es la siguiente:&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE &amp;lt;nombre_tabla&amp;gt; &lt;br /&gt;SET  &amp;lt;campo1&amp;gt; = &amp;lt;valor1&amp;gt;&lt;br /&gt;    {[,&amp;lt;campo2&amp;gt; = &amp;lt;valor2&amp;gt;,...,&amp;lt;campoN&amp;gt; = &amp;lt;valorN&amp;gt;]}&lt;br /&gt;[ WHERE &amp;lt;condicion&amp;gt;]&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora un Ejemplo:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE CLIENTES&lt;br /&gt;SET&lt;br /&gt;NOMBRE = 'Devjoker',&lt;br /&gt;APELLIDO1 = 'Herrarte',&lt;br /&gt;APELLIDO2 = 'Sánchez'&lt;br /&gt;WHERE CO_CLIENTE = 10&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Update INNER JOIN&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
En ocasiones queremos actaualizar los datos de una tabla con los datos de otra (muy común para desnormalizar un modelo de datos).&lt;br /&gt;
Habitualmente, usamos subconsultas para este proposito, pero Transact SQL permite la utilización de la sentencia UPDATE INNER JOIN.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE CLIENTES&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SET&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOMBRE = FICHERO_CLIENTES.NOMBRE,&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO1 = FICHERO_CLIENTES.APELLIDO1,&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO2 = FICHERO_CLIENTES.APELLIDO2&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;FROM CLIENTES&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;INNER JOIN FICHERO_CLIENTES &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;ON FICHERO_CLIENTES.CO_CLIENTE = CLIENTES.CO_CLIENTE &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Clausula OUTPUT&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A partir de la version de SQL Server 2005 disponemos de la clausula OUTPUT para recuperar los valores que hemos insertado. Al igual que en un trigger disponemos de las tablas lógicas INSERTED y DELETED.&lt;br /&gt;
Las columnas con prefijo DELETED reflejan el valor antes de que se complete la instrucción UPDATE o DELETE. Es decir, son una copia de los datos "antes" del cambio.&lt;br /&gt;
DELETED no se puede utilizar con la cláusula OUTPUT en la instrucción INSERT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DECLARE @FILAS_ACTUALIZADAS TABLE&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;( CO_CLIENTE int ,&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOMBRE varchar(100),&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO1 varchar(100),&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO2 varchar(100)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;)&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;UPDATE CLIENTES&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SET&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOMBRE = 'Devjoker',&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO1 = 'Herrarte',&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO2 = 'Sánchez'&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;OUTPUT DELETED.* INTO @FILAS_ACTUALIZADAS&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;WHERE CO_CLIENTE IN (10, 11, 12)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SELECT * FROM @FILAS_ACTUALIZADAS&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Las columnas con prefijo INSERTED reflejan el valor después de que se complete la instrucción UPDATE o INSERT, pero antes de que se ejecuten los desencadenadores. Es decir, son una copia de los datos "despues" del cambio.&lt;br /&gt;
INSERTED no se puede utilizar con la cláusula OUTPUT en la instrucción DELETE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DECLARE @FILAS_ACTUALIZADAS TABLE&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;( CO_CLIENTE int ,&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOMBRE varchar(100),&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO1 varchar(100),&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO2 varchar(100)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;) &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;UPDATE CLIENTES&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SET&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;NOMBRE = 'Devjoker',&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO1 = 'Herrarte',&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;APELLIDO2 = 'Sánchez'&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;OUTPUT INSERTED.* INTO @FILAS_ACTUALIZADAS&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;WHERE CO_CLIENTE IN (10, 11, 12)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SELECT * FROM @FILAS_ACTUALIZADAS&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/modificar-registros-update.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-2740020496250918109</guid><pubDate>Thu, 10 May 2012 16:55:00 +0000</pubDate><atom:updated>2012-05-10T09:58:08.384-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">insert</category><category domain="http://www.blogger.com/atom/ns#">registros</category><title>Nuevo Registro: Añadir Filas</title><description>Bueno, añadir registros es muy sencillo, ahora veremos 3 maneras de agregar registros y un valor agregado que veremos mas adelante,&amp;nbsp;empecemos.&lt;br /&gt;
&lt;div&gt;
&lt;h3&gt;


&lt;b&gt;Inserción individual de filas.&lt;/b&gt;&lt;/h3&gt;
La&amp;nbsp;inserción&amp;nbsp;individual de filas es la mas antigua y la mas&amp;nbsp;común, su sentencia es INSERT INTO, y su sintaxis completa la vemos a&amp;nbsp;continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;INSERT INTO &amp;lt;nombre_tabla&amp;gt; &lt;br /&gt;[(&amp;lt;campo1&amp;gt;[,&amp;lt;campo2&amp;gt;,...])]&lt;br /&gt;values &lt;br /&gt;(&amp;lt;valor1&amp;gt;,&amp;lt;valor2&amp;gt;,...)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra la inserción de un registro en la tabla PRECIOS.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;INSERT INTO MERCADERIA &lt;br /&gt;(CODIGO, DESCRIPCION, MARCA, FABRICA)&lt;br /&gt;VALUES&lt;br /&gt;('M01', 'Polos de varon','UNAMARCA', 'Textiles Polos')&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;


&lt;b&gt;Inserción&amp;nbsp;múltiple de filas.&lt;/b&gt;&lt;/h3&gt;
También es posible insertar en una tabla el resultado de una consulta SELECT. De este modo se insertarán tantas filas como haya devuelto la consulta SELECT.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra la inserción multiple de filas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;INSERT INTO MERCADERIA&lt;/b&gt;
&lt;b&gt;(CODIGO, DESCRIPCION, MARCA, FABRICA)&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;br /&gt;SELECT&amp;nbsp;&lt;/b&gt;
&lt;b&gt;(CODIGO, DESCRIPCION, MARCA, FABRICA)&amp;nbsp;&lt;/b&gt;&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;FROM DETALLE_PEDIDO &lt;/b&gt;&lt;br /&gt;
&lt;h3&gt;


&lt;b&gt;Inserción de valores por defecto.&lt;/b&gt;&lt;/h3&gt;
También podemos forzar a que la insercción se realice con los datos por defecto establecidos para la tabla (o null si no tienen valores por defecto).&lt;br /&gt;
&lt;br /&gt;
INSERT INTO PRECIOS DEFAULT VALUES&lt;br /&gt;
&lt;br /&gt;
En SQL Sever podemos marcar un campo de una tabla como autonumérico (identity), cuando insertamos un registro en dicha tabla el valor del campo se genera automaticamente. Para recuperar el valor generado disponemos de varios métodos:&lt;br /&gt;
Utilizar la funcion @@identity, que devuelve el último valor identidad insertado por la&amp;nbsp;transacción:&lt;br /&gt;
&lt;br /&gt;
DECLARE @Codigo int&lt;br /&gt;
INSERT INTO PRECIOS &lt;br /&gt;
(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)&lt;br /&gt;
VALUES&amp;nbsp;(10, getdate(),getdate()+30, 1)&lt;br /&gt;
set @Codigo = @@Identity&lt;br /&gt;
PRINT @Codigo&lt;br /&gt;
&lt;br /&gt;
El uso de @@Identity no siempre es válido, ya que al devolver el úlitmo valor identidad insertado por la transacción, no nos garantiza que el valor haya sido insertado en la tabla que nos interesa (por ejemplo la tabla podría tener un trigger que insertara datos en otra tabla con campos identidad).&lt;br /&gt;
En este tipo de escenarios debemos utilizar la función, SCOPE_IDENTITY.&lt;br /&gt;
&lt;br /&gt;
DECLARE @Codigo int &lt;br /&gt;
INSERT INTO PRECIOS &lt;br /&gt;
(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)&lt;br /&gt;
VALUES&amp;nbsp;(10, getdate(),getdate()+30, 1) &lt;br /&gt;
SET @Codigo = SCOPE_IDENTITY()&lt;br /&gt;
PRINT @Codigo &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Clausula OUTPUT&lt;/b&gt;&lt;br /&gt;
Ahora lo prometido, a partir de la version de SQL Server 2005 disponemos de la clausula OUTPUT para recuperar los valores que hemos insertado. Al igual que en un trigger disponemos de las tablas lógicas INSERTED y DELETED.&lt;br /&gt;
&lt;br /&gt;
Las columnas con prefijo DELETED reflejan el valor antes de que se complete la instrucción UPDATE o DELETE. Es decir, son una copia de los datos "antes" del cambio.&lt;br /&gt;
&lt;br /&gt;
DELETED no se puede utilizar con la cláusula OUTPUT en la instrucción INSERT.&lt;br /&gt;
&lt;br /&gt;
Las columnas con prefijo INSERTED reflejan el valor después de que se complete la instrucción UPDATE o INSERT, pero antes de que se ejecuten los desencadenadores. Es decir, son una copia de los datos "despues" del cambio.&lt;br /&gt;
&lt;br /&gt;
INSERTED no se puede utilizar con la cláusula OUTPUT en la instrucción DELETE.&lt;br /&gt;
Entonces del siguiente modo:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
DECLARE @FILAS_INSERTADAS TABLE&lt;br /&gt;
( CO_PRECIO int, PRECIO decimal, FX_INICIO datetime, FX_FIN datetime, CO_PRODUCTO int&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
INSERT INTO PRECIOS &lt;br /&gt;
(PRECIO, FX_INICIO, FX_FIN, CO_PRODUCTO)&lt;br /&gt;
OUTPUT INSERTED.* INTO @FILAS_INSERTADAS&lt;br /&gt;
VALUES&amp;nbsp;(10, getdate(),getdate()+30, 1)&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM @FILAS_INSERTADAS&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/nuevo-registro-anadir-filas.html</link><author>noreply@blogger.com (jolunf)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-3957732038985139761</guid><pubDate>Thu, 10 May 2012 16:31:00 +0000</pubDate><atom:updated>2012-05-10T09:31:12.761-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Constraint</category><category domain="http://www.blogger.com/atom/ns#">Indice</category><category domain="http://www.blogger.com/atom/ns#">Modificar</category><title>Constraints, Indices y Modificaciones al diseño de la Tabla</title><description>Ya vimos como crear una nueva tabla, lo que vamos a ver ahora es como agregarle a nuestra tabla Constraints y ademas hacerle modificaciones.&lt;br /&gt;
Recordemos:&lt;br /&gt;
&lt;br /&gt;
Creación de Tablas Nuevas&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE tabla ( &lt;br /&gt;
campo1 tipo (tamaño) índice1, &lt;br /&gt;
campo2 tipo (tamaño) índice2,... , &lt;br /&gt;
índice multicampo , ... )&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: #e1e5ef; text-align: left;"&gt;&lt;/span&gt;En donde:&lt;br /&gt;
&lt;div style="background-color: #e1e5ef; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;
&lt;/div&gt;
&lt;table align="center" border="1" style="background-color: #e1e5ef; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;tabla&lt;/td&gt;&lt;td&gt;Es el nombre de la tabla que se va a crear.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;campo1&lt;br /&gt;
campo2&lt;/td&gt;&lt;td&gt;Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tipo&lt;/td&gt;&lt;td&gt;Es el tipo de datos de campo en la nueva tabla. (&lt;a href="http://basededatosysql.blogspot.com/2012/05/tipos-de-campo-y-de-datos-sql.html" style="color: #0000cc; text-decoration: none;" target="_blank"&gt;Ver Tipos de Datos&lt;/a&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tamaño&lt;/td&gt;&lt;td&gt;Es el tamaño del campo.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;índice1&lt;br /&gt;
índice2&lt;/td&gt;&lt;td&gt;Es una cláusula CONSTRAINT que define el tipo de índice a crear. Esta cláusula en opcional.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;índice multicampos&lt;/td&gt;&lt;td&gt;Es una cláusula CONSTRAINT que define el tipo de índice multicampos a crear. Un índice multicampo es aquel que está indexado por el contenido de varios campos. Esta cláusula es opcional.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Ahora veamos el siguiente ejemplo.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
Ejemplo:&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;Vamos a simular una base de datos para un negocio de alquiler de coches, por lo que vamos a empezar creando una tabla para almacenar los coches que tenemos&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;CREATE TABLE&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&amp;nbsp;tCoches&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;(&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;matricula&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char(8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;not null&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;marca&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varchar(255)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;modelo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; varchar(255)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;color&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varchar(255)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;numero_kilometros&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; numeric(14,2)&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;null default&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&amp;nbsp;0,&lt;/span&gt;&lt;br /&gt;
&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;constraint&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;PK_Coches&lt;/span&gt;&lt;b style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;&lt;span class="sizetrece"&gt;&amp;nbsp;primary key&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;(matricula)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;)&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta caso se utilizo lo que se llama un constraint esto crea una nueva&amp;nbsp;condición&amp;nbsp;en la tabla se puede crear un costraint al momento de crear la tabla o como veremos mas adelante cuando se modifica.&lt;br /&gt;
La sintaxis es:&lt;br /&gt;
Para los índices de campos múltiples:&lt;br /&gt;
&lt;br /&gt;
CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) | &lt;br /&gt;
UNIQUE (único1[, único2 [, ...]]) | &lt;br /&gt;
FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa &lt;br /&gt;
[(campo externo1 ,campo externo2 [,...])]}&lt;br /&gt;
&lt;br /&gt;
En donde:&lt;br /&gt;
&lt;div style="background-color: #e1e5ef; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;
&lt;/div&gt;
&lt;table align="center" border="1" style="background-color: #e1e5ef; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;nombre&lt;/td&gt;&lt;td&gt;Es el nombre del índice que se va a crear.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;primarioN&lt;/td&gt;&lt;td&gt;Es el nombre del campo o de los campos que forman el índice primario.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;únicoN&lt;/td&gt;&lt;td&gt;Es el nombre del campo o de los campos que forman el índice de clave única.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;refN&lt;/td&gt;&lt;td&gt;Es el nombre del campo o de los campos que forman el índice externo (hacen referencia a campos de otra tabla).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;tabla externa&lt;/td&gt;&lt;td&gt;Es el nombre de la tabla que contiene el campo o los campos referenciados en refN&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;campos externos&lt;/td&gt;&lt;td&gt;Es el nombre del campo o de los campos de la tabla externa especificados por ref1, ref2,... , refN&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: verdana, arial, helvetica, sans-serif;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;También:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #e1e5ef; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;
&lt;/div&gt;
&lt;table align="center" border="1" style="background-color: #e1e5ef; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Indice&lt;/td&gt;&lt;td&gt;Descripción&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;UNIQUE&lt;/td&gt;&lt;td&gt;Indica que los valores de la columna en referencia deben ser&amp;nbsp;únicos.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PRIMARY KEY&lt;/td&gt;&lt;td&gt;Genera un índice primario el campo o los campos especificados. Todos los campos de la clave principal deben ser únicos y no nulos, cada tabla sólo puede contener una única clave principal.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;FOREIGN KEY&lt;/td&gt;&lt;td&gt;Genera un índice externo (toma como valor del índice campos contenidos en otras tablas). Si la clave principal de la tabla externa consta de más de un campo, se debe utilizar una definición de índice de múltiples campos, listando todos los campos de referencia, el nombre de la tabla externa, y los nombres de los campos referenciados en la tabla externa en el mismo orden que los campos de referencia listados. Si los campos referenciados son la clave principal de la tabla externa, no tiene que especificar los campos referenciados, predeterminado por valor, el motor Jet se comporta como si la clave principal de la tabla externa estuviera formada por los campos referenciados.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
En ocasiones puede ser necesario modificar la estructura de una tabla, comúnmente para añadir un campo o&amp;nbsp;restricción. Para ello disponemos de la instruccción ALTER TABLE.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;ALTER TABLE nos va a permitir:&amp;nbsp;&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Añadir campos a la estructura&amp;nbsp;inicial&amp;nbsp;de una tabla.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Añadir&amp;nbsp;restricciones&amp;nbsp;y referencias.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Para añadir un campo a una tabla existente,&amp;nbsp;Esta es la sintaxis:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ALTER TABLE &amp;lt;nombre_tabla&amp;gt;&lt;br /&gt;ADD &amp;lt;nombre_campo&amp;gt; &amp;lt;tipo_datos(tamaño)&amp;gt;&lt;br /&gt;[null |not null] [default &amp;lt;valor_por_defecto&amp;gt;]&lt;br /&gt;{&lt;/div&gt;
&lt;div&gt;
, &amp;lt;nombre_campo&amp;gt; &amp;lt;tipo_datos(tamaño)&amp;gt;&lt;br /&gt;[null |not null] [default &amp;lt;valor_por_defecto&amp;gt;]} &lt;br /&gt;&lt;br /&gt;Por Ejemplo para nuestra tabla coches:&lt;br /&gt;&lt;br /&gt;ALTER TABLE tCoches&lt;br /&gt;ADD num_plazas integer null default 5&lt;br /&gt;&lt;br /&gt;En este ejemplo añadimos el campo num_plazas a la tabla tCoches.&lt;br /&gt;&lt;br /&gt;Para añadir una clave primaria vamos a crear una tabla de cliente y le añadiremos la clave primaria ejecutando una sentencia alter table:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE TABLE tClientes&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;(
codigo &amp;nbsp; &amp;nbsp; &amp;nbsp;integer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;not null,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;nombre &amp;nbsp; &amp;nbsp; varchar(255) &amp;nbsp;not null,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;apellidos &amp;nbsp; varchar(255) &amp;nbsp;null,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;nif &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; varchar(10) &amp;nbsp; &amp;nbsp;null,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;telefono &amp;nbsp; &amp;nbsp;varchar(9) &amp;nbsp; &amp;nbsp; &amp;nbsp; null,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;movil &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;varchar(9) &amp;nbsp; &amp;nbsp; &amp;nbsp; null&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;ALTER TABLE tClientes&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
ADD CONSTRAINT&lt;b&gt; PK_tClientes&lt;/b&gt; &amp;nbsp;primary key (codigo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     Creamos la tabla clientes y le añadimos una reestricción primary key a la que damos el nombre PK_tClientes en el campo codigo.
&lt;br /&gt;&lt;br /&gt;    Solo podemos modificar una única tabla a la vez con ALTER TABLE, para modificar más de una tabla debemos ejecutar una sentencia ALTER TABLE por tabla.
&lt;br /&gt;&lt;br /&gt;    Para añadir una clave externa (o foranea) necesitamos una tercera tabla en nuestra estructura. Por un lado tenemos la tabla tCoches y la tabla tClientes, ahora vamos a crear la tabla tAlquileres que será la encargada de "decirnos" que clientes han alquilado un coche.
&lt;br /&gt;&lt;br /&gt;CREATE TABLE tAlquileres&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(
codigo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;integer &amp;nbsp; not null,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; codigo_cliente &amp;nbsp; &amp;nbsp;integer &amp;nbsp; &amp;nbsp;not null,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; matricula &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;char(8) &amp;nbsp; not null,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; fx_alquiler &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datetime not null,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; fx_devolucion &amp;nbsp; &amp;nbsp;datetime null&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
)&lt;br /&gt;&lt;br /&gt;ALTER TABLE tAlquileres&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
ADD 
CONSTRAINT PK_tAlquileres &lt;b&gt;primary key&lt;/b&gt; (codigo),&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONSTRAINT FK_Clientes &lt;b&gt;foreign key&lt;/b&gt; (codigo_cliente)
                       &lt;b&gt;references &lt;/b&gt;tClientes (Codigo),&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONSTRAINT FK_Coches &lt;b&gt;foreign key&lt;/b&gt; (matricula)
                     &lt;b&gt;references &lt;/b&gt;tCoches (matricula);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;

&lt;br /&gt;Bien, en este código creamos la tabla tAlquileres, y luego mediante una sentencia ALTER TABLE añadimos una clave primaria llamada PK_tAlquileres en el campo codigo, una clave externa llamada FK_Clientes referenciada al codigo de la tabla tClientes, y por último otra clave externa llamada FK_Coches referenciada al campo matricula de la tabla tCoches.
&lt;br /&gt;&lt;br /&gt;Nota:Cuando creamos una clave externa el campo referenciado y el que sirve de referencia deben ser del mismo tipo de datos.
Si somos observadores nos daremos cuenta que los campos que sirven de referencia a las claves foraneas son las claves primarias de sus tablas. Sólo podemos crear claves externas que referencien claves primarias.&lt;br /&gt;&lt;br /&gt;Al igual que ocurria con la sentencia CREATE TABLE cada gestor de bases de datos implementa sus mejoras, siendo la mejor forma de conocerlas recurrir a la documentación del gestor de bases de datos.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Podemos eliminar los constraint y los PK y FK si utilizamos la sentencia DROP.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Por Ejemplo:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ALTER TABLE&lt;br /&gt;Pedidos&lt;br /&gt;DROP CONSTRAINT&amp;nbsp;RelacionPedidos&lt;br /&gt;(Elimina el índice de la tabla Pedidos.)
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
O tambien podemos agregar columnas y eliminarlas&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
ALTER TABLE &lt;br /&gt;Empleados &lt;br /&gt;ADD COLUMN Salario numeric(5,2)&lt;br /&gt;(Agrega un campo Salario de tipo Moneda a la tabla Empleados.)&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
ALTER TABLE &lt;br /&gt;    Empleados &lt;br /&gt;DROP COLUMN Salario &lt;br /&gt;(Elimina el campo Salario de la tabla Empleados.)&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;div&gt;
&lt;b&gt;Eliminación de tablas.
&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Podemos eliminar una tabla de una base de datos mediante la instruccion DROP TABLE.
&lt;br /&gt;La sintaxis es&amp;nbsp;así:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
DROP TABLE &amp;lt;nombre_tabla&amp;gt;;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;La instrucción DROP TABLE elimina de forma permanente la tabla y los datos en ella contenida.
&lt;br /&gt;&lt;br /&gt;Si intentamos eliminar una tabla que tenga registros relacionados a través de una clave externa la instrucción DROP TABLE fallará por integridad referencial. Es decir por restricciones en sus relaciones porque cuando eliminamos una tabla eliminamos también sus índices.
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKxzZ98xkt8cicTF-8NLWcz4FELqVkhjhElLU5oJpmJNVWzhG_H4Ki-BXitX7X_aW6jkmQTCL7UJQpUo1Tr4Pv1g6hgoyDF4fmtwNqxf_QYlgR9seEjCuSwF3CS7fzoWA6uPkcKyCRj9c/s1600/create-logo-the-power-of-future.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKxzZ98xkt8cicTF-8NLWcz4FELqVkhjhElLU5oJpmJNVWzhG_H4Ki-BXitX7X_aW6jkmQTCL7UJQpUo1Tr4Pv1g6hgoyDF4fmtwNqxf_QYlgR9seEjCuSwF3CS7fzoWA6uPkcKyCRj9c/s320/create-logo-the-power-of-future.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: Tahoma, 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 13px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/constraints-indices-y-modificaciones-al.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKxzZ98xkt8cicTF-8NLWcz4FELqVkhjhElLU5oJpmJNVWzhG_H4Ki-BXitX7X_aW6jkmQTCL7UJQpUo1Tr4Pv1g6hgoyDF4fmtwNqxf_QYlgR9seEjCuSwF3CS7fzoWA6uPkcKyCRj9c/s72-c/create-logo-the-power-of-future.jpg" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-107574947122581258</guid><pubDate>Mon, 07 May 2012 17:51:00 +0000</pubDate><atom:updated>2012-05-08T07:03:09.429-07:00</atom:updated><title>Creación de Tablas.</title><description>Actualmente los SGBD poseen editores&amp;nbsp;prácticos&amp;nbsp;y de&amp;nbsp;rápido&amp;nbsp;uso que permiten la&amp;nbsp;creación&amp;nbsp;de tabla sin mayor esfuerzo. Aun con todo esto, es necesario en muchas&amp;nbsp;ocasiones&amp;nbsp;crear tablas a nuestra medida de forma manual, por ejemplo cuando necesitamos crear tablas temporales, es muy&amp;nbsp;útil&amp;nbsp;conocer las sentencias requeridas para este fin.&lt;br /&gt;
&lt;br /&gt;
SQL provee el lenguaje adecuado para poder crear nuevas tablas.&lt;br /&gt;
&lt;br /&gt;
Bueno, para crear la tabla debemos de indicar los datos de esta, es decir su nombre, los nombres de los campos y sus&amp;nbsp;características&amp;nbsp;(tipo y capacidad). Ademas de indicar cuales de estos campos son PK (Primary Key).&lt;br /&gt;
&lt;br /&gt;
La sintaxis del lenguaje puede variar de un SGBD a otro debido a las variedades anteriormente estudiadas.&lt;br /&gt;
Sin mas&amp;nbsp;preámbulo&amp;nbsp;la sintaxis de&amp;nbsp;creación&amp;nbsp;de una tabla.&lt;br /&gt;
&lt;br /&gt;
Create Table nombre_tabla&lt;br /&gt;
(&lt;br /&gt;
nombre_campo_1 &amp;nbsp; &amp;nbsp;tipo_1&lt;br /&gt;
nombre_campo_2 &amp;nbsp; &amp;nbsp;tipo_2&lt;br /&gt;
nombre_campo_n &amp;nbsp; &amp;nbsp;tipo_n&lt;br /&gt;
Key(campo_x,...)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Ahora crearemos por ejemplo la tabla PRUEBA con sus atributos, Nombre, Tipo, fecha, resultado&lt;br /&gt;
&lt;br /&gt;
Create Table Prueba&lt;br /&gt;
(&lt;br /&gt;
id_prueba &amp;nbsp; &amp;nbsp; INT(4) &amp;nbsp; NOT NULL &amp;nbsp;IDENTITY,&lt;br /&gt;
Nombre &amp;nbsp; &amp;nbsp; &amp;nbsp; INT(4) &amp;nbsp; ,&lt;br /&gt;
Tipo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INT(4) &amp;nbsp; ,&lt;br /&gt;
fecha &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DATE,&lt;br /&gt;
resultado &amp;nbsp; &amp;nbsp; &amp;nbsp;INT(4),&lt;br /&gt;
, KEY(id_pedido)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Bueno creamos la tabla con sus campos&amp;nbsp;específicos y estos con sus respectivos atributos&amp;nbsp;y ademas creamos un campo clave identity. Este campo identity se incrementa&amp;nbsp;según&amp;nbsp;se creen nuevos registro, se incrementa siempre que hayan nuevos registros. Los&amp;nbsp;números&amp;nbsp;entre&amp;nbsp;paréntesis&amp;nbsp;indica el numero de caracteres que puede&amp;nbsp;abarcar&amp;nbsp;este numero o cadena&amp;nbsp;según&amp;nbsp;sea el caso.&lt;br /&gt;
&lt;br /&gt;
Por otro lado como ya debemos de saber (es lo&amp;nbsp;mínimo&amp;nbsp;que debemos de saber) un campo clave no puede ser nulo,&amp;nbsp;así&amp;nbsp;que le agregamos las palabras reservadas NOT NULL&lt;br /&gt;
&lt;br /&gt;
La fecha se puede almacenar en un Date o en un DateTime&amp;nbsp;según&amp;nbsp;sea el caso.&lt;br /&gt;
&lt;br /&gt;
Y el key es finalmente creado mediante esa sentencia, existen otras maneras&amp;nbsp;también&amp;nbsp;pero todas aportan algo y quitan algo, es depende del&amp;nbsp;criterio&amp;nbsp;para usarlas y de las necesidades que tengamos en&amp;nbsp;nuestra&amp;nbsp;aplicación.&lt;br /&gt;
&lt;br /&gt;
Otro ejemplo es la tabla Articulos:&lt;br /&gt;
&lt;br /&gt;
Create Table articulos&lt;br /&gt;
(&lt;br /&gt;
id_articulo INT(4) NOT NULL IDENTITY,&lt;br /&gt;
titulo VARCHAR(50),&lt;br /&gt;
autor VARCHAR(25),&lt;br /&gt;
editorial VARCHAR(25),&lt;br /&gt;
precio REAL,&lt;br /&gt;
KEY(id_articulo)&lt;br /&gt;
)
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0qVFz-QmR32qdu28m5-FCALSRQZER1K37MyX2zF5O6-CPTugr4KjBi3Gk95kVbl_NLfrUOt2VrDyALRQyigg8MAFWXIZWtHhTF1Eh4-PECH7Vqi55fEKLG6DP4_rcfw71JVm_q3SmnkQ/s1600/sql_injection.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0qVFz-QmR32qdu28m5-FCALSRQZER1K37MyX2zF5O6-CPTugr4KjBi3Gk95kVbl_NLfrUOt2VrDyALRQyigg8MAFWXIZWtHhTF1Eh4-PECH7Vqi55fEKLG6DP4_rcfw71JVm_q3SmnkQ/s320/sql_injection.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Bueno y para acabar algunos datos y sus&amp;nbsp;características.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: aquamarine; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;
&lt;/div&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th align="center"&gt;Tipo&lt;/th&gt;&lt;th align="center"&gt;Bytes&lt;/th&gt;&lt;th align="left"&gt;Descripción&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;INT o INTEGER&lt;/td&gt;&lt;td align="center"&gt;4&lt;/td&gt;&lt;td align="left"&gt;Números enteros. Existen otros tipos de mayor o menor longitud específicos de cada base de datos.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;DOUBLE o REAL&lt;/td&gt;&lt;td align="center"&gt;8&lt;/td&gt;&lt;td align="left"&gt;Números reales (grandes y con decimales). Permiten almacenar todo tipo de número no entero.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;CHAR&lt;/td&gt;&lt;td align="center"&gt;1/caracter&lt;/td&gt;&lt;td align="left"&gt;Alfanuméricos de longitud fija predefinida&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;VARCHAR&lt;/td&gt;&lt;td align="center"&gt;1/caracter+1&lt;/td&gt;&lt;td align="left"&gt;Alfanuméricos de longitud variable&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;DATE&lt;/td&gt;&lt;td align="center"&gt;3&lt;/td&gt;&lt;td align="left"&gt;Fechas, existen multiples formatos específicos de cada base de datos&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;BLOB&lt;/td&gt;&lt;td align="center"&gt;1/caracter+2&lt;/td&gt;&lt;td align="left"&gt;Grandes textos no indexables&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;BIT o BOOLEAN&lt;/td&gt;&lt;td align="center"&gt;1&lt;/td&gt;&lt;td align="left"&gt;Almacenan un bit de información (verdadero o falso)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/creacion-de-tablas.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0qVFz-QmR32qdu28m5-FCALSRQZER1K37MyX2zF5O6-CPTugr4KjBi3Gk95kVbl_NLfrUOt2VrDyALRQyigg8MAFWXIZWtHhTF1Eh4-PECH7Vqi55fEKLG6DP4_rcfw71JVm_q3SmnkQ/s72-c/sql_injection.jpg" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-1494241139343485645</guid><pubDate>Sat, 05 May 2012 20:57:00 +0000</pubDate><atom:updated>2012-05-05T13:59:49.375-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DCL</category><category domain="http://www.blogger.com/atom/ns#">DDL</category><category domain="http://www.blogger.com/atom/ns#">DML</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>Clasificación de Sentencias y algo mas.</title><description>La&amp;nbsp;clasificación&amp;nbsp;de Sentencias SQL se da de acuerdo al uso que se les va a dar, gracias a este criterio se logra identificar tres grupos importantes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DML: Lenguaje de&amp;nbsp;Manipulación&amp;nbsp;de Datos.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;DDL: Lenguaje de&amp;nbsp;Definición&amp;nbsp;de Datos.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;DCL: Lenguaje de Control de Datos.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: aquamarine; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;
&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;table align="center" border="1" style="background-color: aquamarine; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" bgcolor="#c0c0c0" class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;SENTENCIA&lt;/b&gt;&lt;/td&gt;&lt;td align="center" bgcolor="#c0c0c0" class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;DESCRIPCIÓN&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="fuente8" style="font-size: 8pt;" valign="bottom"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="fuente8" style="border-right-color: initial; border-right-style: solid; border-right-width: initial; font-size: 8pt;" valign="top" width="50"&gt;&lt;b&gt;DML&lt;/b&gt;&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;Manipulación de datos&lt;/b&gt;&lt;br /&gt;
SELECT&lt;br /&gt;
INSERT&lt;br /&gt;
DELETE&lt;br /&gt;
UPDATE&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt; padding-top: 20px;"&gt;Recupera datos de la base de datos.&lt;br /&gt;
Añade nuevas filas de datos a la base de datos.&lt;br /&gt;
Suprime filas de datos de la base de datos.&lt;br /&gt;
Modifica datos existentes en la base de datos.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="fuente8" style="font-size: 8pt;" valign="bottom"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="fuente8" style="border-right-color: initial; border-right-style: solid; border-right-width: initial; font-size: 8pt;" valign="top" width="50"&gt;&lt;b&gt;DDL&lt;/b&gt;&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;Definición de datos&lt;/b&gt;&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
DROP TABLE&lt;br /&gt;
ALTER TABLE&lt;br /&gt;
CREATE VIEW&lt;br /&gt;
DROP VIEW&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
DROP INDEX&lt;br /&gt;
CREATE SYNOYM&lt;br /&gt;
DROP SYNONYM&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt; padding-top: 20px;"&gt;Añade una nueva tabla a la base de datos.&lt;br /&gt;
Suprime una tabla de la base de datos.&lt;br /&gt;
Modifica la estructura de una tabla existente.&lt;br /&gt;
Añade una nueva vista a la base de datos.&lt;br /&gt;
Suprime una vista de la base de datos.&lt;br /&gt;
Construye un índice para una columna.&lt;br /&gt;
Suprime el índice para una columna.&lt;br /&gt;
Define un alias para un nombre de tabla.&lt;br /&gt;
Suprime un alias para un nombre de tabla.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="fuente8" style="font-size: 8pt;"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="fuente8" style="border-right-color: initial; border-right-style: solid; border-right-width: initial; font-size: 8pt;" valign="top" width="50"&gt;&lt;b&gt;DCL&lt;/b&gt;&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;Control de acceso&lt;/b&gt;&lt;br /&gt;
GRANT&lt;br /&gt;
REVOKE&lt;br /&gt;
&lt;b&gt;Control de transacciones&lt;/b&gt;&lt;br /&gt;
COMMIT&lt;br /&gt;
ROLLBACK&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt; padding-top: 20px;"&gt;Concede privilegios de acceso a usuarios.&lt;br /&gt;
Suprime privilegios de acceso a usuarios&lt;br /&gt;
&lt;br /&gt;
Finaliza la transacción actual.&lt;br /&gt;
Aborata la transacción actual.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="fuente8" style="font-size: 8pt;" valign="bottom"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="fuente8" style="border-right-color: initial; border-right-style: solid; border-right-width: initial; font-size: 8pt;" valign="top" width="50"&gt;&lt;b&gt;PLSQL&lt;/b&gt;&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt;"&gt;&lt;b&gt;SQL Programático&lt;/b&gt;&lt;br /&gt;
DECLARE&lt;br /&gt;
OPEN&lt;br /&gt;
FETCH&lt;br /&gt;
CLOSE&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;td class="fuente8" style="font-size: 8pt; padding-top: 20px;"&gt;Define un cursor para una consulta.&lt;br /&gt;
Abre un cursor para recuperar resultados de consulta.&lt;br /&gt;
Recupera una fila de resultados de consulta.&lt;br /&gt;
Cierra un cursor.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;ALGO MAS&lt;/b&gt;&lt;br /&gt;
Los componentes sintácticos en la&amp;nbsp;mayoría&amp;nbsp;de sentencias SQL tienen la misma estructura.&lt;br /&gt;
Todas empiezan con un verbo (Select, Insert, Update, Create; todas estas las estudiaremos mas adelante) posteriormente los datos que se quieren trabajar, luego la sentencia From que indica de donde son estos datos y por ultimo Where que es condicional y utilizado como filtro.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;img height="155" src="http://www.desarrolloweb.com/articulos/images/componentes-sentencia-sql.gif" style="font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px;" width="300" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM1qLNjZDjXptCKE-_aMXRnncn5D2Af0Lhu_XvSrHGHe5PZ1742nuDynL01RvbYRqUKeiC3bYymhz3M0p20_1MSkmmOK2hVXUROS0Mvzf460ErbLSczdCI67GLdCsmF7QYmXFEV1-5MEw/s1600/BD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM1qLNjZDjXptCKE-_aMXRnncn5D2Af0Lhu_XvSrHGHe5PZ1742nuDynL01RvbYRqUKeiC3bYymhz3M0p20_1MSkmmOK2hVXUROS0Mvzf460ErbLSczdCI67GLdCsmF7QYmXFEV1-5MEw/s320/BD.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/clasificacion-de-sentencias-y-algo-mas.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM1qLNjZDjXptCKE-_aMXRnncn5D2Af0Lhu_XvSrHGHe5PZ1742nuDynL01RvbYRqUKeiC3bYymhz3M0p20_1MSkmmOK2hVXUROS0Mvzf460ErbLSczdCI67GLdCsmF7QYmXFEV1-5MEw/s72-c/BD.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-3238595135751287167</guid><pubDate>Sat, 05 May 2012 17:39:00 +0000</pubDate><atom:updated>2012-05-05T10:57:50.267-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Campos</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><category domain="http://www.blogger.com/atom/ns#">Tipos de Datos</category><title>Tipos de Campo y de Datos SQL</title><description>Las bases de datos almacenan datos, mediante registros, estos datos pueden ser distintos, en su&amp;nbsp;característica, soporte, etc.&amp;nbsp;Así&amp;nbsp;que como un aspecto previo, es necesario conocer la naturaleza de los distintos tipos de datos.&lt;br /&gt;
Los SGBD proveen distintos tipos de datos, con los cuales podemos trabajar, sin&amp;nbsp;embargo&amp;nbsp;es necesario especificar cual nos conviene mas, y para eso debemos de saber sus&amp;nbsp;características&amp;nbsp;en&amp;nbsp;búsqueda, capacidad, uso de los recursos, etc&lt;br /&gt;
&lt;br /&gt;
Cada SGBD(Sistema de&amp;nbsp;Gestión&amp;nbsp;de Base de Datos) introduce tipos de valores de campos que no precisamente se encuentran presentes en otras. Sin embargo, existe un conjunto de estos que están representados en la totalidad de estos SGBD. Estos tipos comunes son los siguientes:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table align="center" border="1" cellpadding="2" cellspacing="2" style="background-color: aquamarine; color: black; font-family: verdana, Comic Sans, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Alfanuméricos&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Contienen cifras y letras. Presentan una longitud limitada (255 caracteres)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Numéricos&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Existen de varios tipos, principalmente, enteros (sin decimales) y reales (con decimales).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Booleanos&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Poseen dos formas: Verdadero y falso (Sí o No)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Fechas&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra...&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Memos&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados (veremos más adelante lo que esto quiere decir).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align="center"&gt;&lt;strong&gt;Autoincrementables&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta más que evidente: Servir de identificador ya que resultan exclusivos de un registro.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
Estos Tipos de Datos&amp;nbsp;están&amp;nbsp;presentes en cada SGBD, pero no son los&amp;nbsp;únicos.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table border="1px" style="background-color: aquamarine; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Tipo de Datos&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Longitud&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Descripción&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BINARY&lt;/td&gt;&lt;td&gt;1 byte&lt;/td&gt;&lt;td&gt;Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BIT&lt;/td&gt;&lt;td&gt;1 byte&lt;/td&gt;&lt;td&gt;Valores Si/No ó True/False&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BYTE&lt;/td&gt;&lt;td&gt;1 byte&lt;/td&gt;&lt;td&gt;Un valor entero entre 0 y 255.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;COUNTER&lt;/td&gt;&lt;td&gt;4 bytes&lt;/td&gt;&lt;td&gt;Un número incrementado automáticamente (de tipo Long)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CURRENCY&lt;/td&gt;&lt;td&gt;8 bytes&lt;/td&gt;&lt;td&gt;Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DATETIME&lt;/td&gt;&lt;td&gt;8 bytes&lt;/td&gt;&lt;td&gt;Un valor de fecha u hora entre los años 100 y 9999.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SINGLE&lt;/td&gt;&lt;td&gt;4 bytes&lt;/td&gt;&lt;td&gt;Un valor en punto flotante de precisión simple con un rango de - 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DOUBLE&lt;/td&gt;&lt;td&gt;8 bytes&lt;/td&gt;&lt;td&gt;Un valor en punto flotante de doble precisión con un rango de - 1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SHORT&lt;/td&gt;&lt;td&gt;2 bytes&lt;/td&gt;&lt;td&gt;Un entero corto entre -32,768 y 32,767.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONG&lt;/td&gt;&lt;td&gt;4 bytes&lt;/td&gt;&lt;td&gt;Un entero largo entre -2,147,483,648 y 2,147,483,647.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONGTEXT&lt;/td&gt;&lt;td&gt;1 byte por carácter&lt;/td&gt;&lt;td&gt;De cero a un máximo de 1.2 gigabytes.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONGBINARY&lt;/td&gt;&lt;td&gt;Según se necesite&lt;/td&gt;&lt;td&gt;De cero 1 gigabyte. Utilizado para objetos OLE.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TEXT&lt;/td&gt;&lt;td&gt;1 byte por carácter&lt;/td&gt;&lt;td&gt;De cero a 255 caracteres.&lt;br /&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Y&amp;nbsp;aquí&amp;nbsp;algunos mas.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;table border="1px" style="background-color: aquamarine; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; line-height: 18px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Tipo de Dato&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Sinónimos&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BINARY&lt;/td&gt;&lt;td&gt;VARBINARY&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BIT&lt;/td&gt;&lt;td&gt;BOOLEAN&lt;br /&gt;
LOGICAL&lt;br /&gt;
LOGICAL1&lt;br /&gt;
YESNO&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BYTE&lt;/td&gt;&lt;td&gt;INTEGER1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;COUNTER&lt;/td&gt;&lt;td&gt;AUTOINCREMENT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CURRENCY&lt;/td&gt;&lt;td&gt;MONEY&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DATETIME&lt;/td&gt;&lt;td&gt;DATE&lt;br /&gt;
TIME&lt;br /&gt;
TIMESTAMP&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SINGLE&lt;/td&gt;&lt;td&gt;FLOAT4&lt;br /&gt;
IEEESINGLE&lt;br /&gt;
REAL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DOUBLE&lt;/td&gt;&lt;td&gt;FLOAT&lt;br /&gt;
FLOAT8&lt;br /&gt;
IEEEDOUBLE&lt;br /&gt;
NUMBER&lt;br /&gt;
NUMERIC&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SHORT&lt;/td&gt;&lt;td&gt;INTEGER2&lt;br /&gt;
SMALLINT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONG&lt;/td&gt;&lt;td&gt;INT&lt;br /&gt;
INTEGER&lt;br /&gt;
INTEGER4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONGBINARY&lt;/td&gt;&lt;td&gt;GENERAL&lt;br /&gt;
OLEOBJECT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LONGTEXT&lt;/td&gt;&lt;td&gt;LONGCHAR&lt;br /&gt;
MEMO&lt;br /&gt;
NOTE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TEXT&lt;/td&gt;&lt;td&gt;ALPHANUMERIC&lt;br /&gt;
CHAR - CHARACTER&lt;br /&gt;
STRING - VARCHAR&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;VARIANT (No Admitido)&lt;/td&gt;&lt;td&gt;VALUE&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Estas tablas se&amp;nbsp;irán&amp;nbsp;actualizando&amp;nbsp;según&amp;nbsp;vayan&amp;nbsp;creándose&amp;nbsp;nuevos tipos de datos importantes (en la actualidad son&amp;nbsp;muchísimos), como ejemplo les comento el tipo DATE y el tipo TIME que no&amp;nbsp;existía&amp;nbsp;en SQL Server pero luego fue implementado.&lt;/div&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxIMLudNaRfNoQGZMlelyiClYk6mrwCi8Esap35-LuLvrdzriVZKJqjiiE8ssum5gwGgZzwuhyMFOYZFgGaJTI753BOpVXFM5hleUWLIWhyphenhyphenInPOkQaHmiJD2-VwDni5ONoBOEdS-_dic/s1600/Video+tutoriales+Acceso+a+Datos+SQL.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxIMLudNaRfNoQGZMlelyiClYk6mrwCi8Esap35-LuLvrdzriVZKJqjiiE8ssum5gwGgZzwuhyMFOYZFgGaJTI753BOpVXFM5hleUWLIWhyphenhyphenInPOkQaHmiJD2-VwDni5ONoBOEdS-_dic/s320/Video+tutoriales+Acceso+a+Datos+SQL.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/tipos-de-campo-y-de-datos-sql.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyxIMLudNaRfNoQGZMlelyiClYk6mrwCi8Esap35-LuLvrdzriVZKJqjiiE8ssum5gwGgZzwuhyMFOYZFgGaJTI753BOpVXFM5hleUWLIWhyphenhyphenInPOkQaHmiJD2-VwDni5ONoBOEdS-_dic/s72-c/Video+tutoriales+Acceso+a+Datos+SQL.jpg" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-9177416183808134990</guid><pubDate>Sat, 05 May 2012 16:08:00 +0000</pubDate><atom:updated>2012-05-05T10:58:09.558-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Base de Datos</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>Porque SQL y Para que SQL y Bases de Datos</title><description>&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
En el diario desarrollo de la tecnologia informatica y computacional se nota la importancia de contar con bases de datos actualizadas firmes consistentes y asimismo contar con profesionales Aptos para el mantenimiento de la misma. Son muchos los casos de Script que rigen el mundo de las bases de datos y su interrelacion con los sistemas de alrededor.&lt;br /&gt;
&lt;br /&gt;
Existen un sin numero de Sistemas de&amp;nbsp;Gestión&amp;nbsp;de bases de datos y cada una de ellas posee una forma diferente de manejar su data, sin embargo con el paso de los años estos se fueron unificando y universalizando para dar paso a mejores&amp;nbsp;técnicas&amp;nbsp;y mejores formas de manejo.&amp;nbsp;Así&amp;nbsp;nació&amp;nbsp;SQL.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).&lt;br /&gt;
&lt;br /&gt;
A pesar de estar estandarizadas cada base de datos posee diferentes sentencias o palabras reservadas especificas para su uso, incluso se crean lenguajes propios para cada SGBD basados en SQL.&lt;/div&gt;
&lt;div&gt;
Este blog no peca de&amp;nbsp;ambicioso&amp;nbsp;pero si de soñador por una parte enseña a utilizar lo&amp;nbsp;básico&amp;nbsp;en SQL y ademas&amp;nbsp;también&amp;nbsp;pretende enseñar todo lo necesario para poder administrar y crear&amp;nbsp;también&amp;nbsp;una base de datos&amp;nbsp;exitosa mente. Buscamos con ello ofrecer al webmaster un manual de referencia práctico y aplicado. Las bases de datos son mas que SQL, y lo vamos a estudiar.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwjZuyXJ3800c0cjEX4K8tXmOa6iOJ9KSopETYqQNVGHDH1vif7YoxUp_nub2ZLrNFq62M8w7DXD6bMpMrg_ZxHiK1r21sSDLzeBcr7-Vep4T0ryVVi7dXd9hyphenhyphen1um63OOdd8rNI0ucdBM/s1600/viu1273488773x.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwjZuyXJ3800c0cjEX4K8tXmOa6iOJ9KSopETYqQNVGHDH1vif7YoxUp_nub2ZLrNFq62M8w7DXD6bMpMrg_ZxHiK1r21sSDLzeBcr7-Vep4T0ryVVi7dXd9hyphenhyphen1um63OOdd8rNI0ucdBM/s320/viu1273488773x.jpg" width="251" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/porque-sql-y-para-que-sql-y-bases-de.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwjZuyXJ3800c0cjEX4K8tXmOa6iOJ9KSopETYqQNVGHDH1vif7YoxUp_nub2ZLrNFq62M8w7DXD6bMpMrg_ZxHiK1r21sSDLzeBcr7-Vep4T0ryVVi7dXd9hyphenhyphen1um63OOdd8rNI0ucdBM/s72-c/viu1273488773x.jpg" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5947290269907186218.post-7639183983380361988</guid><pubDate>Sat, 05 May 2012 15:47:00 +0000</pubDate><atom:updated>2012-05-05T08:47:32.473-07:00</atom:updated><title>Estrenamos Blog</title><description>Buen&amp;nbsp;día&amp;nbsp;a todos nuestros seguidores, el&amp;nbsp;día&amp;nbsp;de hoy estrenamos el &amp;nbsp;Blog "Base de Datos y SQL Jolunf " donde trataremos de la mejor manera de aprender más sobre este tema muy interesante, una cordial bienvenida a cada uno de ustedes y espero que los cursos que se impartan sean de su mayor agrado, trataremos que sea de la mejor manera y con la mejor forma de explicar las cosas. No olviden suscribirse y&amp;nbsp;enlazarnos recomendandonos por distintos medios.&amp;nbsp;Saludos.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXy6YdWGIrzDXrGqwAG9X1MSAomJP_WoM3rZ6VAGOWsRzrBLabcBf1BUhDBeWYMG8Xk0XTSCP_iH5dCGKBfhYautt6l9HHuBeuH-iaJakSZlvi6ISpspKFi1-4LzWeGAbDtIdegYpZWQ/s1600/Manual-SQL-en-espa%C3%B1ol.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXy6YdWGIrzDXrGqwAG9X1MSAomJP_WoM3rZ6VAGOWsRzrBLabcBf1BUhDBeWYMG8Xk0XTSCP_iH5dCGKBfhYautt6l9HHuBeuH-iaJakSZlvi6ISpspKFi1-4LzWeGAbDtIdegYpZWQ/s1600/Manual-SQL-en-espa%C3%B1ol.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;SQL y Base de Datos&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 style="text-align: center;"&gt;
&lt;br /&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/BasesDeDatosYSqlJolunf&lt;/div&gt;</description><link>http://basededatosysql.blogspot.com/2012/05/estrenamos-blog.html</link><author>noreply@blogger.com (jolunf)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXy6YdWGIrzDXrGqwAG9X1MSAomJP_WoM3rZ6VAGOWsRzrBLabcBf1BUhDBeWYMG8Xk0XTSCP_iH5dCGKBfhYautt6l9HHuBeuH-iaJakSZlvi6ISpspKFi1-4LzWeGAbDtIdegYpZWQ/s72-c/Manual-SQL-en-espa%C3%B1ol.jpg" width="72"/><thr:total>0</thr:total></item></channel></rss>