on domingo, 21 de octubre de 2012

Muy buen día  hoy es dominguito y el clima esta muy agusto, hoy ando un poco crudo, pero pues con ganas de compartir una imagen que me tope por internet, muy completa por cierto, te describe todos los posibles joins en sql.

Aquí se las dejo:


joins

como pueden ver, vemos la diferencia en estos diagramas de conjuntos de venn, podemos ver que el famoso inner join no es mas que una intersección, el full outer join es una unión y así cada uno de los tipos de join cumplen con su función que según el contexto del sistema, se podrá aplicar o no aplicar un determinado tipo de join.

Recuerdan su clase de probabilidad y estadística y probablemente dijeron, y a mi para que chingados me sirven estas madres de conjuntos.

Amigo, aquí esta tu respuesta, los usas diariamente en sql cuando haces un join sea del tipo que sea.

Espero que esta información les sea de utilidad, sinceramente a mi me fue de gran utilidad aunque nada mas sea una imagen, pero yo creo que valen mas de mil palabras incluidas en varios capítulos de diferentes libros de bases de datos.

Que pasen buen día. ;)
on miércoles, 17 de octubre de 2012


Muy buen día, el día de hoy trabajaremos con la clase List de c#.

Dicha clase es una plantilla para todos los tipos, es decir podemos hacer una instancia de una lista de diferentes tipos, por ejemplo.


List<int> listaDeEnteros = new List<int>(); 

Así es como declaramos una lista de enteros. Este tipo de listas son bastantes útiles a la hora de estar desarrollando en c#, ya que son altamente usables.

Y aquí esta un ejemplo de como se llena una lista y como se recorre.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> listaDeEnteros = new List<int>();

            for (int i = 1; i <= 20; i++)
            {
                listaDeEnteros.Add(i);
            }

            foreach (int entero in listaDeEnteros)
            {
                Console.WriteLine(entero);
            }

            Console.ReadKey();
        }
    }
}
 

Este tipo de listas, como son una plantilla, se pueden usar todos los tipos de datos primitivos como clases hechas por el desarrollador, a continuación trataremos estas listas ya con objetos.

Supongamos que tenemos una lista de clientes con una propiedad nombre y otra que indica si el cliente es moroso o deudor, como quieran llamarle.


Es necesario crear la clase:
 


class Cliente
{
   public string Nombre { get; set; }

   public bool EsMoroso { get; set; }

   public Cliente()
   {

   }

   public Cliente(string nombre, bool esMoroso)
   {
       this.Nombre = nombre;
       this.EsMoroso = esMoroso;
   }
}


Ahora bien, creamos una lista de clientes.

List<Cliente> clientes = new List<Cliente>();

Ahora creamos 5 clientes, al inicio ninguno de ellos sera moroso.

Cliente cliente;

for (int i = 0; i < 5; i++)
{
cliente = new Cliente("cliente No. " + i + 1, false);
clientes.Add(cliente);
}

Las lista puden acceder a cualquiera de sus ítems dentro de su colección.
Por ejemplo, vamos hacer moroso a dos clientes.

clientes[2].EsMoroso = true;
clientes[3].EsMoroso = true;

Por lo tanto es necesario crear una nueva lista que contenga a todos los clientes morosos.

List<Cliente> clientesMorosos = new List<Cliente>();

Hecho esto, tenemos que recorrer toda la lista de clientes y obtener todos aquellos clientes que son deudores.
 

foreach (Cliente cliente in clientes)
{
   if (cliente.EsMoroso)
   {
        clientesMorosos.Add(cliente);
   }
}



Y ahora los mostramos en pantalla.

foreach (Cliente clienteMoroso in clientesMorosos)
{
    Console.WriteLine("El cliente "+clienteMoroso.Nombre +" Es un deudor, favor de               no autorizarle el credito solicitado");
}

Como estamos recorriendo la lista de clientes morosos, estamos asegurando que todos los clientes que se encuentren dentro de esa lista, son deudores.