Leccion 6 - Consultas Básicas con SELECT
Tiempo estimado de lectura: 5 minutos
Las operaciones CRUD son el conjunto de operaciones con SQL que nos permiten crear, leer, actualizar y borrar datos. En esta leccion vamos a aprender como leer datos de una base de datos, para ello utilizamos el comando SELECT.
Uso del comando SELECT
Pongamos por ejemplo que tenemos una tabla Clientes con las siguientes columnas IdCliente, Nombre, Apellidos, Email y Telefono. Para leer datos de esta tabla podemos utilizar el siguiente codigo.
SELECT *
FROM Clientes
En linea con los datos de la tabla Clientes que utilizamos en la leccion anterior donde creamos datos, el resultado de nuestra consulta seria el siguiente.
Nombre | Apellido | Telefono | |
---|---|---|---|
John | Doe | john@email.com | 555112233 |
Maria | Salas | maria@example.com | 555221133 |
Juan | Perez | juan@example2.com | 555332211 |
Este codigo nos permitira conocer todos los datos contenidos en la tabla, independientemente del numero de columnas, incluso sin saber el nombre de estas columnas. Es por ello que empleamos el comando SELECT *. El simbolo *, o tambien llamado star, nos permite traer todas las columnas de la tabla. Esto viene muy bien si por ejemplo no conocemos el esquema de la tabla y queremos hacer una exploracion de los datos.
Fijate tambien que en la consulta utilizamos el comando FROM. Esto lo necesitamos para indicar de que tabla queremos leer datos, en el caso del ejemplo, la tabla Clientes.
Pero tambien podemos seleccionar columnas especificas de la tabla, para ello podemos hacer lo siguiente.
SELECT Nombre, Apellidos
FROM Clientes
En este caso la consulta solo nos devolvera los datos de Nombre y Apellidos de todos los clientes de la tabla Clientes. En este caso la tabla Clientes tiene mas columnas (o campos) pero con nuestro codigo hemos indicado que solo queremos los datos de Nombre y Apellidos.
Uso de alias
El uso de alias puede ser necesario a la hora de escribir nuestras consultas. Una alias es una forma de renombrar los campos o las tablas durante la ejecucion de nuestras consultas. Pero ten en cuenta que el uso de alias no cambia los datos permanentes de las tablas.
Esto se puede dar por ejemplo cuando queremos calcular una columna derivada como resultado de operar una transformacion sobre una o mas columnas de una tabla, de esta manera le asignaremos un alias a la columna. Poder utilizar un alias nos permitira indicar como queremos nombre a esta nueva columna en el resultado de nuestra consulta.
Por ejemplo,
SELECT CONCAT(Nombre,Apellidos) AS NombreCompleto
FROM Clientes
En este caso hemos querido conocer el nombre completo de los clientes, concatenando el valor de Nombre mas el valor de los Apellidos, por ello hemos utilizado la funcion CONCAT, que sirve precisamente para concatenar dos valores de cadena. La funcion CONCAT no funciona sobre valores numericos a no ser que convirtamos estos valores numericos en valores de cadena.
Fijate que a la operacion de concatenar le sigue la keyword AS. Esto sirve para indicar el alias del campo, que en este caso le hemos dado el nombre de NombreCompleto. Esto nos permitira tambien podemos crear campos con nuevos nombres en el resultado de nuestras consultas (una tabla no puede tener dos campos con el mismo nombre) de manera que podremos guardar los datos como un campo calculado, o simplemente en una tabla nueva.
El comando AS tambien nos permite hacer la misma operacion de indicar una alias para las tablas, esto es asi por que muchas veces leeremos datos de varias tablas a la vez, por ejemplo.
SELECT Clientes.Nombre, Clientes.Apellidos, Ventas.IdOrder
FROM Clientes
JOIN Ventas ON Clientes.IdCliente = Ventas.IdCliente
Nota: No hemos explicado acerca de la tabla Ventas en cuanto a su esquema o el conjunto de sus columnas, pero simplemente quedate con que es una tabla donde se registran las ventas y que contiene un campo que registra el id del cliente que realizo la compra, en este caso dado por el campo IdCliente. De esta manera podremos, en combinacion con la tabla Clientes, saber el nombre y apellidos del cliente que realizo la compra. Este tipo de consultas las trataremos en capitulos siguientes, asi que de momento no te preocupes, pero fijate en como utilizamos el comando AS para crear alias de nuestras tablas.
En este caso la consulta lee datos de dos tablas al mismo tiempo, Clientes y Ventas. Estas se relacionan por el campo IdCliente, de manera que en la tabla Ventas tenemos registrados los datos de ventas y en la tabla Clientes tenemos los datos de los clientes. En nuestra consulta de ejemplo lo que hemos querido hacer es poder relacionar ambas tablas con el objetivo de conocer el Nombre y Apellidos de los clientes que realizaron las ventas, dado que estos dos campos nos se incluyen en la tabla Ventas. Entonces cuando hacemos una consulta con dos tablas hemos de indicar en el SELECT a que tabla pertene cada campo que queremos leer de las tablas, es por ello que a cada campo le precede el nombre de la tabla a la que pertenece. Por ejemplo:
SELECT Clientes.Nombre
Pero esta manera de escribir nuestras consultas puede ser un poco tedioso, dado que imaginate que queremos realizar una consulta leyendo datos de 20 columnas, de manera que necesitariamos escribir el nombre de la tabla a la que precede 20 veces. Pero hay una manera mas sencilla de elaborar nuestra consulta indicando un alias. Un alias es el nombre que le damos a nuestras tablas o columnas al momento de ejecutar nuestra consulta, los alias no se almacenan en base de datos, tenlo en cuenta, solamente nos sirven para dar un nombre nombre temporal a los objetos, este caso tablas y columnas.
Entonces podemos reescribir nuestra consulta de la siguiente manera. La manera de declarar un alias es con el comando AS
.
SELECT a.Nombre, a.Apelllidos, b.IdOrder
FROM Clientes AS a
JOIN Ventas AS b ON a.IdCliente = b.IdCliente
El proposito de dar una alias a las tablas en este caso, es que no necesitamos escribir el nombre completo de las tablas cada vez que lo necesitaemos, si no simplemente usar un alias, pudiendo tener una consulta mas facil de leer y de utilizar.