lunes, 14 de enero de 2019

Introducción al Lenguaje de Consulta Estructurada (SQL)

Hola amigos de Internet. Mi nombre es Luis, y les doy la bienvenida a Mi Diario Python.
En este blog hemos escrito muchos artículos sobre las base de datos. Uno de ellos, el más reciente, es: http://www.pythondiario.com/2018/07/base-de-datos-sqlite-con-pyqt5.html. En el, explico la manera de crear y manipular bases de datos a través de Interfaces Gráficas creadas con PyQt5. El problema es que en los artículos siempre lo explicamos desde una perspectiva de programación con Python. Es tiempo de darle a SQL su propio articulo.
Todo programador debería tener conocimientos básicos sobre SQL. Sabemos que almacenar y manipular información es sumamente importante. Por ello hoy, aprenderemos lo básico y daremos nuestros primeros pasos con SQL.
Así que prepárate, y comencemos.

Antes que nada ¿Qué es SQL?

Resultado de imagen para SQL

Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.
Los comandos de las bases de datos se expresan en un lenguaje especial que ha sido estandarizado entre varios proveedores de bases de datos diferentes para permitirnos aprender un único lenguaje para todas ellas. Este lenguaje recibe el nombre de Lenguaje de Consultas Structurado (Structured Query Language), o SQL
SQL (Lenguaje de Consulta Estructurada) es un lenguaje específico del dominio utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales. Una de sus principales características es el manejo del álgebra y el cálculo relacional para efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos , así como realizar cambios en ellas.
SQL se puede integrar a lenguajes de programación como PHP. Y en combinación con cualquier base de dato especifica. Como por ejemplo: MySQL, SQLite, DB2, PostegreSQL, entre otros.

Comandos SQL:

Muy bien, es hora de ir a la practica.

Tablas, Filas y Columnas

Una base de datos relacional esta compuesta por tablas, filas y columnas. Las columnas tienen generalmente un tipo de datos que puede ser texto, numerico, o fecha. Cuando se crea una tabla, se indican los nombres y tipos de cada columna.
El comando para crear una table es CREATE TABLE. Y se utiliza de la siguiente manera:
CREATE TABLE Libros (id INT, titulo TEXT, autor TEXT, genero TEXT);
Luego de escribir el comando CREATE TABLE, definimos lo siguiente: Nombre de la table (Libros) y sus columnas (id, titulo, autor, genero).
Como podemos observar, luego del nombre de cada columna, se especifica el tipo de dato que esta almacenara.
Con el comando anterior, se estaría creando una tabla para almacenar datos de libros.
Luego de haber creado nuestra tabla, podemos ingresar filas.
Para insertar una fila en una tabla, usamos el comando de SQL INSERT:
INSERT INTO Libros (id, titulo, autor, genero) VALUES (0, "American psycho", "Ellis, Bret Easton", "Thriller");
INSERT INTO Libros (id, titulo, autor, genero) VALUES (1, "Sapiens", "Yuval Noah Harari", "Historia");
INSERT INTO Libros (id, titulo, autor, genero) VALUES (2, "La Fortaleza Digital", "Dan Brown", "Thriller");
INSERT INTO Libros (id, titulo, autor, genero) VALUES (3, "El gran Gatsby", "F. Scott Fitzgerald", "Novela");
La sentencia INSERT especifica el nombre de la tabla, seguido por una lista de los campos/columnas que se quieren establecer en la fila nueva, a continuación la palabra clave VALUES, y una lista de los valores correspondientes para cada uno de los campos.
De esta manera agregaríamos nuestros primeros libros a la tabla.

SELECT

El comando de SQL SELECT se usa para recuperar filas y columnas desde una base de datos. La sentencia SELECT permite especificar que columnas se quieren recibir, junto con una clausula WHERE para indicar que filas se desean obtener.
SELECT * FROM Libros;
El * indica que se desea que la base de datos devuelva todas las columnas. Es decir, que devuelva todos los libros.

DELETE

Para eliminar una fila, es necesario usar una clausula WHERE en una sentencia DELETE de SQL. La clausula WHERE determina que filas seran eliminadas:
DELETE FROM Libros WHERE genero = "Thriller";
Con este comando eliminaríamos todos los libros de genero Thriller.

UPDATE

Es posible actualizar (UPDATE) una columna o varias de una o mas filas en una tabla usando la sentencia de SQL UPDATE, como se muestra a continuación:
UPDATE Libros SET id = 25 WHERE titulo = 'Sapiens';
La sentencia UPDATE especifica una tabla, a continuación una lista de campos y valores a cambiar, detrás de la palabra clave SET, y finalmente una clausula opcional WHERE para elegir las filas que van a ser actualizadas. Una única sentencia UPDATE cambiara todas las filas que coincidan con la clausula ´ WHERE. Si no se ha especificado ninguna clausula WHERE, se realizara la ´ actualización de todas las filas de la tabla.

Ejecutando comandos:

Sí, ya se. Quieres ver el código en acción.
Recuerda que puedes crear tus propias tablas, con tus propios datos. Ya sea de usuarios, películas, series, datos robados de la NASA. Lo que tu quieras.
Muy bien, es hora de ver los comandos en acción. Y te preguntaras ¿Donde? ¿Como?. No te preocupes, tengo la solución.
Si quieres ejecutar comandos SQL, puedes hacerlo online, sin necesidad de descargar programas externos. En mi caso, utilizare la siguiente pagina: https://kripken.github.io/sql.js/GUI/. Ingresemos.

Como podemos observar, la pagina se llama “Online SQL interpreter” y esta alojada en github, por lo que podemos ver su código fuente. La pagina es muy fácil de usar. Solo ingresamos los comandos y hacemos click en “execute”. Probemos.

Excelente, como podemos observar, el resultado es la tabla con sus respectivas filas y columnas.
Sigamos probando. Ahora seleccionaremos solo los libros de genero Thiller:

Al ejecutar, vemos que nos lanza un error: Uncaught Error: table Libros already exists. La razón de que nos salga este error, es que cada vez que ejecutamos el comando CREATE TABLE, se crea la misma tabla (Libro). Y para evitar que se creen las mismas tablas, con los mismos nombres, SQL nos lanza este error. Pero no te preocupes. No es nada que no podamos resolver. Lo que ocurre, es que nos hizo falta un comando. El comando DROP TABLE.
El comando DROP TABLE se utiliza para eliminar la tabla, en este caso la tabla Libros, de una base. Cuando se pasa la restricción IF EXISTS, si la tabla a eliminar no existe en la base, el comando no hace nada y no se genera ningún error. Ahora, intentemos ejecutar nuevamente, esta vez utilizando el comando DROP TABLE:
DROP TABLE IF EXISTS Libros;


Excelente, lo hemos hecho muy bien.
Ahora es tu turno. Crea todas las tablas que quieras. Utiliza los comando DELETE y UPDATE.
¿Alguna duda? ¿Alguna sugerencia? No dudes en dejar tu comentario. Con gusto te responderemos.
Y sin más nada que decir. Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

No hay comentarios :
Write comentarios

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .