SQL básico: consultas multitablas

Bienvenidos de nueva cuenta al curso básico de SQL, si por alguna razón llegaste a esta nota al azar, te invito a seguir el curso desde el inicio de la serie aquí: SQL básico: conceptos básicos.

En esta ocasión continuaremos hablando de consultas que podemos hacer pero esta vez centrándonos en la manera en que se crean pensando en la conexión de datos entre distintas tablas.

Cabe aclarar que cuando menciono “tablas” me refiero tanto a las que se encuentran  físicamente almacenadas en la base de datos como también a las temporales e incluso a las que son resultantes de alguna vista o consulta.

 

Unión de tablas UNION

Consiste en tomar 2 tablas y por consiguiente obtener otra tabla que contenga las filas de las 2 tablas de manera que aparezcan las filas de la primera tabla seguidas de las filas de la segunda tabla.

Se debe de tener en cuenta que para hacer una unión así, ambas tablas deben tener el mismo esquema (mismo número de columnas y tipos de datos compatibles) y que luego de la unión la tabla resultante hereda los encabezados de la primer tabla.

Ahora bien, vamos directamente a un ejemplo para continuar explorando el uso de UNION en consultas:

SELECT Articulo AS 'Artículos'
FROM Art
UNION
SELECT Articulo
FROM ArtAlm

 

En el ejemplo tenemos la unión de la tabla Art con la tabla ArtAlm, tratándose de las tablas que manejan  los artículos y estos mismos en almacenes. En ambos casos se pide en la consulta los datos de los artículos y en el caso de la tabla Art, se utiliza un alias con la palabra “AS” para nombrar a la columna de otra forma de tal manera que al hacer la consulta la tabla resultante tenga ese nombre de columna.

 

Union en SQL

 

En caso de encontrarse con elementos repetidos, el sistema por defecto eliminará dichas filas. Si se necesitara obtener todas las filas, incluyendo las repeticiones, se puede utilizar “UNION ALL”, esto ocasiona que la consulta se ejecute un poco más rápido ya que el sistema no tiene que estar eliminando las repeticiones.

También se debe de tener en cuenta que se pueden combinar más de 2 tablas si es que se cumplen con todos los requerimientos  e igualmente se puede hacer uso de las cláusulas que expliqué en la segunda nota de la serie: SQL básico: consultas simples.

 

Diferencia EXCEPT

Continuando con la combinación de dos o más tablas, llegamos a la que nos permitirá hacer una operación similar a una diferencia matemática.

Por lo que la tabla resultante contiene las filas de la primera consulta que no aparecen en la segunda.

Como se trata de una operación muy sencilla de comprender, vamos a un ejemplo rápido:

SELECT Articulo
FROM Art
EXCEPT
SELECT Articulo
FROM ventaD

De nuevo vamos con la tabla Art que maneja los datos de los artículos con la tabla ventaD que maneja los datos de los detalles de las ventas que se realizan.

La estructura y condiciones como vemos son las mismas que con UNION, dos consultas separadas en este caso por la palabra EXCEPT que marca hacia que lado se efectuará la operación.

Except en SQL

Como podemos observar, la tabla resultante es simplemente de aquellos artículos que se encuentran en la tabla Art (primera consulta), pero que no se encuentran en la tabla ventaD (segunda consulta).

Este tipo de consulta puede ser útil si lo que queremos es por ejemplo averiguar los artículos que tenemos en existencia que no han sido registrados como ventas.

 

Intersección INTERSECT

Esta tiene un funcionamiento parecido a las anteriores pero en la tabla resultante tenemos las filas que están simultáneamente en las dos o más consultas que utilicemos.

SELECT Articulo
FROM Art
INTERSECT
SELECT Articulo
FROM ventaD 

Siguiendo por la misma línea que hemos estado utilizando en estos ejemplos, ahora tenemos de nueva cuenta a la tabla Art y a la tabla ventaD. En esta ocasión con la operación de intersección buscamos los artículos que se encuentran registrados a su vez en ambas tablas.

Intersect en SQL

Este tipo de consultas pueden servir como en el ejemplo, para obtener una lista de artículo que se encuentren tanto en nuestra lista de artículos usual como en las de los detalles de las ventas, es decir, los artículos de los que tenemos registradas al menos una venta.

