2022/04/29

Buscando capacitación introductoria de SQL

En el marco de las cosas que estoy haciendo de IOT, andaba necesitando hallar capacitación gratuita de SQL para recomendar y lo primero que se me ocurrió fue buscar en Oracle, ya que tiene OracleDB y también MySQL. De paso busqué en Udemy filtrando con free, esta es mi experiencia. Aclaro que mi visión de todos estos cursos es un tanto limitada pues yo ya sé SQL, como que sólo puedo decir más o menos que tan completos o comprensibles son, destacando cuando hay algo interesante.

 

Oracle

El curso que hallé es https://devgym.oracle.com/pls/apex/dg/class/databases-for-developers-foundations.html dice que se puede hacer en unas 6 horas. Al comienzo me agarró una sensación de que aunque simpático era medio inusable, recién en el tercer bloque entré en sintonía. y empecé a considerarlo útil.

Tenés que darte de alta en:

  • https://www.oracle.com/index.html
  • view accounts
  • Oracle account
  • Create account

no hace falta cloud account, se puede usar gmail.

 

Tuve algunas dificultades con el SSO pero creo que fué más de capa ocho. Utilicé el método de preparar el mejor mensaje de consulta posible, esto es revisar a conciencia cada paso imaginándo qué me iban a preguntar y llegué a que tenía mal puesta la dirección en el keepass, lo cual me daba un comportamiento errático porque a veces copiaba esta dirección y a veces la llenaba a mano, muy confuso y difícil de diagnosticar.

Seguramente el comportamiento errático fue 100% por lo mío, pero como quedé medio traumatizado,  hago el login en oracle.com y luego voy a cada subsistema.

Cada módulo tiene varias secciones:
 

El video

 
Es muy simpático y aparentemente superficial, pero si prestás antención son muy didácticos.
 

Take live sql tutorial

 
Para los ejercicios tenés tres opciones, copio y pego:
 
 
 
Sólo probé la última. Cuando entrás en la sección  arriba a la derecha te ofrece login al laboraratorio
 
login
login

 
 
Luego a la derecha te replica los enunciados que tenías, asi no tenés que estar yendo y viniendo de tab.
 
enunciados
enunciados


 
Algunos tiene un botón de prerequistos. Todas las instrucciones las podés copiar y pegar o enviar directamente al editor, yo te recomiendo que las transcribas, es una manera de ir memorizando.
 

Further study

 
Respecto a esta sección, si estuviera corto de tiempo y tuviera que priorizar, les prestaría atencion a estos:
 

https://blog.jooq.org/say-no-to-venn-diagrams-when-explaining-joins/
https://blog.jooq.org/a-beginners-guide-to-the-true-order-of-sql-operations

 
En general, cuando te referencia a From Oracle Database 11g Release 2 Documentation Library y From Oracle-BASE son algo heavy, es el manual.
 

No relacionales

 
Menciona modelos no relacionales como Document Storage pero medio para apalearlos, obviamente son los amigos relaciones.
 

Si tu objetivo es el mismo que yo exploré, que es tener una idea de cómo operar sin meterte en detalles finos como los distintos tipos de bases de datos, o sea, si con
  • create table
  • insert
  • select
  • update
  • delete
  • una idea básica de cómo modelar y normalizar
te contenta y no partís completamente de cero, te puede servir. No le prestaría mucha atención al módulo de multi insert. Si lo tomás por favor dejame un comentario.

Cursos de Udemy


Udemy no es gratis, pero hay algunos cursos en algunos momentos que lo son, paso a detallar mi experiencia.

A beginner's guide to MySQL


https://www.udemy.com/course/mysql-basics

Media hora, inglés no nativo, mediocre.

Me hizo notar un detalle, que si no estás en embebidos ni se te pasa por la cabeza:

Para ejecutar MySQL necesitás un sistema operativo, al igual que con Erlang. Resultaría interesante saber que opciones hay para un sistema embebido baremetal o con FreeRTOS. Es difícil de buscar pues "database server bare metal" te lleva a la definión en el contexto de bases de datos que es tener el sistema operativo y nada más que el servidor de base de datos.
 
Otra dificultad es que al buscar "embedded database" ser refiere a un servidor que se puede incluir en la aplicación, por ejemplo para un servidor web en java existe  Jetty, https://github.com/cpantel/boxControl.

Busquemos entonces con "sqlite freertos" y tras varios saltos llegamos a https://sqlite.org/custombuild.html, mmh, podría... hacerlo otra persona, olvidemos el asunto pero sin olvidar que existe una opción comercial https://www.ittia.com/products/ittia-db-iot que parece interesante.

Volviendo al curso, empieza horrible, leyendo las presentación, luego mejora, va mostrando ejemplos de operaciones sin entrar en mucho detalle conceptual.


Lo que más me sirvió de toda esta experiencia es que repasé que para comparar con NULL es no es valor = NULL sino isnull valor, que de algún modo asocié en clase de Testing de Sistemas IoT que alguien había puesto en javascript:

if (value != NaN)

y cuando falló le pude sugerir que era

if ( isNaN(value) )



Me quedaron pendientes para otra vida: