
Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional.
Es un lenguaje interpretado, de tipado fuerte, dinámico y multiplataforma.
Los comentarios en Python se manejan con el símbolo #.
En lugar de utilizar llaves, utilizamos el tabulador o sangría.
Debes tener instalado el Sublime Text Manager.
Entrar a la página de instalación
Copiar código
view/Show console
Copiar código
Ejecutar
Las variables primitivas en Python son:
Enteras
Punto flotantes (float)
Cadenas
Booleanas
Puede haber ocasiones en las que desee especificar un tipo en una variable. Esto se puede hacer con el casting. Python es un lenguaje orientado a objetos, y como tal utiliza clases para definir tipos de datos, incluidos sus tipos primitivos.
Por lo tanto, la conversión en python se realiza mediante funciones de constructor.
Python divide los operadores en los siguientes grupos:
Operadores aritméticos
Operadores de Asignación
Operadores de comparación
Operadores logicos
Operadores de identidad
Operadores de membresía
Operadores bitwise
Operadores aritméticos
Operadores de Asignación
Operadores de comparación
Operadores logicos
Operadores de identidad
Operadores de membresía
Operadores bitwise
Operador Nombre Ejemplo
== Igualdad x == y
!= No igual x != y
> Mayor que x > y
< Menor que x < y
>= Mayor o igual x >= y
<= Menor que x <= y
is Regresa verdadero si ambas variables son del mismo objeto x is y
is notRegresa verdadero si ambas variables NO son del mismo objetox is not y
Apuntes de la sección 1: Introducción a Python
Hay cuatro tipos de variables agregadas en Python:
List: es una colección que está ordenada y cambiable. Permite duplicar miembros.
Tuple: es una colección que está ordenada e inmutable. Permite duplicar miembros.
Set: es una colección que no está ordenada ni indexada. No hay miembros duplicados.
Diccionario: es una colección que no está ordenada, modificable e indexada. No hay miembros duplicados.
Puede acceder a los elementos de la lista haciendo referencia al número de índice.
Para cambiar el valor de un artículo específico, consulte el número de índice.
Puede recorrer los elementos de la lista utilizando un bucle for.
Para determinar si un elemento específico está presente en una lista, use la palabra clave in.
Para determinar cuántos elementos tiene una lista, use el método len ().
Para agregar un elemento al final de la lista, use el método append ().
Existen varios métodos para eliminar elementos de una lista.
Una forma es usar el método de lista integrado copy ().
Una tupla es una colección que está ordenada e inmutable. En Python, las tuplas están escritas entre corchetes.
Puede acceder a los elementos de la tupla refiriéndose al número de índice, entre corchetes.
Una vez que se crea una tupla, no puede cambiar sus valores. Las tuplas son inmutables.
Puede recorrer los elementos de la tupla utilizando un bucle for.
Para determinar si un elemento específico está presente en una tupla, use la palabra clave in.
Para determinar cuántos elementos tiene una tupla, use el método len ().
Una vez que se crea una tupla, no puede agregarle elementos. Las tuplas son inmutables.
También es posible usar el constructor tuple () para hacer una tupla.
Un conjunto es una colección que no está ordenada ni indexada. En los conjuntos de Python están escritos con llaves.
Para determinar cuántos elementos tiene un conjunto, use el método len ().
Agregue varios elementos a un conjunto, usando el método update ().
Agregue un elemento a un conjunto, usando el método add ().
Una vez que se crea un conjunto, no puede cambiar sus elementos, pero puede agregar nuevos elementos.
Un diccionario es una colección que no está ordenada, que se puede cambiar e indexar. En Python, los diccionarios se escriben entre corchetes y tienen claves y valores.
Puede acceder a los elementos de un diccionario haciendo referencia a su nombre de clave entre corchetes.
También hay un método llamado get () que le dará el mismo resultado.
Puede cambiar el valor de un elemento específico refiriéndose a su nombre de clave.
Puede recorrer un diccionario utilizando un bucle for.
Cuando recorre un diccionario, el valor de retorno son las claves del diccionario, pero también hay métodos para devolver los valores.
Para determinar si una clave especificada está presente en un diccionario, use la palabra clave in.
Para determinar cuántos elementos (pares clave-valor) tiene un diccionario, use el método len ().
Apuntes de la sección 2: Colecciones o variables agregadas
Se escribe una "sentencia if" usando la palabra clave if.
Python se basa en la sangría, usando espacios en blanco, para definir el alcance en el código. Otros lenguajes de programación a menudo utilizan llaves {} para ese propósito.
La palabra clave elif es una forma en que Python encadena las condiciones (else if).
La palabra clave else atrapa cualquier cosa que no esté atrapada por las condiciones anteriores.
También puedes tener un else sin el elif:
Si solo tiene una instrucción que ejecutar, puede colocarla en la misma línea que la instrucción if.
Si solo tiene que ejecutar una instrucción, una para if, y otra para else, puede ponerlo todo en la misma línea.
Recuerde incrementar i, o de lo contrario el ciclo continuará para siempre.
El ciclo while requiere que las variables relevantes estén listas, en este ejemplo necesitamos definir una variable de indexación, i, que establecemos en 1.
Con la instrucción break, podemos detener el ciclo incluso si la condición while es verdadera.
Con la instrucción continue podemos detener la iteración actual y continuar con la siguiente instrucción.
Un ciclo for se usa para iterar sobre una secuencia (es decir, una lista, una tupla, un diccionario, un conjunto o una cadena).
Esto se parece menos a la sentencia en otros lenguajes de programación, y funciona más como un método de iterador que se encuentra en otros lenguajes de programación orientados a objetos.
Con el ciclo for podemos ejecutar un conjunto de sentencias, una vez para cada elemento en una lista, tupla, conjunto, etc.
Incluso las cadenas son objetos iterables, contienen una secuencia de caracteres.
Con la instrucción break, podemos detener el ciclo antes de que haya pasado por todos los elementos.
Con la instrucción continue podemos detener la iteración actual del ciclo y continuar con la siguiente instrucción.
La palabra clave else en un ciclo for especifica un bloque de código que se ejecutará cuando finalice el ciclo.
Un ciclo anidado es un ciclo dentro de un ciclo.
El "ciclo interno" se ejecutará una vez para cada iteración del "ciclo externo".
Para recorrer un conjunto de códigos un número específico de veces, podemos usar la función range ().
La función range () devuelve una secuencia de números, comenzando desde 0 de forma predeterminada e incrementa en 1 (de forma predeterminada) y termina en un número específico.
Tenga en cuenta que el rango (6) no son los valores de 0 a 6, sino los valores de 0 a 5.
La función range () por defecto es 0 como valor de inicio, sin embargo, es posible especificar el valor de inicio agregando un parámetro: range (2, 6), lo que significa valores de 2 a 6 (pero sin incluir 6).
La función range () por defecto incrementa la secuencia en 1, sin embargo, es posible especificar el valor de incremento agregando un tercer parámetro: range (2, 20, 2).
Apuntes de la sección 3: Estructuras condicionales y ciclos
Una función es un bloque de código que solo se ejecuta cuando se llama.
Puede pasar datos, conocidos como parámetros, a una función.
Una función puede devolver datos como resultado.
En Python, una función se define usando la palabra clave def.
Para llamar a una función, use el nombre de la función seguido de paréntesis.
La información se puede pasar a funciones como parámetro.
La información se puede pasar a funciones como parámetro.
Los parámetros se especifican después del nombre de la función, dentro de los paréntesis. Puede agregar tantos parámetros como desee, solo sepárelos con una coma.
Si llamamos a la función sin parámetro, utiliza el valor predeterminado.
Puede enviar cualquier tipo de parámetro de datos a una función (cadena, número, lista, diccionario, etc.), y se tratará como el mismo tipo de datos dentro de la función.
Si envía una lista como parámetro, seguirá siendo una lista cuando llegue a la función.
Para permitir que una función devuelva un valor, use la instrucción return.
Python también acepta la recursión de funciones, lo que significa que una función definida puede llamarse a sí misma.
La recursión es un concepto matemático y de programación común. Significa que una función se llama a sí misma.
Esto tiene el beneficio de significar que puede recorrer los datos para alcanzar un resultado.
El desarrollador debe tener mucho cuidado con la recursión, ya que puede ser bastante fácil escribir una función que nunca termina.
Una función lambda es una pequeña función anónima.
Una función lambda puede tomar cualquier número de argumentos, pero solo puede tener una expresión.
La expresión se ejecuta y el resultado se devuelve.
Python es un lenguaje de programación orientado a objetos.
Casi todo en Python es un objeto, con sus propiedades y métodos.
Una clase es como un constructor de objetos, o un "plano" para crear objetos.
Para crear una clase use la clase de palabra clave.
Todas las clases tienen una función llamada __init __ (), que siempre se ejecuta cuando se inicia la clase.
Use la función __init __ () para asignar valores a las propiedades del objeto u otras operaciones que sean necesarias para realizar cuando se crea el objeto.
El parámetro self es una referencia a la instancia actual de la clase y se usa para acceder a las variables que pertenecen a la clase.
No tiene que llamarse self, puedes llamarlo como quieras, pero tiene que ser el primer parámetro de cualquier función en la clase.
Puede modificar propiedades en objetos como una variable con la notación punto.
Puede eliminar propiedades en objetos usando la palabra clave del.
Puedes eliminar objetos usando la palabra clave del.
La herencia nos permite definir una clase que hereda todos los métodos y propiedades de otra clase.
La clase padre es la clase que se hereda, también llamada clase base.
La clase hija es la clase que se hereda de otra clase, también llamada clase derivada.
Cualquier clase puede ser una clase primaria, por lo que la sintaxis es la misma que la creación de cualquier otra clase.
Para crear una clase que hereda la funcionalidad de otra clase, envíe la clase base como un parámetro al crear la clase derivada.
La palabra clave pass cuando no deseamos agregar ninguna otra propiedad o método a la clase.
Cuando agrega la función __init __ (), la clase derivada ya no heredará la función __init __ () de la clase base.
Para conservar la herencia de la función __init __ () de la clase base, agregue una llamada a la función __init __ () de la clase base.
Una vez que heredamos la función inicial de la clase base, podemos agregar funcionalidad en la función __init __ ().
Podemos añadir propiedades y métodos en la clase derivada.
Apuntes de la sección 4: Las funciones y las clases en Python
Un iterador es un objeto que contiene un número contable de valores.
Un iterador es un objeto sobre el que se puede iterar, lo que significa que puede recorrer todos los valores.
Técnicamente, en Python, un iterador es un objeto que implementa el protocolo del iterador, que consiste en los métodos __iter __ () y __next __ ().
Las listas, las tuplas, los diccionarios y los conjuntos son todos objetos iterables. Son contenedores iterables de los que puedes obtener un iterador.
Todos estos objetos tienen un método iter () que se usa para obtener un iterador.
Incluso las cadenas son objetos iterables, y pueden devolver un iterador.
Para crear un objeto / clase como un iterador, debe implementar los métodos __iter __ () y __next __ () a su objeto.
El método __iter __ () actúa de manera similar, puede realizar operaciones como un iterador, pero siempre debe devolver el objeto iterador.
El método __next __ () también le permite realizar operaciones y debe devolver el siguiente elemento de la secuencia.
En el método __next __ (), podemos agregar una condición de terminación para generar un error si la iteración se realiza un número específico de veces.
Considere que un módulo es lo mismo que una biblioteca de código.
Un archivo que contiene un conjunto de funciones que desea incluir en su aplicación.
Para crear un módulo, simplemente guarde el código que desea en un archivo con la extensión de archivo .py.
Ahora podemos usar el módulo que acabamos de crear, usando la sentencia import.
Nota: cuando use una función de un módulo, use la sintaxis: nombre_módulo nombre_de_función.
El módulo puede contener funciones, como ya se describió, pero también variables de todos los tipos (arreglos, diccionarios, objetos, etc.).
Puede crear un alias cuando importe un módulo, utilizando la palabra clave as.
El objeto datetime tiene un método para formatear objetos de fecha en cadenas legibles.
El método se llama strftime () y toma un parámetro, formato, para especificar el formato de la cadena devuelta.
JSON es una sintaxis para almacenar e intercambiar datos.
JSON es texto, escrito con notación de objetos JavaScript.
Python tiene un paquete incorporado llamado json, que se puede usar para trabajar con datos JSON.
Si tiene una cadena JSON, puede analizarla utilizando el método json.loads ().
Si tiene un objeto Python, puede convertirlo en una cadena JSON utilizando el método json.dumps ().
El ejemplo anterior imprime una cadena JSON, pero no es muy fácil de leer, sin sangrías ni saltos de línea.
El método json.dumps () tiene parámetros para facilitar la lectura del resultado.
También puede definir los separadores, el valor predeterminado es (",", ":"), lo que significa usar una coma y un espacio para separar cada objeto, y dos puntos y un espacio para separar las claves de los valores.
Un RegEx, o expresión regular, es una secuencia de caracteres que forma un patrón de búsqueda.
RegEx se puede usar para verificar si una cadena contiene el patrón de búsqueda especificado.
Python tiene un paquete incorporado llamado re, que se puede usar para trabajar con expresiones regulares.
El módulo re ofrece un conjunto de funciones que nos permiten buscar una cadena para una coincidencia.
findall: devuelve una lista que contiene todas las coincidencias
search: Devuelve un objeto Match si hay una coincidencia en cualquier parte de la cadena
split: Devuelve una lista donde la cadena se ha dividido en cada coincidencia
sub: Sustituye una o varias coincidencias con una cadena.
Python permite la entrada de línea de comandos.
Eso significa que podemos pedirle información al usuario.
El método es un poco diferente en Python 3.6 que Python 2.7.
Python 3.6 usa el método input ().
Python 2.7 usa el método raw_input ().
Para asegurarnos de que una cadena se muestre como se espera, podemos formatear el resultado con el método format().
El método format () le permite formatear partes seleccionadas de una cadena.
Para controlar dichos valores, agregue marcadores de posición (llaves {}) en el texto y ejecute los valores a través del método format ().
Puede agregar parámetros dentro de las llaves para especificar cómo convertir el valor.
Si desea usar más valores, simplemente agregue más valores al método format ().
Puede usar números de índice (un número dentro de las llaves {0}) para asegurarse de que los valores se colocan en los marcadores de posición correctos.
Apuntes de la sección 5: Otros objetos en Python
Podemos añadir, sin eliminar su contenido anterior, abriéndolo como “a”.
Con “x” crea un archivo y manda error si el archivo ya existe.
Para eliminar un archivo, debe importar el módulo del sistema operativo y ejecutar su función os.remove ().
Para evitar obtener un error, es posible que desee comprobar si el archivo existe antes de intentar eliminarlo.
Para eliminar una carpeta completa, use el método os.rmdir ().
Sólo se pueden borrar carpetas vacías.
Apuntes de la sección 6: Manejo de archivos con Python
MongoDB almacena datos en documentos similares a JSON, lo que hace que la base de datos sea muy flexible y escalable.
Para poder experimentar con los ejemplos de código en este tutorial, necesitará acceso a una base de datos MongoDB.
Puede descargar una base de datos gratuita de MongoDB.
Para crear una base de datos en MongoDB, comience por crear un objeto MongoClient, luego especifique una URL de conexión con la dirección IP correcta y el nombre de la base de datos que desea crear.
MongoDB creará la base de datos si no existe, y establecerá una conexión con ella.
Importante: ¡En MongoDB, una base de datos no se crea hasta que obtiene contenido!
MongoDB espera hasta que haya creado una colección (tabla), con al menos un documento (registro) antes de que realmente cree la base de datos (y la colección).
Para crear una colección en MongoDB, use el objeto de base de datos y especifique el nombre de la colección que desea crear.
MongoDB creará la colección si no existe.
Importante: ¡En MongoDB, una colección no se crea hasta que obtiene contenido!
MongoDB espera hasta que haya insertado un documento antes de que realmente cree la colección.
Puede verificar si existe una colección en una base de datos enumerando todas las colecciones.
O puede verificar una colección específica por nombre.
Un documento en MongoDB es lo mismo que un registro en bases de datos SQL.
Para insertar un registro, o documento como se llama en MongoDB, en una colección, utilizamos el método insert_one ().
El primer parámetro del método insert_one () es un diccionario que contiene los nombres y los valores de cada campo en el documento que desea insertar.
El método insert_one () devuelve un objeto InsertOneResult, que tiene una propiedad, inserted_id, que contiene el id del documento insertado.
En MongoDB usamos los métodos find y findOne para buscar datos en una colección.
Al igual que la instrucción SELECT se usa para encontrar datos en una tabla en una base de datos MySQL.
Para seleccionar datos de una colección en MongoDB, podemos usar el método find_one ().
El método find_one () devuelve la primera aparición en la selección.
Para seleccionar datos de una tabla en MongoDB, también podemos usar el método find (). El método find () devuelve todas las ocurrencias en la selección.
El primer parámetro del método find () es un objeto de consulta. En este ejemplo, utilizamos un objeto de consulta vacío, que selecciona todos los documentos de la colección.
Cuando encuentre documentos en una colección, puede filtrar el resultado utilizando un objeto de consulta.
El primer argumento del método find () es un objeto de consulta, y se usa para limitar la búsqueda.
Para realizar consultas avanzadas, puede usar modificadores como valores en el objeto de consulta.
P.ej. para encontrar los documentos donde el campo de "dirección" comienza con la letra "S" o superior (alfabéticamente), use el modificador mayor que: {"$ gt": "S"}.
Use el método sort () para ordenar el resultado en orden ascendente o descendente.
El método sort () toma un parámetro para "nombre de campo" y un parámetro para "dirección" (ascendente es la dirección predeterminada).
Use el valor -1 como el segundo parámetro para ordenar descendente.
Puede actualizar un registro o documento como se llama en MongoDB, utilizando el método update_one ().
El primer parámetro del método update_one () es un objeto de consulta que define qué documento actualizar.
Nota: Si la consulta encuentra más de un registro, solo se actualiza la primera aparición.
El segundo parámetro es un objeto que define los nuevos valores del documento.
Para actualizar todos los documentos que cumplan los criterios de la consulta, use el método update_many ().
Puede actualizar un registro o documento como se llama en MongoDB, utilizando el método update_one ().
El primer parámetro del método update_one () es un objeto de consulta que define qué documento actualizar.
Nota: Si la consulta encuentra más de un registro, solo se actualiza la primera aparición.
El segundo parámetro es un objeto que define los nuevos valores del documento.
Para actualizar todos los documentos que cumplan los criterios de la consulta, use el método update_many ().
Para limitar el resultado en MongoDB, usamos el método limit ().
El método limit () toma un parámetro, un número que define cuántos documentos devolver.
Puede eliminar una tabla o colección como se llama en MongoDB, utilizando el método drop ().
El método drop () devuelve true si la colección se eliminó correctamente y false si la colección no existe.
Apuntes de la sección 7: Conectar Python con MongoDB
Entrar a la página de MySQL/Download
Registrarse
Instalar
Instalar el paquete en Python
Probar el paquete
Comience creando una conexión a la base de datos.
Use el nombre de usuario y la contraseña de su base de datos MySQL.
Para crear una base de datos en MySQL, use la declaración "CREATE DATABASE".
Puede verificar si existe una base de datos enumerando todas las bases de datos en su sistema usando la declaración "SHOW DATABASES".
O puede intentar acceder a la base de datos al hacer la conexión.
Si la base de datos no existe, obtendrá un error.
Para crear una tabla en MySQL, use la instrucción "CREATE TABLE".
Asegúrese de definir el nombre de la base de datos cuando cree la conexión.
Puede verificar si existe una tabla enumerando todas las tablas en su base de datos con la declaración "SHOW TABLES".
Al crear una tabla, también debe crear una columna con una clave única para cada registro.
Esto se puede hacer definiendo una CLAVE PRIMARIA.
Usamos la declaración "INT AUTO_INCREMENT PRIMARY KEY" que insertará un número único para cada registro. Comenzando en 1, y aumentado en uno por cada registro.
Si la tabla ya existe, use la palabra clave ALTER TABLE.
Para llenar una tabla en MySQL, use la declaración "INSERT INTO".
La declaración mydb.commit () es necesario realizar los cambios, de lo contrario no se realizarán cambios en la tabla.
Para insertar varias filas en una tabla, use el método executemany ().
El segundo parámetro del método executemany () es una lista de tuplas, que contiene los datos que desea insertar.
Puede obtener la identificación de la fila que acaba de insertar preguntando al objeto del cursor.
Si inserta más de una fila, se devuelve el ID de la última fila insertada.
Para seleccionar de una tabla en MySQL, use la declaración "SELECT".
Para seleccionar solo algunas de las columnas de una tabla, use la instrucción "SELECT" seguido de los nombres de columna.
Si solo está interesado en una fila, puede usar el método fetchone ().
El método fetchone () devolverá la primera fila del resultado.
Al seleccionar registros de una tabla, puede filtrar la selección utilizando la instrucción "WHERE".
También puede seleccionar los registros que comienzan, incluyen o terminan con una letra o frase determinada.
Use el % para representar caracteres comodín.
Cuando el usuario proporciona valores de consulta, debe escapar de los valores.
Esto es para evitar las inyecciones de SQL, que es una técnica común de piratería para destruir o hacer un mal uso de su base de datos.
El módulo mysql.connector tiene métodos para escapar de los valores de consulta.
Vea la instrucción ORDER BY para ordenar el resultado en orden ascendente o descendente.
La palabra clave ORDER BY ordena el resultado ascendente de forma predeterminada. Para ordenar el resultado en orden descendente, use la palabra clave DESC.
Use la palabra clave DESC para ordenar el resultado en orden descendente.
Puede actualizar los registros existentes en una tabla utilizando la instrucción "UPDATE".
Observe la declaración: mydb.commit (). Es necesario realizar los cambios, de lo contrario no se realizarán cambios en la tabla.
Observe la cláusula WHERE en la sintaxis de UPDATE: La cláusula WHERE especifica qué registro o registros deben actualizarse. Si omite la cláusula WHERE, todos los registros se actualizarán.
Se considera una buena práctica escapar de los valores de cualquier consulta, también en las declaraciones de actualización.
El módulo mysql.connector usa el marcador de posición% s para escapar de los valores en la instrucción delete.
Puede limitar el número de registros devueltos por la consulta, utilizando la instrucción "LIMIT".
Si desea devolver cinco registros, comenzando desde el tercer registro, puede usar la palabra clave "OFFSET".
Puede eliminar registros de una tabla existente usando la declaración "DELETE FROM".
Observe la declaración: mydb.commit (). Es necesario realizar los cambios, de lo contrario no se realizarán cambios en la tabla.
Observe la cláusula WHERE en la sintaxis DELETE: la cláusula WHERE especifica qué registro (s) se deben eliminar. Si omite la cláusula WHERE, se eliminarán todos los registros.
Se considera una buena práctica escapar de los valores de cualquier consulta, también en las declaraciones de eliminación.
El módulo mysql.connector usa el marcador de posición% s para escapar de los valores en la instrucción delete.
Puede eliminar una tabla existente utilizando la declaración "DROP TABLE".
Si la tabla que desea eliminar ya está eliminada, o por cualquier otro motivo no existe, puede usar la palabra clave IF EXISTS para evitar recibir un error.
En esta clase encontrarás todos los archivos del curso.
En esta clase encontrarás el PDF del curso.
El lenguaje Python es de propósito general, cuya expansión y popularidad es creciente. Python apuesta por la simplicidad, versatilidad y rapidez de desarrollo. Es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad.
Su popularidad se debe, entre otras cosas se debe a la cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero. La sencillez y velocidad con la que se crean los programas. La cantidad de plataformas en las que podemos desarrollar, además, Python es gratuito, incluso para propósitos empresariales. Los objetivos de este curso son:
Entender las bases del lenguaje como las variables, operadores y expresiones en Python.
Aprender las diferentes tipos de colecciones o variables agregadas
Aprender las Estructuras condicionales y ciclos en Python.
Aprender a crear e invocar las funciones en Python
Comprender el uso de otros objetos utilizados en Python.
Aprender a manejar los archivos locales con Python.
Aprender a conectar, insertar, consultar y modificar los datos en la base de datos NoSQL MongoDB.
Aprender a conectar y manejar las bases de datos MySQL.
Este curso está enfocado a los desarrolladores de aplicaciones multiplataformas. No es necesario que sepas programar, sólo una computadora conectada a Internet y muchas ganas de aprender. Contarás con el eBook del curso.