Por lo que es bastante útil si tienes tablas con mucha información en común pero quieres depurar de alguna manera a la hora de hacer consultas.

 

Composición de tablas

Las consultas y operaciones que hemos realizado hasta ahora han sido con tablas que tuviesen el mismo esquema, sin embargo, hay ocasiones en las que se necesita obtener una tabla resultado que tenga en la misma fila datos de distintas tablas.

Por ejemplo se necesita obtener pedidos y en esa misma fila obtener algunos datos del cliente como nombre y dirección, este tipo de consultas es posible y de hecho son muy usadas.

Nos apoyaremos en la composición de tablas para poder lograr consultas de este tipo, esto consiste en obtener a partir de dos tablas cualesquiera una nueva tabla fusionando las filas de una con las filas de la otra, concatenando los esquemas de ambas tablas. Básicamente se trata de armar parejas de filas.

Ahora continuaremos con la operación a partir de la cual están definidas las demás operaciones de composición de tabla, se trata del producto cartesiano.


Producto cartesiano CROSS JOIN

Este obtiene todas las posibles concatenaciones de filas de la primera tabla con filas de la segunda tabla. Para poder utilizar el CROSS JOIN debemos indicarlo en la cláusula FROM entre los nombres de las tablas que se quieran concatenar.

SELECT a.*, vd.*
FROM Agente AS a
CROSS JOIN
ventaD as vd 

En esta ocasión utilizamos las tablas de Agente y la de ventaD, al utilizar el asterisco estamos señalando que queremos que nos traigo todas las columnas de dicha tabla y utilizamos de nueva cuenta el “AS” para indicar un alias esta vez a las tablas para poder cualificar los campos, algo que se utiliza mucho sobretodo si se están utilizando consultas multitablas.

 

Cross Join en SQL

 

Cross Join en SQL

Mis tablas tienen muchas columnas, por lo que partí el resultado en 2 imágenes, pero se puede notar que primeramente se muestran las columnas de la tabla Agente y consiguientemente de la tabla ventaD.

El CROSS JOIN no es la operación más utilizada ya que por lo regular al componer 2 tablas lo que se busca es que se haga bajo una condición de selección basada en campos de combinación y para ello es más eficiente utilizar las siguientes operaciones.

Composición interna INNER JOIN

En esta ocasión esta composición es en la que los valores de las columnas combinadas se comparan mediante un operador de comparación específico. En palabras simples, es un tipo de producto cartesiano con una condición.

Es de las operaciones más utilizadas ya que es muy común querer combinar los registros de una tabla relacionada con registros correspondientes en una tabla de referencia como pueden ser los nombres de los agentes en una respectiva venta o los datos de una factura con los datos completos de tu proveedor.

SELECT v.Mov, v.MovID, v.cliente, c.nombre, c.Direccion
FROM Venta AS v
INNER JOIN
Cte AS c
ON v.Cliente=c.Cliente

INNER JOIN en SQL

En esta consulta combinamos la tabla venta con la tabla de clientes, obtenemos los movimientos que tengamos en ventas, sus identificadores y los de los clientes y por otro lado tenemos el nombre del cliente y su dirección.

Para la condición que un INNER JOIN nos exige tenemos una igualdad (que es por lo regular lo que se utiliza) como la última línea de nuestra consulta en la que igualamos el campo de cliente en la tabla de venta con el campo de cliente de la tabla cte, lo que significa que está haciendo la relación entre ambas tablas en donde nos traiga las parejas de filas según la información de ambas tablas bajo la condición de que se esté hablando del mismo cliente.

El punto débil del INNER JOIN es que al hacer una consulta con este, no aparecerán las filas que no tienen fila correspondiente en la otra tabla.

En el caso de nuestro ejemplo no aparecen los clientes que no tengan estén especificados en ninguna venta, ni las ventas que no tengan especificado algún cliente.

Composición externa justify, RIGHT y FULL JOIN

La composición externa se expresa de manera similar al INNER JOIN ya que de igual forma se necesita una condición de combinación pero esta añade al resultado las filas que no cumplan con la condición necesariamente.

Ahora lo importante es notar el uso de las palabras LEFT y RIGHT ya que son las que indicarán la tabla de la cual se van a añadir las filas sin correspondencia. Es decir, si ponemos LEFT nos traerá todas las filas de la izquierda y si ponemos RIGHT las de la derecha. Mientras que con la palabra FULL llenamos todas nuestras bases y nos regresa como resultado todas las filas aunque no tengan correspondencia de un lado o de otro.

