El tema es que yo ya sabia toda la teoria de base de datos relacionales en el Tecnico de Desarrollo de Aplicaciones Informaticas y ademas he tenido que ampliar este conocimiento con lo del master (que ademas versaba sobre base de datos noSQL, pero teniamos un tema de crea base de datos con MySQL). Sin embargo como gran parte de los datos que uso los analizo con las librerias de R y de Python, no he tenido necesidad de hacer mas cursos de SQL.
Pero claro al llegar a la entrevista y decir que en mi ultimo puesto no usaba SQL (pq no tenia acceso a los datos de la base de datos directamente 😣) pues parece que no es muy convincente. Asi que manos a la obra para refrescar todo esto.
El fin de semana pasado en el Measurecamp estube hablando con un analista de este tema. SQL no es dificil de aprender si sabes como funciona. Ademas, cuando explicaba a unos amigos (developers) el momento en la entrevista que me pregunta por esto directamente me dijeron: buaaah, en un mes te da aprender todo el SQL q puedas necesitar.
Asi que llevo unas semanas actualilzando mis conocimientos en SQL y la verdad. SQL no tiene ningun misterio: aqui un resumen si nunca lo has usado
Como es una sentencia en SQL (se pronuncia "siquel" en ingles)
SELECT name, age FROM customers WHERE age > 18 ORDER BY age
SELECT -> aqui se seleccionan las variables. Si quieres seleccionarlas todas ellas debes poner un *
FROM -> la tabla donde quieras seleccionar esas variables
---
WHERE-> la condicion que quieras que se cumpla: una fecha (ej. year = 2016),
ORDER BY -> ordenado por la variable que quieras.
Todo muy facil hasta aqui. En datacamp tienes un curso que puedes encontrar mas abajo. .Si quieres puedes jugar un poco con esto, pero si lo has utilizado anteriormente n un par de horas lo tienes hecho.
Aqui tienes el curso:
Curso iniciacion sobre SQL
Una vez que ya sabes como funciona el lenguaje (facilillo no?) viene el tema de poder utilizar varias tablas. Aqui la cosa ya se complica un poco mas, sobre todo porque dependiendo de la base de datos vamos a poder utilizar un dialecto de SQL u otro. En realidad esto no es mas que una extension del propio lenguaje SQL para darle mas funcionalidades a este. Al fin y al cabo SQL es muy parecido pero cada "dialecto" te va a hacer la vida mas facil o mas complicada en cada caso a la hora de hacer queries.
Por ejemplo aqui puedes ver las diferencias entre Transact SQL y PostgresSQL.Pero, para resumir el primero lo usa Microsofts,y por tanto sus bases de datos SQL server y demas, mientras que el segundo lo utilizan muchas bases de datos abiertas.
Pero volviendo al tema...
Si queremos utilizar dos tablas o mas!, como vamos a poder juntar las tablas?
Pues logicamente vamos a necesitar que tengan un indice( columna) en comun. Para ellos vamos a tener en cada tabla alguna columna que se repita en otra tabla, aunque no tenga el mismo nombre, eso nos va a dar igual porque vamos a poder renombrarla.
Si usas Excel, piensa en como funciona unVLOOKUP (o buscarV). Tienes una columna que comparas con otras, pues eso. No tiene mas.Bueno, un poquico mas solo
En funcion de las necesidades cuando vayamos q juntar estas dos tablas (join las tablas) tenemos determinadas formas de hacerlo:
Podemos querer copiar todo lo que se queda a la derecha de la primera tabla o a la izquierda o solo vamos querer quedarnos con las columnas que tengan en comun. Para esto tenemos diferentes tipos de join (left-join,right-join, inner-join).