¿Cómo aprender SQL? ¿Cuáles son algunos buenos recursos en línea, como sitios web, blogs o videos?

La mejor manera de aprender cualquier idioma, incluido SQL, es usarlo para avanzar hacia algo que le interesa .

A menos que de alguna manera piense que SQL es la cosa más fascinante del universo, es difícil sentarse y asimilarse a través de W3School y sus ilk. En su lugar, debe encontrar un problema que le interese y que requiera cierto conocimiento de SQL .

Desafortunadamente, no hay muchos recursos buenos que tomen este enfoque de “primero el objetivo”. Es por eso que recientemente comencé a escribir publicaciones de blog sobre “SQL for PMs”:

  1. Aprenda SQL calculando el valor de la vida útil del cliente Parte 1: Configuración, conteo y filtrado
  2. Aprenda SQL calculando el valor de la vida útil del cliente, parte 2: GROUP BY y JOIN
  3. Convierte tus habilidades de Excel en SQL (E-Book gratis)

Para más referencias enciclopédicas, otras respuestas tienen muchos enlaces buenos.

(Además, avíseme si tiene buenas ideas. Me encantaría continuar con la serie).

Si te gustó esta respuesta, te animo a que me sigas en Twitter.

Hay mucho material en línea y en realidad es muy difícil separar lo bueno de lo malo. Creo que se trata de dividir la tarea de “aprender SQL” en un conjunto concreto de acciones seguido de la selección manual del material que se adapte a su temperamento.

Aprendí SQL en aproximadamente dos semanas, sin ningún conocimiento previo de las bases de datos. Si quieres hacer lo mismo, sigue mi plan.

1. Fundamentos de la base de datos: dedique algo de tiempo a ver qué es una base de datos: entienda cómo funciona (¿qué es una “clave”? ¿Qué tipo de roles existen en una base de datos? ¿Qué es una tabla? Etc.).
Encontré este conjunto de videos que pueden satisfacer esta pregunta:
01 – Fundamentos de bases de datos – Introducción a los conceptos básicos de bases de datos

2. Bases de datos relacionales:
Las bases de datos relacionales son probablemente la organización de base de datos más utilizada. Es bastante fácil de comprender así que dale un par de horas.
Ver el mismo video que el anterior.

3. Tipos de datos: si no sabe nada acerca de los tipos de datos (si no puede responder a preguntas como ¿qué es un número (0,2)? O qué es una cadena?), Definitivamente debería analizar los aspectos fundamentales de los tipos de datos.
Entendiendo los tipos de datos en SQL Server | lynda.com tutorial

4. Metodología de uniones: comprender cómo se pueden unir los conjuntos de datos en las tablas y cómo se extraen los datos.
Consultas de SQL Server Parte 6 – UNIONES (Uniones internas y externas)

5. Descargar SQL Server Express:
Descargue la versión gratuita de MS SQL y cree una base de datos en su computadora local. SQL Server Express Edition | Microsoft

6. Comience a programar: este sonido es muy simple, pero la realidad es que solo tiene que comenzar a programar. APRENDE a programar haciendo programación.

Obtenga algunos desafíos de SQL en el trabajo, por amigos o encuéntrelos en línea.

Cuando comience a programar, encontrará problemas, probablemente ya con su primera consulta. Para obtener ayuda durante la programación, vaya a: Tutorial de SQL

¡Buena suerte!

La unidad principal detrás de una base de datos relacional es aumentar la precisión al aumentar la eficiencia con la que se almacenan los datos. Por ejemplo, los nombres de cada uno de los millones de personas que emigraron a los Estados Unidos a través de la Isla Ellis a fines del siglo XX se registraron a mano en grandes hojas de papel; personas de la ciudad de Londres tenían su país de origen ingresado como Inglaterra, Gran Bretaña, Reino Unido, Reino Unido o Reino Unido, etc. Múltiples formas de registrar la misma información conducen a futuras confusiones cuando es necesario simplemente saber cómo muchas personas vinieron del país ahora conocido como el Reino Unido. Puedes ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Curso Cursos en línea La solución moderna para este problema es la base de datos. Se hace una sola entrada para cada país, por ejemplo, en una lista de referencia que podría llamarse la tabla País. Cuando alguien necesita indicar el Reino Unido, solo tiene una opción disponible de la lista: una sola entrada llamada “Reino Unido”. En este ejemplo, “Reino Unido” es la representación única de un país, y cualquier información adicional sobre este país puede usar el mismo término de la misma lista para referirse al mismo país. Por ejemplo, una lista de códigos telefónicos de país y una lista de castillos europeos deben referirse a países; Al utilizar la misma tabla de países para proporcionar esta información idéntica a las dos nuevas listas, hemos establecido nuevas relaciones entre diferentes listas que solo tienen un elemento en común: país. Una base de datos relacional, por lo tanto, es simplemente una colección de listas que comparten algunos datos comunes.

SQL es un lenguaje declarativo en el que se proporciona el resultado u operación esperado sin los detalles específicos sobre cómo realizar la tarea. Los pasos necesarios para ejecutar las sentencias de SQL se manejan de forma transparente por la base de datos de SQL. A veces, el SQL se caracteriza por no ser de procedimiento porque los lenguajes de procedimiento generalmente requieren que se especifiquen los detalles de las operaciones, como abrir y cerrar tablas, cargar y buscar índices, o vaciar buffers y escribir datos en sistemas de archivos. Por lo tanto, se considera que SQL está diseñado para un nivel conceptual más alto de operación que los lenguajes de procedimiento porque las operaciones físicas y lógicas de nivel inferior no están especificadas y están determinadas por el motor de SQL o el proceso del servidor que lo ejecuta.

Las instrucciones se proporcionan en forma de declaraciones, que consisten en una declaración SQL específica y parámetros y operandos adicionales que se aplican a esa declaración. Las declaraciones de SQL y sus modificadores se basan en los estándares oficiales de SQL y ciertas extensiones que implementa cada proveedor de base de datos.

  • Puedes ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Cursos Cursos en línea SELECCIONAR: se utiliza para recuperar ciertos registros de una o más tablas.
  • INSERTAR: se utiliza para crear un registro.
  • ACTUALIZACIÓN – Se utiliza para cambiar ciertos registros.
  • ELIMINAR: se utiliza para eliminar ciertos registros.
  • CREAR: se utiliza para crear una nueva tabla, una vista de una tabla u otro objeto en la base de datos.
  • ALTER: se utiliza para modificar un objeto de base de datos existente, como una tabla.
  • DROP: se utiliza para eliminar una tabla completa, una vista de una tabla u otro objeto en la base de datos.
  • GRANT – Se usa para dar un privilegio a alguien.
  • REVOKE: usado para recuperar los privilegios otorgados a alguien. Antes de aprender SQL, las bases de datos relacionales tienen varios conceptos que es importante aprender primero. Las bases de datos almacenan los datos de un sistema de información. Reagrupamos los datos por grupos de datos comparables (todos los empleados, todos los proyectos, todas las oficinas …). Para cada grupo de datos comparables, creamos una tabla . Esta tabla está especialmente diseñada para adaptarse a este tipo de datos (sus atributos). Por ejemplo, una tabla llamada ” employee que almacena a todos los empleados se diseñaría así:

Los datos almacenados en una tabla se denominan entidades . Como una tabla se suele representar como una matriz, los atributos de datos (nombre, apellido …) se denominan columnas y los registros (los empleados) se denominan filas . id_employee es un identificador técnico específico de base de datos denominado clave principal . Se utiliza para vincular las entidades de una tabla a otra. Para ello, debe ser único para cada fila. Una clave principal suele estar subrayada. Cualquier atributo único (por ejemplo, el correo) o grupo de atributos (por ejemplo, el nombre y el apellido) puede ser la clave principal de la tabla, pero se recomienda usar una identificación técnica adicional (id_employee) para la clave principal.

Vamos a crear una segunda tabla llamada project que almacena los proyectos de la empresa:

id_project es la clave principal de la tabla del proyecto y el manager es una clave externa . Una clave externa es una identificación técnica que es igual a una de las claves principales almacenadas en otra tabla (aquí, la tabla de empleados). Al hacer esto, el proyecto de Google está vinculado al empleado Larry PAGE. Este enlace se llama una relación . Una clave externa suele ir precedida de un puntero. Tenga en cuenta que varios proyectos pueden apuntar a un administrador común , por lo que un empleado puede ser el administrador de varios proyectos.

Ahora, queremos crear, no un solo enlace, sino múltiples enlaces. Así que creamos una tabla de unión . Una tabla de unión es una tabla que no se utiliza para almacenar datos, sino que vincula las entidades de otras tablas. Vamos a crear una tabla llamada members que vincula a los empleados con el proyecto.

Así que vamos a enumerar los diferentes tipos de relaciones:

  • Doce y cincuenta y nueve de la noche,
  • Uno a muchos (por ejemplo, el gerente de un proyecto),
  • Muchos a muchos (por ejemplo, los miembros de los proyectos).

Para cada tipo de relaciones, hay una manera de vincular las entidades:

  • Relación uno a muchos: cree una clave externa de una tabla de entidades a la otra,
  • Relación de muchos a muchos: crear una tabla de unión,
  • Relación uno a uno: simplemente fusionar las dos tablas.

Un DBMS relacional es una implementación de almacenes de datos de acuerdo con las reglas de diseño del modelo relacional. Este enfoque permite operaciones en los datos de acuerdo con el álgebra de relaciones, como proyecciones, selecciones, combinaciones, operaciones de conjuntos (unión, diferencia, intersección, …) y más. Junto con Boolen ALgebra (y, no, existe, …) y otros conceptos matemáticos, el álgebra relacional construye un sistema matemático completo con operaciones básicas, operaciones complejas y reglas de transformación entre las operaciones. Ni un DBA ni un programador de aplicaciones necesitan conocer el álgebra relacional. Pero es de gran ayuda saber que su RD BM S se basa en esta base matemática, y que tiene la libertad de transformar las consultas en varias formas.

El modelo relacional diseña las estructuras de datos como relaciones (tablas) con atributos (columnas) y la relación entre esas relaciones. La información sobre una entidad del mundo real se almacena dentro de una fila de una tabla. Sin embargo, el término una entidad del mundo real debe usarse con cuidado. Puede ser que nuestro intelecto identifique una máquina como un solo avión en este sentido. Dependiendo de los requisitos de información, puede ser suficiente colocar toda la información en una fila de un avión de mesa. Pero en muchos casos es necesario dividir la entidad en sus partes y modelarlas como entidades discretas, incluida la relación con todo. Si, por ejemplo, se necesita información sobre cada asiento individual dentro del avión, se requerirá un segundo asiento de mesa y alguna forma de unir asientos a los aviones.

Esta forma de dividir la información sobre entidades reales en un modelo de datos complejo depende en gran medida de los requisitos de información del concepto de negocio. Además, hay algunos requisitos formales, que son independientes de cualquier aplicación: el modelo de datos resultante debe ajustarse a lo que se denomina forma normal. Normalmente estos modelos de datos consisten en un gran número de tablas y relaciones entre ellos. Tales modelos no predeterminarán su uso por aplicaciones; son estrictamente descriptivos y no restringirán el acceso a los datos de ninguna manera.

Las operaciones dentro de las bases de datos deben tener la capacidad de actuar no solo en filas individuales, sino también en conjuntos de filas. El álgebra relacional ofrece esta posibilidad. Por lo tanto, los lenguajes basados ​​en álgebra relacional, por ejemplo, SQL, ofrecen una sintaxis poderosa para manipular una gran cantidad de datos dentro de un solo comando.

Como las operaciones dentro del álgebra relacional pueden ser reemplazadas por operaciones diferentes pero lógicamente equivalentes, un lenguaje basado en el álgebra relacional no debe predeterminar cómo su sintaxis se asigna a las operaciones (el plan de ejecución). El lenguaje debe describir lo que se debe hacer y no cómo hacerlo. Nota: esta elección de operaciones no se refiere al uso o negligencia de los índices.

Como se describió antes, el modelo relacional tiende a dividir los objetos en subobjetos. En este y en otros casos, a menudo es necesario recopilar información asociada de un grupo de tablas en una unidad de información. ¿Cómo es esto posible sin enlaces entre las tablas y filas participantes? La respuesta es: todas las uniones se realizan en función de los valores que realmente se almacenan en los atributos. El rDBMS debe tomar sus propias decisiones sobre cómo llegar a todas las filas en cuestión: si leer todas las filas potencialmente afectadas e ignorar aquellas que son irrelevantes (exploración completa de la tabla) o, usar algún tipo de índice y leer solo aquellas que coincidan con los criterios. Este enfoque basado en valores permite incluso el uso de operadores distintos al operador de igualdad.

SELECT * FROM gift JOIN box ON gift.extent

Este comando unirá todos los registros de “regalo” a todos los registros de “caja” con una “extensión” mayor (lo que significa “extensión”).

Los ladrillos básicos para un almacenamiento de datos eficiente, y por esta razón para todos los sistemas de gestión de bases de datos (DBMS), son implementaciones de algoritmos de acceso rápido de lectura y escritura a datos ubicados en dispositivos de almacenamiento masivo y memoria central, como rutinas para otras técnicas de indexación, así como almacenamiento en búfer Bloques sucios y no sucios. Estos algoritmos no son exclusivos de DBMS. También se aplican a los sistemas de archivos, algunos lenguajes de programación, sistemas operativos, servidores de aplicaciones y mucho más.

Además de la apropiación de estas rutinas, un DBMS garantiza el cumplimiento con el paradigma ACID . Este cumplimiento significa que, en un entorno multiusuario, todos los cambios a los datos dentro de una transacción son

Se puede hacer una distinción entre las siguientes generaciones de diseño e implementación de DBMS:

  • Las estructuras de datos de Dbms se diseñan en un modelo jerárquico padre / hijo donde cada hijo tiene exactamente un padre (con la excepción de la estructura raíz, que no tiene padre). El resultado es que los datos se modelan y almacenan como un árbol. Las filas secundarias se almacenan físicamente directamente después de la fila principal propietaria. Por lo tanto, no es necesario almacenar la ID del padre o algo parecido dentro de la fila secundaria (XML realiza un enfoque similar). Si una aplicación procesa datos exactamente de esta manera jerárquica , es muy rápido y eficiente. Pero si es necesario procesar los datos en una secuencia, que se desvía de este orden, el acceso es menos eficiente. Además, los DBMS jerárquicos no proporcionan el modelado de las relaciones n: m. Otra falla es que no hay posibilidad de navegar directamente a los datos almacenados en niveles más bajos. Primero debe navegar por la jerarquía dada antes de alcanzar esos datos.
  • Dbms de red El modelo de red diseña estructuras de datos como una red compleja con enlaces de uno o más nodos principales a uno o más nodos secundarios. Incluso los ciclos son posibles. No hay necesidad de un solo nodo raíz. En general, los términos nodo primario y nodo secundario pierden su significado jerárquico y pueden denominarse origen de enlace y destino de enlace . Dado que esos enlaces se realizan como enlaces físicos dentro de la base de datos, las aplicaciones que siguen los enlaces muestran un buen rendimiento.
  • Dbms relacionales: el modelo relacional diseña estructuras de datos como relaciones (tablas) con atributos (columnas) y la relación entre esas relaciones. Las definiciones en este modelo se expresan de manera declarativa pura, sin predeterminar ningún problema de implementación como los enlaces de una relación a otra o una determinada secuencia de filas en la base de datos. Las relaciones se basan puramente en el contenido. En el tiempo de ejecución, todos los enlaces y uniones se realizan mediante la evaluación de los valores de datos reales, por ejemplo: ... WHERE employee.department_id = department.id ... La consecuencia es que, con la excepción de las claves externas explícitas, no hay ningún significado de la denotación de padre / hijo o propietario / miembro. Las relaciones en este modelo no tienen ninguna dirección.
  • Dbms orientados a objetos: en la actualidad, la mayoría de las aplicaciones están escritas en un lenguaje de programación orientado a objetos (OOP). Si, en tales casos, el DBMS subyacente pertenece a la clase de DBMS relacional, surgirán los llamados Dbms orientados a objetos. Es decir, a diferencia del lenguaje de aplicación, el DBMS relacional puro (prDBMS) no admite conceptos centrales de OOP:
  • No Sql: el término No SQL significa el grupo emergente de DBMS que difiere de otros conceptos centrales: No necesariamente apoyan todos los aspectos del paradigma ACID. Los datos no deben estar estructurados necesariamente de acuerdo con ningún esquema. Su objetivo es el soporte para datos distribuidos y tolerantes a fallas con un volumen muy grande, vea también: Teorema de Cap. Las implementaciones difieren ampliamente en las técnicas de almacenamiento: puede ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Cursos Combo All in 1 en línea
  • Nueva Sql Esta clase de DBMS busca proporcionar el mismo rendimiento escalable que los sistemas No SQL mientras se mantiene el paradigma ACID, el modelo relacional y la interfaz SQL. Intentan alcanzar la capacidad de la escala evitando la recuperación de peso pesado o el control de concurrencia

Como la mayoría de los otros estándares, el propósito principal de SQL es la portabilidad . Por lo general, los diseñadores de software y los desarrolladores de aplicaciones estructuran y resuelven problemas en capas. Cada nivel de abstracción se realiza en su propio componente o subcomponente: la presentación al usuario final, la lógica empresarial, el acceso a los datos, el almacenamiento de datos, la red y las demandas de los sistemas operativos son representantes típicos de dichos componentes. Se organizan como una pila y cada capa ofrece una interfaz a las capas superiores para usar su funcionalidad. Si uno de esos componentes es realizado por dos proveedores diferentes y ambos ofrecen la misma interfaz (como API, servicio web, especificación de idioma, …) es posible intercambiarlos sin cambiar las capas que se basan en ellos. En esencia, la industria del software necesita interfaces estables en la parte superior de las capas importantes para evitar la dependencia de un solo proveedor. SQL actúa como una interfaz de este tipo para los sistemas de bases de datos relacionales.

Si una aplicación utiliza solo los comandos SQL que están definidos dentro de SQL estándar, debería ser posible intercambiar el RDBMS con una diferente sin cambiar el código fuente de la aplicación. En la práctica, este es un trabajo difícil, porque las implementaciones concretas ofrecen numerosas características adicionales y a los ingenieros de software les encanta usarlas. Puedes ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Curso Cursos en línea Un segundo aspecto es la conservación del know how . Si un estudiante aprende SQL, está en posición de desarrollar aplicaciones que se basan en un sistema de base de datos arbitrario. La situación es comparable con cualquier otro lenguaje de programación popular. Si uno aprende Java o C-Sharp, puede desarrollar aplicaciones de cualquier tipo que se ejecuten en muchos sistemas de hardware diferentes e incluso en diferentes arquitecturas de hardware.

Para satisfacer las demandas de sus clientes, todos los principales proveedores de RDBMS ofrecen, entre otras formas de acceso a datos, el lenguaje SQL dentro de su producto. Las implementaciones cubren Core SQL , un conjunto de características estandarizadas adicionales y una gran cantidad de características adicionales, no estandarizadas. El acceso a funciones estandarizadas puede utilizar la sintaxis regular o una sintaxis específica de implementación.

Siempre prefiero los cursos en línea cuando se trata de aprender a codificar. Este curso sobre Udemy me ha resultado muy útil, lo que me ayudó a mejorar mis conceptos de SQL: Curso de SQL para principiantes: aprender SQL utilizando la base de datos MySQL

Aquí está la breve descripción del curso:

Descripción del curso

Curso de SQL para principiantes: Aprenda SQL usando la base de datos MySQL

Esto es lo que obtienes al inscribirte en este curso:

Explicación palabra por palabra: En todo el curso, explico cada línea de código, sin omitir una sola línea de código.

Ejemplos de práctica: conjunto especial de ejemplos de práctica incluidos al final de cada sección.

Contenido de calidad impresionante: Más de 5 horas de videos HD (1080p).

Bien estructurado y fácil de aprender: el curso ha sido especialmente diseñado para facilitar a los estudiantes el aprendizaje de SQL.

Soporte 24 X 7: siempre estaré allí para guiarte en tu viaje para convertirte en experto en SQL.

Nota: las consultas y problemas de los estudiantes serán contestados inmediatamente.

_________________________________________________________________________

Aquí está todo lo que aprenderá en este curso completo:

Qué son las bases de datos y por qué se utilizan las bases de datos.