Para poder identificar de mejor manera las diferencias entre los tres tipos de composiciones externas, veremos el mismo ejemplo en los tres casos pero con la palabra determinante de la composición externa cambiada.

SELECT c.ID,c.FechaEmision, p.Nombre,p.Direccion,p.Estado
FROM Compra AS c
LEFT JOIN Prov AS p
ON p.Proveedor = c.Proveedor

LEFT, RIGHT y FULL JOIN en SQL

La consulta nos trae de resultado muchas filas entre las cuales incluye las de la tabla compra (izquierda) que no tienen necesariamente un referente en la tabla proveedor.

SELECT c.ID,c.FechaEmision, p.Nombre,p.Direccion,p.Estado
FROM Compra AS c
RIGHT JOIN Prov AS p
ON p.Proveedor = c.Proveedor

Composición externa LEFT, RIGHT y FULL JOIN en SQL

Este resultado es aún más claro que el anterior ya que trae todas las filas de la tabla proveedor (derecha), incluso si no tienen en correspondencia algo en la tabla compra.

SELECT c.ID,c.FechaEmision, p.Nombre,p.Direccion,p.Estado
FROM Compra AS c
FULL JOIN Prov AS p
ON p.Proveedor = c.Proveedor

Composición externa LEFT, RIGHT y FULL JOIN en SQL

En este último caso el resultado es el mismo que el anterior y lo podemos comprobar con el número de filas resultado. Pasa esto ya que todas las opciones disponibles se dan con un RIGHT JOIN y no hay nada exclusivo del LEFT JOIN. Si hubiera habido filas que tuviesen solo registros concordantes del lado izquierdo, el resultado del FULL JOIN hubiese sido más claro al juntar todos los resultados posibles.

Para finalizar con la nota me gustaría mencionar algunos consejos al momento de seleccionar el tipo de JOIN a utilizar, primeramente se debe hacer un JOIN normal con la debida condición de comparación para combinar filas y luego deberías pensar si lo que necesitamos es una composición externa o interna, en cuyo caso lo mejor sería seguir estas normas:

  • Si pueden haber filas de la primera tabla que no estén  relacionadas con filas de la segunda tabla y nos interesa que salgan en el resultado, entonces cambiamos a LEFT JOIN.
  • Si pueden haber filas de la segunda tabla que no estén  relacionadas con filas de la primera tabla y nos interesa que salgan en el resultado, entonces cambiamos a RIGHT JOIN.
  • Si necesitamos LEFT y RIGHT entonces utilizamos FULL JOIN.

Esto sería todo por la lección de esta nota, en la siguiente entrada de SQL básico trataremos el tema de las consultas resumen, las distintas funciones que se utilizan para este tipo de consultas como COUNT o AVG y las cláusulas HAVING y GROUP BY.

Si tienen alguna duda respecto al tema tratado o incluso de SQL básico en general, no duden en preguntar en los comentarios.

¡Nos leemos hasta otra!

 

Referencias

https://www.w3schools.com/SQl
Documentación sobre SQL de Microsoft: https://docs.microsoft.com/en-us/sql

Fuentes de las imágenes:

Screenshots tomadas por la autora en SQL Server.
Imagen original usada para la imagen destacada: https://blog.udemy.com/wp-content/uploads/2014/04/shutterstock_113180047.jpg

SQL básico: consultas simples

Bienvenidos a la segunda nota en esta serie de lecciones sobre SQL nivel básico, en esta ocasión nos dedicaremos a hablar un poco sobre las consultas simples que se pueden realizar para obtener datos de tablas o seleccionar registros por ejemplo.

Como vimos en la nota anterior, una de las sentencias más usadas y complejas es SELECT, el resultado de esta es una tabla lógica que alberga las filas resultantes de la ejecución de la sentencia.

Si bien su sintaxis puede llegar a ser muy extensa, por esta nota nos limitaremos a una versión muy simple de ella:

SELECT [ALL|DISTINCT][TOP expresion [PERCENT] [WITH TIES]] 
<lista_seleccion> FROM <origen> [WHERE  <condicion_ busqueda> ]
[ORDER BY {expression_columna|posicion_columna [ASC|DESC]}[ ,...n]]

 

