Blog post image

Lo básico de SQL

AuthorGenesis Rivera Rios
Date
10/19/2020
Time5 min read

Todos los ejemplos de las consultas escritas en este post fueron escritas en Microsoft SQL Management Studio.

¿Que es SQL?

SQL es una forma de comunicarse con algunas bases de datos. SQL utiliza “Statements” como decir en español oraciones las cuales contienen alguna acción que queremos tomar contra nuestra base de datos con algún fin en mente.

Example of communication

Como en la conversación que vemos en la foto, si quisiéramos llamar a un restaurante para preguntar cuál es su horario de cierre debemos saber por lo menos el numero de teléfono del sitio.

Si tuviéramos una base de datos de restaurantes y quisiéramos saber a qué hora cierran podríamos hacer una consulta parecida a la de la foto, aunque en nuestros queries o consultas no tenemos que seguir formalidades como decir buen día y saludar si debemos seguir ciertas reglas las cuales veremos más adelante.

¿Por qué debemos aprender SQL?

La verdad es que hay mucho trabajo para las personas que conozcan como manipular datos de forma eficiente, muchas personas saben cómo escribir consultas pero eso es meramente tocar la superficie de la poderosa herramienta que es SQL y todo lo que podemos hacer con ello.

SQL Statements

SELECT

Vamos a suponer que tenemos una base de datos la cual tiene dos tablas. Una llamada Restaurants y otra llamada RestaurantDetails.

Voy a escribir un consulta sencilla para ver que información tenemos en la tabla de Restaurants.

SELECT * FROM Restaurants

Select

Cuando ejecutamos esta consulta podremos ver todos los resultados de la tabla de Restaurant.

Las tablas en las bases de datos SQL normalmente tienen columnas y filas las cuales se componen de información relevante.

RecordId Name Country PhoneNumber
1 Marios Pizza Pueblo PR 787-000-0000

Como vemos en los resultados de nuestra consulta tenemos cuatro columnas, RecordId, Name, Country, PhoneNumber y tenemos una fila de resultados.

Tal vez te estarás preguntando qué otras cosas podemos hacer con SQL, estaremos viéndolo a continuación.

Seleccionando data | SELECT

Como vimos en la última consulta que les ensene podemos utilizar la palabra SELECT para seleccionar data. Es buena práctica solamente seleccionar la data que necesitamos utilizar. Al igual que cuando le hacemos preguntas a otras personas que somos lo más específicos posible para obtener la contestación que queremos así mismo debemos tratar a la base de datos.

Así que en el caso de que queramos saber el número de teléfono y el nombre de los restaurantes en la tabla de Restaurant podríamos modificar nuestra consulta como la siguiente.

SELECT Name,PhoneNumber from Restaurants

Ahora estamos seleccionando Name y PhoneNumber de la tabla de Restaurants, nuestra consulta es más específica y nos trae solamente la información que necesitamos.

Filtrando data | WHERE

Ahora que sabemos seleccionar data vamos a ver cómo podemos filtrar la data para buscar específicamente lo que necesitamos.

Esta próxima consulta nos va a devolver solamente el número de teléfono del restaurante llamado Marios Pizza Pueblo.

SELECT PhoneNumber FROM Restaurants
WHERE Name='Marios Pizza Pueblo';

Como podemos ver al utilizar la palabra WHERE podemos especificar una columna por la cual queremos filtrar y el valor que queremos filtrar. Pero con la cláusula o palabra WHERE podemos especificar también por más de una columna por la cual queremos filtrar, no estamos limitados a una sola e inclusive podemos filtrar por la misma columna más de una vez.

Ahora supongamos que tenemos varios restaurantes en nuestra tabla de Restaurant que comienzan con el nombre de Mario y queremos filtrar por todos ellos. Con la palabra LIKE después de nuestra clausula de WHERE podemos hacerlo.

Así que ahora vamos a seleccionar el nombre y el numero de teléfono de todos los records que comiencen con el nombre Marios.