Qué es SQL y cómo se puede usar para manipular datos en una base de datos.

¿Cuáles son los diferentes tipos de consultas de definición de datos que se utilizan para crear tablas?

¿Cuáles son los diferentes tipos de consultas de manipulación de datos que pueden utilizarse para manipular datos?

Primero, comenzamos el curso con la introducción básica sobre las bases de datos y entendemos qué son exactamente las bases de datos y por qué se utilizan. Luego, aprendemos cómo instalar las herramientas necesarias que nos permitirán crear nuestras propias bases de datos y agregar datos a ellas.

Avanzando, aprendemos algunos operadores de SQL y también aprendemos cómo estos operadores se pueden usar en consultas de SQL, lo que nos permite formar consultas más complejas.

Avanzando aprendemos cómo se pueden usar las sentencias de SQL para insertar, actualizar y eliminar datos en la base de datos. Una vez hecho esto, avanzamos para aprender sobre las uniones y aprender cuáles son los diferentes tipos de uniones.

Una vez que completamos todos y cada uno de los conceptos en SQL, finalmente tenemos un conjunto de ejemplos de práctica, que le permitirán practicar consultas SQL por su cuenta.

Lo mejor que me gustó de este curso es que incluye muchos ejemplos de práctica, lo que hizo que los conceptos de SQL estuvieran muy arraigados en mi mente. Esto es lo que diferencia este curso de otros.

El curso se vende por alrededor de $ 20 en Udemy, pero lo compré con un cupón de $ 10.

Aquí tiene un cupón de $ 10 para este curso si desea aprender SQL: Curso de SQL para principiantes: Aprenda SQL usando la base de datos MySQL

Espero que esto ayude.

Gracias

PD: Puede comunicarse conmigo si tiene preguntas relacionadas con la codificación.

Aprendí SQL en la escuela. Estructura de datos, sintaxis para hacer varias cosas en un par de plataformas SQL diferentes (aprendimos Microsoft SQL Server y Oracle).

Estas lecciones fueron valiosas para entender lo que hay disponible para mí . Podría escribir código línea por línea para CREAR TABLA … ALTERAR TABLA … Pero no fue hasta que empecé a usarlo en mi trabajo con SQL Server Management studio que empecé a entender lo que era posible y realmente disfrutaba el trabajo de base de datos. No soy un maestro, y muchas veces tengo que buscar cosas (¿cómo escribes un CTE de nuevo?) … pero puedo aprender lo que se requiere para construir la mayoría de las cosas.

Ok, las aplicaciones de escala masiva que abarcan múltiples servidores en varios continentes están un poco fuera de mi alcance, pero no empiezas en ese nivel. Tienes que empezar en alguna parte …

Lo que recomiendo hacer es esto:

  1. Descargue la plataforma con la que desea trabajar (prefiero SQL Server Express Edition | Microsoft) e instálela en su máquina personal o de desarrollo.
  2. Ábralo y use la GUI para configurar una nueva base de datos y agregue una sola tabla (clic derecho> agregar …)
  3. Luego, agregue una sola columna a esa tabla, nuevamente usando la GUI (haga clic con el botón derecho> agregar …)
  4. Luego ejecute una exportación de la base de datos a una ventana de consulta para que pueda ver lo que acaba de suceder. Lo que la herramienta hizo por su cuenta sin tener que ejecutar una sola línea de código
  5. Continúe haciendo esto para cada una de las diferentes opciones (tipos de columna, claves relacionales, etc.) Obtenga una idea de lo que es posible sin siquiera codificar. Luego, aprenda lo que sucede detrás de escena cuando lo haga exportándolo una y otra vez. Entonces si hay algo que no entiendes ve y busca en google.
  6. Repítalo una y otra vez hasta que esté familiarizado con la forma de configurar una base de datos con más de 20 tablas sin siquiera codificar. Es sorprendente lo que es posible sin código en estos días.
  7. Ahora agregue algunos datos falsos. Una vez más, hay una GUI para esto también! Cosas asombrosas
  8. Ahora haz algunas consultas. Seleccione *. agrupar por … tener … agregados … subconsultas … CTE … tantas posibilidades Aprende lo que necesitas, por ahora, pero amplía tu vocabulario con el tiempo porque a veces hay formas más simples de hacer cosas que ni siquiera sabes.
  9. Ahora pruebe a escribir procedimientos y vistas almacenados. Google “cómo escribir un procedimiento almacenado” … es gratis y probablemente le dirá MÁS de lo que lo hará un libro de texto si pasa la misma cantidad de tiempo leyendo.
  10. Ahora conecte el procedimiento almacenado a un extremo delantero y extraiga algunos datos del servidor. Esto implica cadenas de conexión. Aprende sobre eso también, son importantes. ¿Seguridad integrada? ¿Que es eso?
  11. Luego, intente un Mapeador Relacional de Objetos y, básicamente, elimine todo el esfuerzo que dedicó a aprender procedimientos almacenados porque los ORM hacen que su vida sea mucho más fácil (está bien, los procedimientos almacenados aún son útiles a veces). Los ORM, si no están familiarizados, esencialmente le permiten asignar su base de datos a la lógica de su aplicación para que no tenga que escribir códigos de acceso a datos repetitivos. Pruebe uno … o más … Entity Framework es bueno en .net.

En resumen, me parece que es más fácil trabajar con la herramienta directamente en escenarios prácticos y aprender qué opciones (recientes de 2015) están disponibles sin tener que esforzarse tanto para aprender basura semántica línea por línea que algunos libros de texto escritos hace 10 años. Hace pensar que es la forma correcta de hacer algo. Sé perezoso si puedes, pero tómate el tiempo para entender las cosas con las que puedes ser perezoso y en qué áreas requieren más esfuerzos prácticos y una comprensión profunda para “hacer las cosas bien”.

Una vez que estés creando bases de datos como si fuera solo otro martes, entonces preocupate por convertirte en un “Maestro”.

Aquí hay algunos pasos básicos y recursos para aprender SQL:

1. Evaluación / actualización de sus conocimientos de fondo

  • [OPCIONAL] Ayuda a comprender el fondo matemático (formal) de SQL: intente echar un vistazo al álgebra relacional y al cálculo relacional:
  • Comprender los conceptos básicos de las bases de datos relacionales es una necesidad. Pruebe los siguientes recursos o espere y vea los videos que se mencionan a continuación, donde se incluye esta información 🙂
  • 2. Parte I: SQL interactivo

    Utiliza SQL para dos propósitos: como un DML (lenguaje de manipulación de datos) para manipular un RDBMS y como un DDL (lenguaje de definición de datos) para definir un RDBMS. Creo que su proceso de aprendizaje debería centrarse en estos dos objetivos.

    • Comience por aprender SQL como un DDL :
    • Aprendiendo sobre el uso de SQL como DML : este video puede ayudarte con eso –
      • Abordar consultas simples : SELECCIONE y DESDE, luego continúe con la comprensión de lo que DÓNDE hace a su consulta. Eche un vistazo a las funciones agregadas y luego aborde GROUP BY, HAVING y ORDER BY.
      • Continuar para unir consultas ,
      • Consultas anidadas ; y
      • Consultas con conjunto de operaciones.

      Lectura recomendada: Amazon.com: Fundamentos de los sistemas de bases de datos (7ª edición) (9780133970777): Ramez Elmasri, Shamkant B. Navathe: Libros = lectura obligatoria que cubre toda la parte I muy bien y con muchos detalles. ¡El libro también contiene ejercicios con soluciones que te ayudarán enormemente!

      3. Aprende más: practica

      Después de familiarizarse con los conceptos básicos de SQL, es hora de seguir adelante y practicar. Aquí hay algunos recursos que le ayudarán a consolidar el conocimiento que ha acumulado con los videos y las lecturas:

      • Introducción a SQL para Data Science: curso interactivo en línea gratuito que le enseñará todo sobre el uso de SQL como DML paso a paso. Ideal para novatos.
      • Después de este curso, es hora de mejorar tu juego. Descargue MongoDB o MySQL (o una de las otras 7 soluciones de software de base de datos de fuente abierta y gratuita Top 7) y comience a practicar usted mismo haciendo sus propias tablas de datos y consultando. Es mejor comenzar con una aplicación pequeña con una estructura simple: dibuje un EER y construya una aplicación pequeña de base de datos para, por ejemplo, una biblioteca (con tablas como AUTOR, LIBRO, CLIENTE) y luego escale a aplicaciones más grandes con estructuras más complejas (piense en un supermercado, por ejemplo, o en un gimnasio).

      4. Parte II: SQL incorporado

      Ahora está listo para aprender más sobre SQL incorporado con Python / R / Java / …. Aquí, tendrás que ir a un lenguaje específico en recursos:

      • Introducción a las bases de datos en Python: usando SQLAlchemy, el kit de herramientas de la base de datos para Python.
      • Quick-R: Database Access, SQL y R – Simple Talk: información general sobre el uso de R con bases de datos.
      • Java For Complete Beginners, http://tinman.cs.gsu.edu/~raj/bo… , Tutorial de SQL incorporado: Cómo escribir aplicaciones Java que necesitan una base de datos.

      Tutorial de SQL de W3school Son los mejores tutoriales para principiantes.

      Sin embargo, puedes revisar algunos videos / listas de reproducción de YouTube para aprender SQL, como:

      • Fundamentos de la base de datos (DBMS)
      • Conceptos básicos de SQL Server

      Viaje a la Autoridad SQL de Pinal Dave es el gran recurso para aprender SQL.

      Compruebe SQL con Manoj blog en SQL Server

      También hay muchos materiales de aprendizaje en estos días que puedes encontrar en línea de forma gratuita. Hay muchos blogs, foros, canales de YouTube, etc. Solo busque en línea y obtendrá muchos recursos.

      Antes de los conceptos básicos de SQL, primero debe conocer algunos conceptos de base de datos como:

      – Qué es DBMS & RDBMS

      – Normalización de la base de datos | 1NF, 2NF, 3NF

      – Teclas (teclas primarias, extranjeras, compuestas, candidatas, súper)

      – Propiedades de la base de datos ACID

      – Restricciones de integridad en una base de datos (SQL Server)

      Para los conceptos básicos de SQL usted debe saber:

      – Una introducción a SQL y sus componentes.

      – Cómo CREAR objetos DB como tablas, vistas, SPs, Funciones, etc.

      – ¿Qué son los comandos y la diferencia de DDL, DML, DCL y TCL entre ellos?

      – Procedimientos almacenados frente a funciones (diferencia entre SP y UDF) – SQL Server

      – Uniones y tipos de SQL Server

      – Orden de procesamiento lógico de consultas SQL

      – ¿Qué son los registros, las páginas, las extensiones, el montón en SQL Server?

      Compruebe las certificaciones en la ruta de certificación de SQL Server 2012

      Serie de conceptos básicos de SQL en Youtube

      Para comenzar con lo básico y familiarizarse con SQL, debe comenzar con w3schools dot com: Tutorial de SQL

      – SQL es un estándar muy genérico y común para todos los sistemas de base de datos, verifique qué es SQL y cuál es su historial: Qué es SQL, PL / SQL, T-SQL y la diferencia entre ellos

      – Ahora, para trabajar con consultas SQL, debe seguir un sistema de base de datos SQL, como SQL Server, Oracle, MySQL, etc. Puede descargar la versión gratuita de SQL Server desde aquí: Página en youtube.com

      – Para aprender SQL intermedio y avanzado, puede seguir MSDN: Transact-SQL Reference (Motor de base de datos)

      Revisa este blog sobre varios temas de SQL: SQL con Manoj.

      Head First SQL

      Compre Head First SQL Reserve en línea a precios bajos en India

      Head First SQL es ideal para alguien que quiere una introducción a SQL. Lo que realmente hace que sea una lectura interesante es el uso de humor geek completamente infundido en el libro. Leyendas de fotos divertidas, ejercicios divertidos y juegos de palabras, y hacen que la idea de enseñar algo tan seco como el contenido de TI sea muy agradable y descaradamente entretenido.

      De manera similar a las líneas de los anteriores libros de la serie Head First, como lector, uno tendría una experiencia diferente para un libro técnico de nivel principiante. Se han utilizado muchos elementos visuales y gráficos para explicar los temas. Por ejemplo, para explicar cómo funciona una declaración de selección, el autor te golpea con la creación de un servicio de citas para ilustrar los puntos. Para explicar la diferencia entre subselecciones y uniones externas, el autor las arrastra a una etapa simbólica y debate sobre la rectitud de uso. Todos estos elementos y escenarios extravagantes solo hacen que sea más fácil para el lector recordar la información.

      El libro es ideal para alguien que está empezando a aprender SQL y también tiene un capítulo que explica los beneficios de usar una base de datos en primer lugar. La mayoría de los temas se adhieren a puntos comunes de SQL genéricos como selecciones, alteraciones de tablas, uniones, actualizaciones, funciones agregadas, eliminaciones, ordenamientos, cláusulas donde, subselecciones, etc. Se tocan restricciones, vistas y algunas alarmas de seguridad elementales, pero no en grandes profundidades

      Puede iniciar el aprendizaje de SQL con la ayuda de los siguientes sitios web:

      · Tutorial de SQL

      · Entrenamiento interactivo en línea de SQL para principiantes

      SQL es muy fácil en el lado de la sintaxis y por otro lado tiene la lógica compleja y los conceptos. Es una gran herramienta de análisis. Puede crear varios tipos de conjuntos de resultados utilizando los mismos datos.

      Como principiante, puedes comenzar con la pequeña teoría y luego comenzar con los siguientes elementos:

      · Diferentes tipos de base de datos.

      · Mesas

      · Tipos de datos

      · Consultas DML

      · Consultas DDL

      · Procedimientos almacenados

      · Funciones

      · Disparadores

      · Índices

      Después de aprender los conceptos anteriores, puede comenzar con el concepto avanzado de SQL. Una vez que haya cubierto los temas enumerados anteriormente, espero que se desarrolle su interés y automáticamente obtendrá una idea sobre cómo continuar en este curso.

      Cuando se trata de aprender cualquier lenguaje técnico, deberíamos centrarnos en los aspectos prácticos (prácticos) de él en lugar de solo en el conocimiento teórico. Por lo tanto, le aconsejo que cree una base de datos ficticia e intente implementar su aprendizaje.

      1. Aprende SQL

      Proporciona varios tutoriales y referencias sobre lenguajes de desarrollo web como HTML, CSS, JavaScript, PHP, SQL y JQuery, que cubren la mayoría de los aspectos de la programación web.

      Su tutorial de SQL en línea lo guía a través de la sintaxis y las declaraciones, palabras clave y funciones más importantes. Las descripciones cortas pero concretas y muchos ejemplos hacen que este tutorial sea fácil de leer y entender.

      El tutorial completo está disponible sin registro.

      2. Academia Vertabelo

      Vertabelo Academy ofrece cursos interactivos de SQL , disponibles directamente en el navegador.

      El curso de “Consultas SQL” comienza con consultas simples, avanzando a través de consultas de GRUPO POR temas avanzados como subconsultas. También encontrará información sobre los cambios sutiles entre los distintos métodos de unión, que incluyen INNER JOIN, LEFT JOIN, RIGHT JOIN y OUTER JOIN. Finalmente, tendrás la oportunidad de probar tus conocimientos en un cuestionario exhaustivo.

      En el curso “Operación sobre datos en SQL” , aprenderá cómo administrar datos en bases de datos relacionales, es decir, cómo insertar, actualizar y eliminar información de una base de datos.

      En el curso “Creación de tablas en SQL” , encontrará información sobre cómo administrar la estructura de una base de datos relacional. Aprenderá a crear tablas y definir sus diversos elementos, como claves primarias, claves ÚNICAS y claves externas. Conocerás cómo usar y definir restricciones. Finalmente, descubrirás cómo crear vistas.

      Cada curso presenta docenas de ejercicios interactivos con una explicación detallada de la teoría detrás de la lección y una consola interactiva que verifica su solución. Después de completar todas las lecciones, puede tomar una prueba final para probar su conocimiento.

      Puede comenzar el curso sin registrarse, pero se le pedirá que se registre después de completar los primeros ejercicios. Puede registrarse con su dirección de correo electrónico o sus perfiles sociales (Facebook, Google+, Twitter o GitHub).

      3. Codecademy – “Aprender SQL”

      Codecademy es una plataforma en línea que ofrece una amplia gama de cursos gratuitos de codificación en lenguajes de programación como HTML, JavaScript, jQuery, PHP, Python y Ruby. Además de estos cursos, los estudiantes de Codecademy pueden aprender cómo administrar datos con SQL.

      Como todos los otros cursos en Codecademy, “Learn SQL” es gratis e interactivo. Cubre los conceptos básicos de los fundamentos de la base de datos: tablas, consultas, funciones agregadas, construcción de consultas avanzadas de bases de datos y más.

      El curso consta de 4 lecciones que se centran en:

      • Comandos básicos de SQL para manipular los datos almacenados en bases de datos relacionales.
      • Los comandos SQL más utilizados para consultar una tabla en una base de datos.
      • Uso de SQL para realizar cálculos durante una consulta.
      • consultar múltiples tablas utilizando uniones

      La interfaz de usuario de cada lección se divide en tres paneles. El de la izquierda contiene una descripción del ejercicio con una breve introducción teórica. En el centro, hay una línea de comandos SQL interactiva donde el usuario escribe SQL en una base de datos SQLite . El panel de la derecha presenta una representación visual del esquema de la base de datos con el resultado de la consulta.

      Después de completar una lección, puede probar sus conocimientos con un cuestionario o dominar sus habilidades con un proyecto del mundo real para enseñarle cómo aplicar lo que está aprendiendo de una manera práctica y práctica. Desafortunadamente, tanto los exámenes como los proyectos están disponibles solo para usuarios que se hayan suscrito a una versión Pro de Codecademy.

      Para participar en el curso, debe registrarse utilizando una dirección de correo electrónico o una cuenta de Google o Facebook.

      4. Khan Academy ofrece a sus usuarios micro conferencias en forma de videos de YouTube, muchos ejercicios prácticos y un panel de aprendizaje personalizado. Combinadas, estas herramientas les permiten a los alumnos estudiar a su propio ritmo dentro y fuera del aula.

      Entre los muchos cursos que ofrece Khan Academy, puede encontrar un curso gratuito de SQL denominado “Introducción a SQL: consultas y gestión de datos”.

      Cada lección consta de dos elementos. La ventana de la izquierda es un video tutorial, mientras que la ventana de la derecha muestra los cambios en tiempo real en la estructura de la base de datos y los resultados de las consultas realizadas en la base de datos SQLite. Los ejercicios están respaldados por documentación y consejos útiles. Después de terminar la primera parte del curso, los alumnos completan un proyecto más avanzado.

      Para empezar, el mejor consejo que puedo dar a cualquiera que esté buscando trabajar con SQL o mejorar sus habilidades en SQL es prestar atención a la cantidad de filas que devuelven sus consultas. Las combinaciones y condiciones en su cláusula where pueden tener un efecto en el número de filas devueltas. Comprenda qué tipos de cambios pueden afectar el número de filas devueltas. Aprender los últimos y mejores trucos no ayudará cuando tu conjunto de resultados sea incorrecto.

      Además, prueba tu SQL mientras lo escribes. Aprende los trucos y matices. Realize that if you have a query that performs additive aggregates (SUM/COUNT), introducing a join has the potential to invalidate your totals. Understand how NULLs truly behave. Think of how a NULL value can affect an IN or EXISTS subquery.

      Now that I got that off of my chest, in no particular order

      Learn the analytic/windowing functions. You probably know SUM() – it’s time to learn SUM () OVER (). Tom Kyte’s excellent Expert One-On-One Oracle has a thorough chapter on analytic functions in SQL. In many cases, entire subqueries can be replaced with cleverly-used analytic functions. Even if you’re not using Oracle, many modern RDBMS support analytic functions and his resource is second-to-none. The book is required reading for anyone who works with databases.

      Speaking of Tom Kyte, he’s got one of the best Q-and-A sites on the internet – ask Tom: Ask TOM Home. Ask Tom was my homepage for many, many years. Tom, and his readers, often come up with clever SQL to solve everyday problems. It has a definite Oracle slant but there are plenty of general SQL-related questions on the site. It’s been online longer than I can remember and is a true wealth of information.

      Take the time to understand your database’s optimizer. Learn how your platform compiles plans for your queries and what opportunities you have, if any, to improve the plans. Throw out some of the things you’ve heard. Full-table-scans are not always bad. Index lookups are not always preferred. It entirely depends on what you’re trying to ask of your database. Learn the join types, nested loop joins, hash joins, merge joins, and when they’re appropriate.

      Learn your database’s data dictionary. Each RDBMS has one. From there, you can start writing SQL that creates (and even executes) SQL. This will save you tons of time and permit you to automate many tasks.

      Learn the with clause. Using a with clause instead of an inline view enhances both readability and can also optimize performance if certain values are to be re-used.

      Start thinking in sets, not in rows. Learn when you can use EXISTS/NOT EXISTS to filter rows, to merge result sets together, etc. Your queries will perform better when you treat your data as a set and not a collection of rows. Avoid row-by-row (ie slow-by-slow) processing whenever possible. Understand correlated and non-correlated subqueries.

      Learn what SQL functions are included with your database. Each database offers a set of string, numeric, aggregation, statistical, and analytic functions. One of the ways I became interested in advanced statistics was by reading the Oracle documentation and learning about the statistical functions supplied with the database.

      If your database supports it, write some user-defined functions. Even some procedures. User-defined functions are a terrific way to extend the capabilities of your database.

      As far as books go, read anything by Tom Kyte and Joe Celko. Explore topics on Relational Algebra Rel – Wikipedia….

      Most importantly, stay curious. Understand your data model. Learn about your data and think of interesting questions to ask of your data. From there, write the queries. The more you do this, and the more you push yourself to answer questions of your data, the better you’ll be with writing queries.

      Finally, the best place to learn about more advanced SQL capabilities is your database’s documentation. Nearly all RDBMS ship with excellent documentation – read it to find out what your platform is capable of.

      Basic SQL is pretty easy. Of course, there are little trivialities to each RDBMS that will creep up as you try to learn the language, but let’s take the MSSQL Northwind database as an example:

      SELECT * FROM authors ORDER BY au_lname ASC, au_fname ASC

      Which means “show me everything (*) in the ‘authors’ table and when you do, put in order by the au_lname column first and on columns that tie, further sort by the ‘au_fname’ column”

      After you do a number of those, the basic SELECT syntax will be easy.

      Unfortunately, tables pretty much never exist on their own. Sure, sometimes they do – after all, maybe you just really wanted a listing of authors.

      But let’s say you wanted a listing of sales by author… Well, that requires a joining of the authors table to the titleauthor table (to get a list of his books) to the titles table to get the sales for each title. The titleauthor table is a facilitation table to accomodate a many-to-many join, which in UML would be expressed as “Each title can have 1 or more authors. Each author can have 0 or more titles.”

      What does that kind of join look like?

      SELECT ytd_sales AS Sales, authors.au_fname + ‘ ‘+ authors.au_lname AS Author, ToAuthor = (ytd_sales * royalty) / 100, ToPublisher = ytd_sales – (ytd_sales * royalty) / 100 FROM titles INNER JOIN titleauthor ON titles.title_id = titleauthor.title_id INNER JOIN authors ON titleauthor.au_id = authors.au_id ORDER BY Sales DESC, Author ASC

      This is not an exceptional query. You’ll create queries of this complexity on a regular basis if you’re creating data exports / reports from SQL tables.

      Taken piecemeal, you can learn what each part means and take the time to understand what each keyword (keywords are all-caps is this example) does. However, it takes time to be able to sit at a blank query window and write something like this – the first few times will probably make you want to pull your hair out.

      To really get going with SQL, you should take the time to find some sort of education. That could be online courses, a friend or a book – maybe even something else – but sitting down and trying to “just do it” will be an arduous road.

      I actually did sit down and learn it in the “just do it” way – but when I did, I didn’t have a pressing project. I just learned it because I knew eventually I’d have to know how. And it took me a few months of regular practice to really “get it”.

      These days, after having done many projects that use SQL of some form or another, I can breathe SQL syntax over a casual lunch. But I now have lots of practice.

      It’s easy on its face. But under the surface, it takes a lot to master.

      FYI – in case you start on MSSQL DB, I made sure to use the official examples so that I could be sure they work. They’re here:

      http://technet.microsoft.com/en-

      You learn SQL by doing SQL. It’s just not that hard. A little curiosity, your laptop, and Google is all you need.

      Sit down at your workstation and start up SQL interpreter or one of the open-source console programs. But the basic interpreter is best.

      Type in the commands yourself – It’s the fastest way to learn. You’ll make mistakes, but so what?

      Open up a google window. Start thinking up data you want to grab out of a database. If you don’t have a database, make one from scratch . If you can’t figure something out, Google for some hints, try again. If you get errors, Google the error messages, revise your query, and go again.

      I learned SQL this way. I set up mySQL on my laptop and just started from scratch building a database, importing data from various sources (munging it with PERL a bit) and worked from there. Adding, dropping tables, columns, triggers, etc.

      Working on your own system, you can’t hurt anything. Be bold!

      Along the way, I picked up a couple of books and worked through the exercises with the the book in my lap.

      It’s not rocket surgery!

      Here are some excellent resources to learn SQL online, hope can help you to learn SQL in one complete day:

      • Stanford – Introduction to Databases (Coursera)
      • SQL exercises
      • SQLZOO
      • Database eLearning
      • PostgreSQL tutorial
      • PostgreSQL exercises
      • The Schemaverse is a game, I never played it so I can’t tell much
      • SQLite
      • Sams Teach Yourself SQL in 10 Minutes
      • Learn SQL The hardway – I like this text book a lot.
      • SQLRU
      • SQLCourse

      Hopefully the resources and links above will be helpful and enough to get you started with SQL.

      1. Before you learn SQL you need to learn how relational databases work from the design point of view. Read Tom Jewett’s tutorial on database design http://www.tomjewett.com/dbdesig … for a clear and competent explanation.
      2. Then move on to w3schools’ SQL tutorial ( http://www.w3schools.com/sql/def …). You’ll review some of the concepts you already learned (which is always a good thing) and read more about SQL’s syntax from a slightly different pont of view.
      3. Dive into practical SQL, create databases mapping some real world cases, learn how to query for data
      4. Have some SQL expert review your work, this can save you a lot of time avoiding common mistakes and pitfalls
      5. When you have enough of basics, learn the tricks from the best. If you’re into MySQL I suggest reading http://planet.mysql.com/ and http://www.hackmysql.com before it’s taken offline (the site is not maintained anymore).

      I started my SQL journey in MS SQL Server and have since played around in MySQL and Oracle. The syntax itself is pretty similar from flavor to flavor of SQL. What really makes someone strong at this skill is understanding what your SQL output means. This honestly can be boiled down into three repeating questions, over and over again:

      1. Are there duplicates in my data?
      2. Where are these duplicates coming from?
      3. Does this make sense in the real world? If not, rework and go to first step.

      For instance, say you’re working with a database of families and family members. You see a column titled LAST_NAME with the name “Smith” three times. Next to each instance of Smith is a FIRST_NAME column with “Jane”, “John”, and “Jim”, respectively. In the real world, this makes sense, because families tend to logically have multiple first names and one unifying last name. However, say this time you write a query and see “Barack Obama”, “Barack Obama”, “Barack Obama” in your families data. Something’s up. Barack Obama is not a common name and it’s duplicated. Even if they were in the same family, having three people named Barack does not make sense. Your cardinality might be off, and you need to investigate your joins. Asking the above three questions until your output makes real world sense will put you a head above other SQL users out there.

      Ironically, what made me adept at SQL was not just writing it, but having a second screen with MS Excel open. If you dump a reasonable chunk of your dataset in there, you can VERY rapidly use Excel hotkeys to make pivot tables, filter, and remove duplicates. You can find duplicates and possibilities for any dataset, until the output makes real world sense.

      A few things:

      Structured Query Language (SQL) is more of a generic specification rather than an implementation. When you start using Relational Database Management Systems like: Oracle, Postgresql, Mysql, SQL Server etc, then you will soon realize that each implementation is completely different. Each will, to a greater or lesser extent implement the ISO Standard.

      That being said the paradigm of relational databases is shared and learning about normal forms, relational logic and common principals is a good foundation (All the way back to Codd): Relational algebra.

      Regarding – ‘Super Hard SQL’ – this should *never* be something that you aspire to. It should be something that you actively avoid. ¡Créeme! If you have a problem that fits the relational domain and you have a well modeled database (most probably 3rd normal form) then the vast majority of queries you would write would be simple joins using the table relationships that fall out of your model naturally.

      Relational databases are often a poor choice for today’s web – especially if you are doing something as simple as storing documents that you need to run very simple queries on. Even beyond scaling issues a RDBMS that accepts queries from the outside world is a security risk that you must manage carefully.

      (see SQL injection for more information – this has been the downfall of companies)

      If you want to quickly set up and play with a relational database I’d suggest you check out Amazon Web Services and spool up a tiny Relational Database Service instance (RDS). I’d recommend starting with either Postgresql or MySQL.

      1. Learn SQL – Best SQL tutorials | Hackr.io

      It provides various tutorials and references on web development languages such as HTML, CSS, JavaScript, PHP, SQL, and JQuery, covering most aspects of web programming.

      Their online Sql tutorial guides you through syntax and most important statements, keywords, and functions. Short but concrete descriptions and many examples make this tutorial easy to read and understand.

      The entire tutorial is available without registration.

      2. Learn SQL | Vertabelo Academy

      Vertabelo Academy offers interactive SQL courses , available directly in the browser. You can learn about SQL queries , data management , and table creation .

      The “SQL Queries” course starts with simple queries, progressing through GROUP BY queries to advanced topics like subqueries. You will also find out about the subtle changes between various joining methods, including INNER JOIN, LEFT JOIN, RIGHT JOIN and OUTER JOIN. Finally, you’ll have a chance to test your knowledge in a comprehensive quiz.

      Introduction to SQL -Structured Query Language

      1 What is SQL?

      2 Purpose of SQL

      3 Who should learn SQL?

      4 What are the subsets of SQL?

      5 Data Definition Language

      6 Data Manipulation Language

      7 Data Control Language

      1 What is SQL?

      • SQL stands for Structured Query Language

      • SQL was initially developed at IBM in 1970s

      • SQL is the standard language to communicate with relational database management systems like Oracle, MS Access, MS SQL Server, MySQL, DB2, Sybase Etc…

      2 Purpose of SQL

      • SQL is used to Create New Databases

      • SQL is used to Create New Tables in a Database

      • SQL is used to Insert records in a Database

      • SQL is used to Update records in a Database

      • SQL is used to Delete records in a Database

      • SQL is used to Retrieve data from a Database

      • SQL is used to execute queries against a Database

      • SQL can set permissions on tables, procedures and views

      • SQL is used to Create stored procedures in a Database

      • SQL is used to Create views in a Database

      3 Who should learn SQL?

      i Database Developers

      • Design and deploy Database table structures, forms, reports and queries etc…

      ii Database Administrators (DBA

      • Keeping databases up to date and managing database access

      • Writing Reports, documentation and operating manuals

      iii Database Testers

      • Verify Data Integrity

      • Verify Data Manipulations (Add, Update and Delete

      • Verify Data comparisons

      4 What are the subsets of SQL?

      SQL Commands can be classified in to groups based on their nature, they are,

      i Data Definition Language

      ii Data Manipulation Language

      iii Data Control Language

      5 Data Definition Language

      Important Commands and Operations in Data Definition Language

      i Create: To create databases and database objects

      ii Alter: To modify existing database objects

      iii Drop: To drop databases and databases objects

      iv Truncate: To remove all records from a table

      v Rename: To rename database objects

      6 Data Manipulation Language

      Important Commands and Operations in Data Manipulation Language

      i Select: To select specific data from a database

      ii Insert: To insert new records in a table

      iii Update: To update existing records

      iv Delete: To delete existing records from a table

      7 Data Control Language

      Important Commands and Operations in Data Control Language

      i Grant: To provide access on the Database objects to the users

      ii Revoke: to remove user access rights to the database objects

      iii Deny: To deny permissions to users.

      I’m probably a bad person to answer the question, as I learned SQL by writing parsers for it “way back when”, but if I were trying to learn SQL now on my own, I’d probably do it this way:

      1. Using your own PC, download one of the open-source database engines and install it. Both PostgreSQL and MySQL would be useful as learning tools. I don’t know MS-SQL very well, but I if you already have that installed, it would be useful as well. If you know Linux and have access to a Linux machine for your download and learning, you’d be even better off as most large datacenter installs are on Linux, but for learning SQL, a desktop would be OK.

      2. Using lynda or khan academy, watch some introductory videos on SQL using your database engine (there are some differences between them) and relational database concepts. Don’t go overboard on stuff like normalization just yet; it’s more important that you master simply querying, joins, and aggregation before you learn the fancy normal forms and such (which are not as useful in real life as some make them out to be in academia anyway).

      3. I’d probably focus on learning simple single-table querying first, focusing on datatypes and where-clause logic (especially if you aren’t a programmer in some other language), as well as learning about group-by, having, order-by and distinct. After this, I’d focus on joins and simple query optimization (ie, when and where to use indexes, single versus multi-column indexes, primary keys, foreign keys, etc), including the differences between inner and outer joins. After this, learn about triggers and stored procedures, more unusual whereclause constructs such as CASE, etc.

      Note that in my experience in interviewing, most developers just learn simple querying, simple joins, and some group-by, and most of them “learned by doing” as opposed to classes or textbooks. Also, how deep you go depends greatly on what you want to do: if you want to be a DBA or schema designer, you need far deeper knowledge of SQL and database engines than if you’re a front-end or middleware developer using an existing schema.