En la nota anterior vimos algunos ejemplos básicos del uso del SELECT y por tanto notamos como se usa el FROM para definir el origen de los datos que queremos recuperar.

Por otro lado tenemos la lista de selección en donde se indican las columnas que se visualizarán en el resultado de la consulta, estas deben estar separadas por comas y aparecerán en el orden en que fueron escritas.

Entonces para poner un ejemplo rápido podríamos utilizar la siguiente sentencia:

SELECT Nombre, Tipo, Categoria
FROM Agente;

 

Lo que nos traerá dichas columnas en ese orden de la tabla agente:

Consulta de SQL

El proceso lógico de una consulta

Un SELECT está compuesto de una combinación de elementos obligatorios y opcionales. No todos los elementos estarán presentes en cada consulta SELECT, sin embargo, cuando un elemento está presente, siempre será evaluado en el mismo orden con respecto a los otros elementos presentes. Por ejemplo, una cláusula WHERE siempre será evaluada después de la cláusula FROM y antes de una cláusula GROUP BY, si es que existe.

A continuación tenemos los elementos ordenamos como se escribirían en una consulta, los números a su izquierda hacen referencia a la prioridad en que dichos elementos  son evaluados:

5: SELECT

1: FROM

2: WHERE

3: GROUP BY Si existe

4: HAVING Si existe

5: ORDER BY

Por lo que brevemente explicado quedaría como sigue:

  1. La cláusula FROM se evalúa en primer lugar, esto para proporcionar el origen del  resto de la declaración. Una tabla virtual se crea y continuamos con el siguiente paso.
  2. La cláusula WHERE es la siguiente a evaluar, filtra las filas de la tabla de origen para que coincidan con un predicado. La tabla virtual filtrada se usará en el siguiente paso.
  3. GROUP BY es el siguiente, se organizan las filas de la tabla virtual de acuerdo a los valores únicos que se encuentran en la lista GROUP BY. Se crea una nueva tabla virtual, que contiene la lista de grupos y continuamos con lo siguiente.
  4. La cláusula HAVING se evalúa a continuación, se filtran los grupos en base a su predicado. La tabla virtual creada en el paso 3 se filtra y continuamos con el paso final.
  5. La cláusula SELECT finalmente se ejecuta, siendo la determinación de qué columnas aparecerán en los resultados de la consulta.

No en todas las consultas es necesario usar todas las cláusulas, por lo que de faltar alguna, simplemente se saltaría el paso y continuaría con las cláusulas existentes.

Alias de columna y de tabla

En el encabezado de cada columna del resultado de la consulta, predeterminadamente aparece el nombre de la columna origen pero en ocasiones es necesario cambiar dicho nombre para una mejor presentación de los datos. De tal manera puedes identificar y leer el resultado de tu consulta de manera sencilla.

El alias de una columna se puede indicar con la cláusula AS, dependiendo de la versión y el sistema gestor que se utilice se tendrán que usar comillas simples para definir el alias o simplemente escribirlo como un texto normal siguiendo las normas de los identificadores.

Un ejemplo utilizando alias en columnas:

SELECT Articulo AS 'ID',Descripcion1 AS 'Descripción', 
Impuesto1 AS 'IVA', PrecioLista AS 'Precio en Lista'
FROM Art;

 

El resultado sería el siguiente:

Consulta SQL

Mientras que la misma consulta sin usar alias quedaría de la siguiente forma:

Consulta SQL - Alias de columna y de tabla

De la misma manera, podemos utilizar algún alias con nuestras tablas, así al momento de unirlas será más sencillo hacer referencias a campos de tablas específicas (eso se verá en el tema de consultas multitabla).

Los alias hacen que las consultas sean más legibles para el programador por lo que es recomendable utilizarlas incluso si se trata de una sola tabla para hacer un buen hábito de ello.

Un ejemplo utilizando una tabla con un alias es como sigue:

SELECT Cliente, Nombre
FROM cte AS c;

 

Se recomienda que se utilicen alias cortos, por lo regular de una sola letra que sería la inicial de la tabla o si se trata de un nombre de tabla formado de distintas palabras que sea lo más corto pero entendible posible. Cabe mencionar que este alias no influye en el resultado de la consulta y que tampoco cambia el nombre original de la tabla.

Funciones

Existen distintas funciones que podemos utilizar en nuestra lista de selección o en otras cláusulas de nuestra consulta como el WHERE.

Los principales tipos de funciones son de fecha, cadena, numéricas, de conversión y otras avanzadas.

Para evitar alargar mucho esta nota, les dejaré un enlace con una lista específica de manera que puedan buscar alguna función que se ajuste a sus necesidades. Cabe mencionar que este listado es para quienes usan SQL Server pero hay algunas similitudes por ejemplo para quienes utilizan MySQL.

Listado de funciones

Columnas Calculadas

A menudo es necesario utilizar operaciones con los datos de nuestras tablas para obtener resultados determinantes y específicos que no se podrían obtener con solo los datos de las tablas como tal .

Esto se evalúa a partir de una expresión que puede contener cualquier operador válido(+, -, *, /…), función válida, constantes, parámetros e incluso combinar varias operaciones de ser necesario.

Para que quede aún más claro cómo podemos utilizar esto, les dejo un ejemplo de una consulta con una columna calculada, utilizando a la vez un alias para la misma:

SELECT p.Nombre+' '+p.ApellidoPaterno+
' '+p.ApellidoMaterno AS 'Nombre Completo',
DATENAME(dw,p.FechaNacimiento)+','+
' '+DATENAME(dd,p.FechaNacimiento)+
' '+DATENAME(mm,p.FechaNacimiento)+
' '+DATENAME(yyyy,p.FechaNacimiento) AS 'Fecha de Nacimiento'
FROM Personal AS p;

 

Antes de que vean el resultado, quisiera explicarles un poco la consulta.

La primer columna se trata de una suma de 3 campos, además de esto entre cada uno se le agrega un espacio en blanco para que se lea de manera adecuada.

La segunda columna está conformada de otra suma pero utilizando además una función de fecha. La función DATENAME obtiene del campo seleccionado el nombre según lo que se le indique en su primer parámetro, siendo en este caso “dw” utilizado para el día de la semana, “dd” para el día en numérico, “mm” para el mes y finalmente “yyyy” para indicar el año a cuatro dígitos.

Ahora bien, el resultado sería como sigue:

Consulta SQL - Columnas calculadas

Ordenación de filas del resultado con cláusula ORDER BY

Si por alguna razón necesitamos que nuestros resultados sean mostrados en un orden específico lo podemos hacer mediante la cláusula ORDER BY.

Se puede indicar desde una columna o varias separadas por una coma, la columna que se quiera seleccionar deberá ser indicada mediante el nombre de columna en su origen de datos.

Se debe saber que por defecto se ordenan los datos de manera ascendente (ASC) pero de así necesitarlo le podemos indicar que sea de forma descendente (DESC).

Algunas cosas que debemos tener en cuenta al utilizar esta cláusula:

  • Si la columna de ordenación es numérica, las filas se ordenarán de menor a mayor.
  • Si la columna de ordenación es alfanumérica, las filas se ordenarán por orden alfabético.
  • Si la columna de ordenación es de tipo fecha, las filas se ordenarán de más antigua a más reciente o futura.

Ahora veamos un ejemplo utilizando ORDER BY:

SELECT Mov AS 'Movimiento', Cliente, Importe
FROM Venta AS v
ORDER BY Importe;

 

El resultado es ordenado entonces por el importe, de la venta que tenga el menor a la venta que tenga el mayor importe.

Consulta SQL - Order By

Selección de filas con la cláusula WHERE

Esta cláusula se usa para determinar las filas que se desean utilizar del origen de datos en específico. Es una cláusula muy utilizada ya que en el resultado de la consulta solo se mostrarán las filas que cumplan con que la condición dada sea TRUE.

Se pueden utilizar condiciones simples o más elaboradas con varios predicados unidos por operadores como AND u OR. Si se planea utilizar más de un predicado en la condición unidos con operadores se recomienda poner cada predicado entre paréntesis para evitar confusiones.

Los predicados que se trabajan en SQL son los siguientes:

  • Comparación estándar ( =  , <> , !=, < , <= , !<, >  , >= ,!>)
  • Pertenencia a un intervalo (BETWEEN)
  • Pertenencia a un conjunto (IN)
  • Test de valor nulo (IS NULL).
  • Coincidencia con patrón (LIKE)
  • Si contiene (CONTAINS)
  • FREETEXT

Un ejemplo del uso de la cláusula WHERE con una comparación estándar sería como sigue:

SELECT Personal, Nombre, ApellidoPaterno AS 'Apellido Paterno',
YEAR(FechaNacimiento) AS 'Año de Nacimiento'
FROM Personal WHERE YEAR(FechaNacimiento)  < 1980;

 

Donde la consulta pide algunas columnas de la tabla Personal pero solo de los empleados que hayan nacido antes de 1980.

Consulta SQL - WHERE

Podemos utilizar el predicado BETWEEN para definir un rango de datos entre dos expresiones, vamos directamente a un ejemplo.

SELECT Mov AS 'Movimiento', MovID AS 'ID del Movimiento',
DATENAME(dd,FechaEmision)+' '+ DATENAME(mm,FechaEmision)+
' '+DATENAME(yyyy,FechaEmision) AS 'Fecha de Emisión'
FROM Venta AS v
WHERE FechaEmision BETWEEN '20090101' AND '20090131'
ORDER BY FechaEmision;

 

En este ejemplo estamos requiriendo ciertas columnas de la tabla Venta donde la fecha de emisión de los movimientos sean las del mes de enero del año 2009, ordenadas por la fecha de emisión misma.

Consulta SQL - BETWEEN

Ahora bien, sigamos con el predicado IN, esta evalúa si el valor de la expresión es uno de los valores incluidos en la lista de valores designados entre paréntesis en el predicado. Podemos utilizar cualquier expresión siempre y cuando se utilice el mismo tipo de datos entre expresiones.

SELECT Mov AS 'Movimiento', MovID AS 'ID Movimiento',Proveedor
FROM Compra AS c
WHERE Proveedor IN ('PROVE001', 'PROVE002');

 

En esta consulta buscamos que se nos muestren los movimientos de compras hechos por los proveedores PROVE001 y PROVE002.

Consultas SQL - WHERE

Uno de los predicados más útiles en caso de que nuestra base de datos tengan muchos datos nulos es el de IS NOT NULL. Que básicamente se trata de obtener los datos de las columnas que no sean nulos pero con el ejemplo quedará más claro el objetivo de hacer esto.

Utilizando parte de una consulta anterior, la base de datos que estoy utilizando tiene varios valores nulos por lo que en la consulta de la cláusula ORDER BY utilice este predicado como sigue:

SELECT Mov AS 'Movimiento', Cliente, Importe
FROM Venta AS v
WHERE Importe IS NOT NULL
ORDER BY Importe;

 

Esto hace que si hay valores nulos, no nos los muestre para realmente obtener los datos que necesitamos, de lo contrario la consulta sin el IS NOT NULL nos daría este resultado:

Consultas SQL - IS NOT NULL

Finalmente podemos utilizar operadores lógicos para unir más de una condición simple y conformar una condición compuesta.

SELECT Personal, Nombre, ApellidoPaterno, Tipo, Estado
FROM Personal
WHERE (Nombre LIKE 'J%') AND (Estado='DISTRITO FEDERAL');

 

En esta consulta estamos utilizando un predicado que no hemos mencionado y es el LIKE. Este predicado busca similitudes dependiendo lo que le indiques, en este caso se busca que el nombre de empleado empiece con la letra “J”, por otro lado y como segunda condición se busca que el empleado sea del estado “Distrito Federal”.

Consultas SQL

Con esto finalizamos la lección de la nota de hoy no sin antes recordarles que esto se trata de un tipo de serie por lo que este pequeño curso de SQL básico continuará en futuras entradas, cualquier duda que pudieran tener son bienvenidos de dejarlas en los comentarios y yo responderé a la brevedad posible.

En la siguiente entrada de SQL básico trataremos el tema de las consultas multitabla, todas las maneras en las que podemos juntar dos o más tablas para obtener resultados totalmente distintos a los que obtenemos utilizando una sola tabla.

¡Nos leemos hasta otra!

Referencias

https://www.w3schools.com/SQl

Documentación sobre SQL de Microsoft: https://docs.microsoft.com/en-us/sql

Imágenes usadas:

Logo SQL:http://sanalkurs.net/etiketler/sql-injection

Screenshots tomadas por la autora en SQL Server.

5 iniciativas para la inclusión de la mujer en la tecnología

Para las mujeres que somos profesionistas de alguna área relacionada con las tecnologías de la información, no es una sorpresa cuando se habla del bajo porcentaje de mujeres que se interesan en estas profesiones, pues para nosotras es de lo más común rodearnos en su gran mayoría de hombres en nuestra vida académica y laboral. Las razones para este fenómeno pueden ser muchas, desde la posición que ocupamos las mujeres en nuestra cultura hasta la inclinación por otras áreas de las cuales hemos desarrollado mejores habilidades a lo largo de nuestra vida. Sin embargo, independiente de las razones que ocasionan esta situación, actualmente se están sumando esfuerzos para fomentar la inclusión de la mujer en esta áreas, cada día se unen más comunidades, instituciones y organizaciones dedicadas a esta causa, y muchos de estos programas van dirigidos para fomentar la creatividad desde edades tempranas. En nuestro país (México) existen varias organizaciones que brindan apoyos, talleres, seminarios, entre otros eventos con este fin. A continuación menciono algunos de ellos.

Technovation Challenge

Es un programa sin fines de lucro, que invita a grupos de niñas y jovencitas de 10 a 18 años de edad, para que aprendan y desarrollen tecnología, mientras resuelven problemas de la sociedad, a través de mentoras que colaboran con ellas de forma voluntaria. Este programa no es exclusivo de México, en él han participado 78 países. Para más información puedes consultar su página oficial: http://technovationmx.org/.

Technovation challenge

Fuente de la imagen: http://technovationmx.org/

Laboratoria

Es una organización que brinda capacitación para desarrollar habilidades en el desarrollo web, está enfocada en mujeres jóvenes que no necesariamente han tenido oportunidades para estudiar a nivel superior. Este curso tiene un costo que se debe cubrir cuando las egresadas del programa consiguen un empleo a partir de sus nuevas habilidades en desarrollo, en caso de no conseguir empleo en un tiempo máximo de 6 meses el curso es gratis. Puedes revisar más detalles en la página de latinoamérica http://www.laboratoria.la/.

Laboratoria

Fuente de la imagen: http://www.laboratoria.la/

TechWo community

Es una comunidad de mujeres y hombres que buscan generar nuevas oportunidades para la inclusión de la mujer en la tecnología y el emprendimiento, a través de talleres, meetups y red de contactos. Esta organización es Mexicana, hasta el momento cuenta con cuatro sedes: Guadalajara, Tuxtla Gutiérrez, Ciudad de México y ahora también en Fairfax, VA (USA). Para más información puedes visitar su página https://www.techwo.org/.

TechWo Community

Fuente de la imagen: https://www.techwo.org

Epic Queen   

Como su slogan lo dice “niñas creadoras de tecnología”, es una organización que tiene como propósito principal despertar el interés de niñas, para desarrollarse en el mundo de la tecnología, aunque esa es su meta central no es exclusivo para ellas, también pueden participar mujeres en general. Buscan cumplir este objetivo acercando a las niñas a esta área, a través de cursos y talleres, en las que se les enseña a ser generadoras de tecnología. Aquí te comparto su página oficial http://www.epicqueen.com/.

Epic queen

Fuente de la imagen: http://www.epicqueen.com/

GeekGirls

Esta organización es una de las pioneras con esta iniciativa, iniciaron labores desde el 2011. Su motivación principal es promover el orgullo de ser mujeres geek y buscar que más mujeres se unan con el fin de modificar el estereotipo de la mujer y que cada día sean más las que ocupen posiciones en las que predomina el género masculino. De igual forma que las demás comunidades esta ofrece talleres y charlas gratuitas que van enfocadas a la tecnología, el emprendimiento, arte y cultura geek. Para más información este es su sitio oficial  http://geekgirls.com.mx/.

Geek Girls

Fuente de la imagen: http://geekgirls.com.mx/

Estas son algunas de las iniciativas a las que personalmente he tenido acercamiento, a través de foros de tecnología, como Campus Party; además de que actualmente todas tienen una de sus sedes en Guadalajara, Jalisco, por lo que he tenido la oportunidad de asistir a los diferentes eventos que organizan. ¿Conocen otra iniciativa? No duden en compartirla en los comentarios.

SQL Básico: conceptos básicos

SQL (Structured Query Language) o en español Lenguaje Estructurado de Consulta es el lenguaje utilizado para definir, controlar y acceder a los datos almacenados en una base de datos relacional.

Se trata de un lenguaje universal empleado en cualquier sistema gestor de bases de datos relacional, cuenta con un estándar definido a partir del cual cada sistema gestor ha desarrollado una versión propia.

Sigue leyendo

¡No abuses del celular!

Si bien es cierto que hoy en día el uso del celular es en ocasiones indispensable, no puede desplazar a las personas, además de que nos ayuda a mantenernos comunicados y ni hablar del sinfín de aplicaciones que existen y que nos facilitan el trabajo como envío de correos, documentos o tareas, etc., y para colmo nos dan mucho entretenimiento, pero debemos aprender las reglas del balance para que algo que tiene tantas ventajas y herramientas no se convierta en algo malo. Sigue leyendo

Cursos gratis presenciales y en línea

Si uno de tus propósitos del 2017 es adquirir nuevos conocimientos, puedes hacerlo a través de muchos cursos que son completamente gratis y que además hay para todo tipo de gustos y necesidades, desde presenciales hasta en línea. Aquí te comparto algunas opciones en las que te puedes inscribir para cumplir tu objetivo.

Cursos en línea

convocatoria-prepaenlineasep-2017-1-abrePrepa en línea

Es un programa que te permitirá estudiar la prepa completamente gratis y desde cualquier lugar en el que te encuentres. Primero te tienes que inscribir a un curso propedéutico y aprobarlo, para después iniciar la prepa. La convocatoria estará abierta hasta el 3 de febrero, así que si te interesa no lo pienses más ¡inscribíte ya!

 

 

Sigue leyendo

¿Qué es realmente un Dinosaurio?

Cuando escuchamos la palabra Dinosaurio, lo primero que se nos viene a la mente son aquellos reptiles enormes, monstruosos, llenos de escamas, torpes para caminar y que se encontraban en todos lados: tierra, agua y aire. Pero esta idea tradicional está más que alejada de la realidad: los dinosaurios (estrictamente hablando) fueron exclusivamente terrestres, existieron aquellos del tamaño de una gallina de corral, algunos incluso tuvieron plumas y eran organismos ágiles e inteligentes. En esta entrada iremos viendo estos puntos de forma más detallada.

Sigue leyendo

Aprendizaje cooperativo y colaborativo

Durante nuestra vida académica, profesional y personal siempre será necesario trabajar en equipo, ya sea para cumplir con una tarea escolar, un proyecto profesional o un bien común familiar o de la comunidad en donde vivimos. Trabajar en equipo es la base del crecimiento en cualquier aspecto de nuestra vida, por eso es importante aprender a hacerlo desde pequeños, si bien, siempre tenemos presente su importancia y en cada momento intentamos fomentar este hábito, no es una tarea sencilla ¿Cuántos de ustedes han dejado a sus equipos de lado? ¿cuántos han hecho más trabajo que los demás? ¿cuántos no han aportado nada a sus equipos? Seguramente todos en algún momento hemos estado en alguna o todas estas situaciones, una de las razones es que la forma en que la mayoría hemos sido educados para trabajar en equipo es con el aprendizaje cooperativo, que aunque tiene sus ventajas, desde mi punto de vista es más efectivo cuando el aprendizaje se adquiere de forma colaborativa. En esta nota abordaré estos conceptos y sus diferencias. Sigue leyendo

Aprendizaje autogestivo

El aprendizaje autogestivo es el proceso que le permite al individuo dirigir la forma en que adquiere nuevo conocimiento, así como identificar sus aciertos y errores a la hora de estudiar, para diseñar estrategias adecuadas que le ayuden a avanzar en su proceso de aprendizaje.

La idea del aprendizaje autogestivo no es nueva, Anita Woolfolk menciona que “Años de investigaciones indican que el uso de buenas estrategias de aprendizaje ayuda a los estudiantes a aprender y que tales estrategias podrían enseñarse (Hamman, Berthelot, Saia y Crowley, 2000; Pressley y Harris, 2006).” (Woolfolk, 2010, p. 271).

Sigue leyendo

Estrellas fugaces

¡Buen inicio de semana! El día de hoy les traigo este brillante tema de las estrellas fugaces. Aunque nosotros los vemos como estrellas y hasta les pedimos deseos, se trata de meteoros que colisionan y se incendian al entrar en contacto con las altas capas de la atmósfera del planeta tierra. Sigue leyendo