Aprende SQL: Structured Query Language
Aprende a consultar a la base de datos con T-SQL y serás un dev mucho más valioso 💪🥳

Seguramente habrás escuchado hablar sobre SQL, y son siglas en Inglés formadas por las palabras Structured query language, el cual quiere decir: lenguaje de consulta estructurado.

Es un lenguaje de programación diseñado específicamente para almacenar y procesar información en una base de datos relacional según AWS.

Estas sentencias escritas en SQL son ejecutadas por un gestor de base de datos como SQL Server según IBM.

Este lenguaje SQL tiene variantes, una de ellas es Transact SQL o T-SQL el cual es una variante mejorada o una extensión de SQL estándar, ya que conserva sus características originales y además tiene funcionalidades añadidas para un mejor trabajo con procedimientos almacenados y triggers, esta variante trabaja básicamente con Microsoft SQL Server.

Si quieres saber más sobre las diferencias entre SQL y T-SQL echa un vistazo aquí.

Esta entrada es un taller de sentencias DDL y DML. Este artículo previo contiene también información sobre SQL.

Categorías de sentencias SQL

Dentro del abanico de sentencias que tiene el lenguaje SQL se ha categorizado en 4 y son las siguientes:

  • Data definition language (DDL)
  • Data manipulation language (DML)
  • Data control language (DCL)
  • Transactional control language (TCL)

Las sentencias DDL o lenguaje de definición de datos son todas aquellas sentencias que nso permiten definir las estructuras de las bases de datos donde estará almacenada la información, como por ejemplo la base de datos en sí, las tablas, vistas, procedimientos almacenados, funciones y triggers.

En cuanto a las sentencias DML, o lenguaje de manipulación de datos, son aquellas sentencias que nos van a permitir trabajar con los datos mismos. La mayor parte del tiempo estaremos trabajando con este tipo de sentencias.

Sobre las sentencias DCL o lenguaje de contro de datos, debes saber que son aquellas que nos permiten controlar los accesos a los recursos de la base de datos mediantes permisos y roles.

Finalmente las sentencias TCL o lenguaje de control transaccional nos permiten tener el control de las transacciones en la base de datos, abarca pocas sentencias SQL y están orientadas hacia la seguridad mediante la integridad de las operaciones y los datos.

Sentencias DDL

Las principales sentencias SQL de la categoría DDL son:

  • CREATE
  • ALTER
  • DROP
  • TRUNCATE

Sentencias DML

Entre las principales sentencias SQL de esta categoría tenemos:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

Sentencias DCL

En esta categoría tenemos:

  • GRANT
  • REVOKE

Sentencias TCL

Finalmente en esta categoría las principales sentencias son:

  • COMMIT
  • ROLLBACK

Taller con algunas sentencias

Debido a que las categorías más utilizadas de lejos son las DDL y DML, vamos a hacer un pequeño taller y utilizaremos estas dos categorías, paso a paso.

Para este pequeño taller utilizaremos Microsoft SQL Server con T-SQL. Las consultas las ejecutaremos en el SQL Server management studio o también llamado SSMS. Comencemos.

Crear una base de datos

CREATE DATABASE Planilla

En SSML tendremos esto:

Ahora si refrescas la lista de base de datos en el explorador de objetos de SSMS podrás ver la nueva base de datos que acabas de crear mediante una consulta SQL:

Apuntar mis consultas a PLANILLA

Debes saber que toda consulta SQL apunta a una base de datos, por defecto cuando inicias SSMS apunta a la base de datos del sistema llamada master, para continuar con nuestro taller debes apuntar a la base de datos que acabas de crear con la siguiente consulta:

USE PLANILLA

Ahora notamos que PLANILLA es mi base de datos actual:

Crear una tabla en mi base de datos PLANILLA

CREATE TABLE PERSONA(
	Id INT PRIMARY KEY IDENTITY,
	Nombre VARCHAR(70) NOT NULL,
	Edad INT,
	Email VARCHAR(80)
)

Con PRIMARY KEY le decimos que este campo será el identificador de mi tabla y con IDENTITY le decimos que también será auto-incremental. Por otra parte cuando no especificamos NOT NULL a los demás campos automáticamente los crea como que permiten valores null.

Tras ejecutar esta consulta, nota cómo se ha creado la tabla, con la estructura que has definido:

Modificar la tabla PERSONA

Si queremos añadir una columna, por ejemplo añadir la dirección de la persona, ejecutamos:

ALTER TABLE PERSONA
ADD Direccion VARCHAR(120)

Si queremos editar una columna existente por ejemplo hacer que Email no sea VARCHAR(80) sino VARCHAR(50) ejecutarás:

ALTER TABLE PERSONA
ALTER COLUMN Email VARCHAR(50)

Si quieres eliminar una columna por ejemplo la columna Edad, ejecuta:

ALTER TABLE PERSONA
DROP COLUMN Edad

Después de todos estos cambios la estructura de nuestra tabla PERSONA quedó así:

Insertar datos a PERSONA

Si queremos añadir 3 registros, debemos ejecutar:

INSERT INTO PERSONA VALUES('Lucho','lucho@mail.com','Calle Lomas 789')
INSERT INTO PERSONA VALUES('Tito','tito@mail.com','Calle Vasquez 39')
INSERT INTO PERSONA VALUES('Pepe','pepeelgrillo@mail.com','Urb.Los Cipreces Mz.B Lt.21')

Si te preguntas porqué no enviamos Id, es porque lo hemos declarado como IDENTITY es decir es autoincremental y SQL Server se encargará de asignarle un valor.

Obtener datos de la tabla PERSONA

Para traer todos los registros de la tabla ejecutamos:

select * from PERSONA

Si queremos traer solamente algunas columnas podemos especificarlas en vez de poner asterisco *

Luego de ejecutar esta consulta se nos muestra nuestras 3 personas:

Actualizar registros

Si quieres actualizar el nombre de Pepe por Pepe el grillo, es decir quieres actualizar el registro con Id = 3 ejecuta esto:

UPDATE PERSONA SET Nombre = 'Pepe el grillo' WHERE Id = 3

Eliminar registros

Si queremos eliminar a Tito primero averiguamos su ID y ejecutar:

DELETE FROM PERSONA WHERE Id = 2

Y si te preguntas porqué le paso el ID en el WHERE y no le paso el nombre Pepe o Tito, la respuesta es porque pueden haber muchos Pepe/Tito y estaríamos actualizando a todos a la vez, por eso hay que tener cuidado cuando ejecutamos UPDATE y DELETE y especificar claramente a quien queremos efectuar los cambios.

Veamos ahora cómo quedaron nuestros datos:

Bien!

Vacear todos los datos de una tabla

Si queremos vacear toda una tabla ejecutamos:

TRUNCATE TABLE PERSONA

¿Es lo mismo hacer un DELETE sin WHERE que un TRUNCATE? No es exactamente lo mismo, ya que si bien es cierto en ambas se borran todos los registros de la tabla, en el TRUNCATE se reinicia el Id haciendo que la próxima vez que inserte un registro este empiece nuevamente en 1.

Borrar por completo una tabla

Si quieres eliminar no sólo los datos sino la tabla en sí también, ejecuta:

DROP TABLE PERSONA

Borrar una base de datos por completo

Si quieres eliminar por completo una base de datos, obiamente esto incluye datos y estructura, primero debes ubicarte en otra base de datos, como master por ejemplo y luego hacer un DROP, todo esto lo puedes conseguir con la siguiente consulta:

USE master
DROP DATABASE PLANILLA

Para eliminar una base de datos debes cerrar toda conexión y pestañas que involucren dicha base de datos sino obtendrás un mensaje diciendo que está actualmente en uso y no te dejará. Sobra decir que estas consultas de eliminación debes usarlas con mucha precaucion 🙃🫠

Y así es como hemos utilizado las principales sentencias DDL y DML con T-SQL ahora debes practicar mucho más estimado dev y comenzar a romperla con bases de datos, como digo en este artículo previo, eso te dará un plus enorme y marcarás la diferencia, al final todo se trata de eso y conseguirás muchos logros, tenlo por seguro 💪😉

Esa felicidad que da el aprender algo tan valioso verdad? Foto de ThisisEngineering RAEng en Unsplash

Si esta entrada te ha fascinado compártela crack!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *