Quieres aprender SQL. Aquí hay un crashcourse ..
He leído en alguna parte que un analista que no sabe SQL no vale la pena . Y eso me parece cierto en todos los sentidos del mundo. Así que felicidades por tomar la decisión de empezar con él.
Ahora, la mejor manera de aprender SQL será ensuciarse las manos con él. No recomendaré el uso de recetas basadas en web para SQL, ya que no puede usar sus propios datos con esas. También te aconsejaré que aprendas el tipo de SQL de mySQL, que es:
- Fuente abierta: El mejor tipo de fuente 🙂
- Fácil de instalar en su propio ordenador portátil.
- Tiene un gran cliente llamado mySQL Workbench.
Ahora para ponerlo en funcionamiento aquí hay algunos consejos sobre cómo configurar con mySQL.
- ¿Cuál es la mejor manera de mejorar su conocimiento general en un corto período de tiempo?
- ¿A los estudiantes autistas les cuesta más entender el razonamiento abstracto?
- ¿Cómo se puede mejorar la cultura de lectura de los estudiantes de primaria y secundaria?
- ¿Cuáles son algunos proyectos de código abierto de Android para aprender Android?
- ¿Cuáles son los mejores institutos para aprender alemán en Bangalore?
Puede descargar mySQL para su sistema particular (MACOSX, Linux, Windows) desde:
Descargar MySQL Community Server
Una vez que lo consiga, instale mySQL Workbench para hacer su vida más fácil:
Descargar MySQL Workbench
Conéctese con el servidor mySQL utilizando mySQL Workbench.
Los pasos anteriores pueden tardar un tiempo en hacerlo bien y es posible que tenga que volver un par de veces a Google y Stack Exchange para que funcione.
Y luego intenta instalar algunos datos para que practiques.
Ahora si tienes tus propios datos para trabajar. Entonces bien y bien. Puedes subirlo a varias tablas usando los siguientes comandos:
CREAR TABLA su_datos (col1 entero, col2 varchar (255), col3 doble)
CARGAR DATOS LOCALES DE INFILLO ‘/datapath/data.csv’
EN TABLA tus_datos
CAMPOS TERMINADOS POR ‘,’
ENCERRADA POR ‘”‘
LÍNEAS TERMINADAS POR ‘\ n’
IGNORAR 1 FILA;
De lo contrario, puede usar la base de datos Sakila que puede instalar usando los siguientes tres pasos:
- Otra documentación de MySQL: busque Sakila y descargue el archivo zip
- Descomprima el archivo.
- Vaya a mySQL Workbench y seleccione Archivo >> Ejecutar script SQL >> seleccione la ubicación de sakila-db / sakila-schema.sql
- Vaya a mySQL Workbench y seleccione Archivo >> Ejecutar script SQL >> seleccione la ubicación de sakila-db / sakila-data.sql
Ahora tienes algunos datos contigo. Ahora hemos aprendido cómo configurar un servidor SQL y debemos comenzar por escribir algunas consultas:
- Intente comprender el esquema de la base de datos Sakila utilizando el documento de esquema y mySQL Workbench. El documento del esquema está aquí: Base de datos de muestra de Sakila :: 5 Estructura
- Ahora la sintaxis básica de la mayoría de las consultas de mySQL es:
SELECCIONAR col1,
sum (col2) como col2sum,
avg (col3) como col3avg
FROM nombre_tabla
DONDE col4 = ‘some_value’
GRUPO POR COL1
ORDEN POR COL2sum DESC;
- La consulta anterior le ayudará con la mayoría de las cosas simples que desea encontrar en una base de datos. Por ejemplo: Digamos que quería averiguar cómo las diferentes películas con clasificación de censura se cronometran de manera diferente, puede usar:
SELECCIONE la clasificación, avg (longitud) como length_avg FROM sakila.film group por orden de clasificación por length_avg desc;
- Lo principal sobre el aprendizaje de SQL es aprender a formular algunas preguntas sobre lo que le gustaría saber. Por ejemplo: intente averiguar todas las películas que se lanzaron en el año 2006. o. Intente encontrar todas las películas que tengan una clasificación de PG y una duración superior a 50 minutos. Puede hacer esto ejecutando lo siguiente en mySQL Workbench:
seleccione * de sakila.film donde release_year = 2006;
seleccione * de sakila.film donde longitud> 50 y calificación = “PG”;
- Lo siguiente que querría aprender es cómo hacer uniones. Pero no vaya allí hasta que se sienta muy cómodo con las consultas anteriores. Ahora las uniones son una parte integral y muy importante de una base de datos mySQL y es necesario comprenderlas.
Este es uno de los mejores elementos visuales que tengo para explicarte. Para darle un caso de uso, volvamos a nuestra base de datos de Sakila:
Supongamos que desea averiguar cuántas copias de cada película tenemos en nuestro inventario. Puedes conseguir eso usando:
SELECCIONE film_id, count (film_id) como num_copies DESDE sakila.inventory group by film_id orden por num_copies desc;
Pero tu jefe quería obtener el nombre de la película. Este resultado no nos sirve de nada. Fíjate y ve que la tabla ‘film’ tiene film_id así como el título de la película. Así que está seguro de que puede obtener los datos, pero aún no sabe cómo. Viene se une al rescate. Deberá agregar un título a la tabla de inventario. Puedes hacerlo usando:
SELECCIONE A. *, B.title from sakila.inventory A left join sakila.film B en A.film_id = B.film_id
Esto agregará otra columna a su tabla de inventario. Como se puede observar, hay películas en la tabla de películas que no tenemos en el inventario. Utilizamos una combinación izquierda, ya que queríamos mantener lo que está en la tabla de inventario y unirlo con su contraparte correspondiente en la tabla de la película y no todo en la tabla de la película.
El resultado de la operación anterior es:
Así que ahora tenemos el título como otro campo en los datos. Esto es justo lo que queríamos. Pero antes de seguir adelante, primero debemos entender el concepto de consultas internas:
Consulta interna:
Ahora tienes una consulta que puede darte el resultado anterior. Una cosa que puedes hacer es crear una nueva tabla usando
crear tabla sakila.temp_table como
SELECCIONE A. *, B.title from sakila.inventory A left join sakila.film B en A.film_id = B.film_id;
Y luego use un grupo simple por operación usando:
seleccione el título, contar (título) como num_copies del grupo sakila.temp_table por orden de título por num_copies desc;
Pero esto es como dos pasos demasiados. SQL le proporciona el concepto de consulta interna solo para este tipo de problemas. En su lugar, puede escribir todo esto en una sola consulta usando:
seleccione temp.title, count (temp.title) como num_copies desde
(SELECCIONE A. *, B.título de sakila.inventory A left join sakila.film B en A.film_id = B.film_id) temp
grupo por título
ordenar por num_copies desc;
Y voila el resultado es:
Lo que hicimos fue intercalar nuestra primera consulta entre paréntesis y le dio a esa tabla un alias “temp”. Luego hicimos el grupo por operaciones considerando “temp” tal como consideraríamos cualquier tabla.
- Si puede comprender esto, ya sabe más de SQL que la mayoría de las personas que he visto usando SQL. Lo siguiente a hacer: la práctica. Trate de formular sus propias preguntas en su propio conjunto de datos e intente encontrar la respuesta. Puede que te sientas frustrado al principio, pero considera a Google como tu amigo aquí.
Espero eso ayude !!!!