select Name,PhoneNumber from Restaurants
WHERE Name LIKE 'Marios%';

La palabra LIKE se utiliza para buscar por records que tengan data COMO algo que especifiquemos y el símbolo de porcentaje se utiliza como un “wildcard”.

En realidad la palabra LIKE tiene dos wildcards normalmente utilizados el símbolo de porcentaje (%) y el underscore (_). El símbolo de porcentaje lo utilizamos para representar ciertos caracteres en palabras y el underscore para representar caracteres específicos.

Order by

Ordenando data | Order By

Ordenar data en SQL es bastante sencillo, para hacerlo utilizamos la palabra ORDER BY. Con la palabra ORDER BY podemos ordenar nuestra data de forma ascendiente (por defecto este es el método utilizado) o descendiente si así lo especificamos.

Por ejemplo, para ordenar nuestra data de forma ascendiente por nombre de restaurante lo podemos hacer de la siguiente forma.

SELECT * FROM Restaurants
ORDER BY Name

Y de forma descendiente seria así.

SELECT * FROM Restaurants
ORDER BY Name Desc

Al igual que las clausulas que vimos anteriormente (SELECT, WHERE) podemos utilizar ORDER BY en más de una columna.

Insertando data | Insert

Para insertar data nueva en la alguna tabla de nuestra base de datos podemos utilizar las palabras INSERT INTO.

Por ejemplo, para insertar data sobre un nuevo restaurante podríamos hacerlo de la siguiente forma.

INSERT INTO [dbo].[Restaurants]
           ([Name]
           ,[Country]
           ,[PhoneNumber])
     VALUES
           ('Churchs Chicken'
           ,'PR'
           ,'787-888-9090')

Insert SQL

Actualizando data | Update

Para actualizar o cambiar data podemos utilizar la palabra UPDATE.

En esta consulta estamos actualizando el record que tenga como nombre Marios pizza y le asignaremos un nuevo nombre, Mario pizza y cambiamos el pais a estados unidos y por último cambiamos el número de teléfono. Pero al igual que en los pasados ejemplos podemos actualizar algunas columnas y dejar las otras iguales si deseamos.

UPDATE [dbo].[Restaurants]
   SET [Name] = 'Mario pizza'
      ,[Country] = 'US'
      ,[PhoneNumber] = '787-666-6665'
 WHERE Name='Marios pizza'

Agrupando data | GROUP BY

Vamos a suponer que tenemos una tabla que se llama OrderDetails y esta tabla contiene detalles de ordenes de diferentes restaurantes y queremos agrupar nuestra data para poder ver de ciertas ordenes cuantos artículos en total se ordenaron.

Si hacemos un select * from la tabla de OrderDetails podemos ver que tenemos una sola orden con tres artículos.

SELECT * FROM OrderDetails
RecordId OrderId ItemId Quantity
1 1 Hamburger con papas 1
2 1 Nuggets 2
3 1 Refresco 1

Así que para agrupar la data para ver cuántos artículos en total se ordenaron en esta orden vamos a escribir la siguiente consulta.

SELECT OrderId, SUM(Quantity) as TotalOrdered FROM
OrderDetails
WHERE OrderId=1
GROUP BY OrderId

Al utilizar la palabra GROUP BY podemos especificar por cuales columnas queremos agrupar, en este caso agrupe por OrderId y con la palabra SUM en nuestro SELECT podemos sumar por la columna de Quantity.

OrderId TotalOrdered
1 4

Lo cual nos devuelve los siguientes resultados.

Nota que en nuestro SELECT utilice la as para asignarle un nombre a nuestra columna con el total ordenado.

Por ultimo les voy a ensenar la cláusula para borrar información la cual siempre deben tratar de utilizar con un WHERE y mirar dos o tres veces antes de ejecutar su query ya que pueden pasar malos ratos si no miran bien antes de ejecutarla.

Borrando data| DELETE

Para borrar data en SQL simplemente utilizamos la clausula de DELETE.

DELETE OrderDetails where OrderId=1
Categoria: sql