Llegamos a la parte de consultas. Acá vamos a la parte de "leer", que en CRUD serÃa "read". La sentencia principal en consultas es SELECT, la que vamos a utilizar y sobre la cual vamos a estar incorporando nuevos "tips", nuevas cuestiones a tener en cuenta. Para arrancar en un SELECT, lo primero que hay que hacer es entender la base de datos. Es probable que las sepamos porque las creamos nosotros y demás. En caso de que no fuera asÃ, serÃa bueno contar con un DER. Yo me tomé el trabajo de tener, por un lado, mi base, que ahora se las voy a mostrar, pero tengo el DER de la base. Si no llegara a tener el DER, tenemos diferentes herramientas que nos permiten visualizar el esquema. Justamente, hay una que yo estoy usando que se llama Schema Visualization, que te permite, dada una base de datos, poder visualizar el esquema y poder recorrerlo. Es bastante práctica. Hay que tener cuidado cuando uno se arrastra, porque se va bastante rápido, pero puedo ver las tablas que tengo y cómo se relacionan. No es el diagrama que vimos en el diagrama de entidad de relación, este es un diagrama un poco más sencillo. Lo que hacen las flechas es indicar que hay una clave foránea y a qué tabla está apuntando. Por ejemplo, en el caso de "Playlist Track", la flecha me está diciendo que apunta a "Track". Una vez que tengo identificada la tabla que tengo que tener presente, ya puedo empezar a hacer las "Querys". Yo tengo algunas ahà ya creadas, pero me tomé el atrevimiento de traer algunos enunciados con los cuales vamos a trabajar. Los copio. Estoy utilizando algo que es muy importante para las Querys, que es comentar. Estoy agregando algún comentario. El comentario es a través del uso de los dobles guiones, cuando es a nivel fila, y si quisiera comentar un bloque, se utiliza... Por ejemplo, vamos a cambiar este que está en más de una fila. Ven, cuando lo descomento, el cliente empieza a detectar y no entiende si son sentencias o a qué refiere. Para comentar un bloque, inicio con dividir, asterisco, y hasta que no cierre el bloque en realidad, va a comentar todo lo que está por debajo. Por ejemplo, si yo empiezo a escribir acá SELECT, el cliente no lo ve. Recién cuando cierre el bloque a través de un asterisco y un dividir, va a empezar a distinguir. Muchos clientes tienen esto de detectar la sintaxis y empezar a remarcarla con diferentes colores. Vamos al primero. Dice: "Listar todos mis clientes con todos sus atributos". "Atributos" o le podemos también llamar "columnas". A veces usamos el término "columna", pero ahora vamos a usar "columna" para lo que devuelve un SELECT. Vamos a empezar a hablar de atributos o campos, para no confundir. En la teorÃa también lo vamos a ver asÃ, como atributos o campos. Necesito listar todos mis clientes con todos sus atributos o campos. El SELECT, particularmente, por lo que vamos a ver, tiene tres palabras reservadas, que vamos a usar, cuatro en realidad: SELECT, FROM, WHERE y ORDER BY. Tiene unas más, que en la teorÃa lo van a poder ver, pero estas son las que vamos a usar en los cursos o a partir de ahora, en adelante, en los módulos que siguen. Son en las que vamos a empezar a poner foco. Por ahora, nos vamos a centrar en SELECT, FROM y ORDER BY. WHERE lo vamos a ver el módulo siguiente. Asà que, ¿cuál es el orden de prioridad? Por lo general, cuando uno escribe una sentencia no tiene idea de cómo el motor lo interpreta. Lo ideal serÃa que uno haga hincapié en el FROM, luego en el ORDER y por último en SELECT. El SELECT es donde yo voy a poner las columnas que voy a mostrar. Acá van a ir todas las columnas, van a estar separadas por comas. En el FROM van a estar las tablas o la tabla. WHERE refiere a condiciones, pero lo vamos a ver en el próximo, asà que por ahora lo vamos a sacar. Y el ORDER, voy a ordenar a través de columnas. Van a ver que tengo dos tipos de ORDER, ahora lo vamos a ver. Veamos esto. Para este enunciado en particular, vamos a necesitar la tabla Clientes. Mi base de datos está en inglés, pero la tabla que corresponde a clientes es "Customer". Ya puedo reemplazar tablas por "Customer", incluso el cliente me colabora de alguna forma y me lo completa. Asà ya tengo la tabla "Customer" y me faltarÃan las columnas. Como dice que voy a listar todas las columnas, no una sola, una opción serÃa escribir una por una y separarlas por comas. Son un montón. Una opción mucho más fácil es poner asterisco. Asterisco implica que va a mostrar todas las columnas del dominio. El dominio está dado por el FROM. Veamos si funcionó. Cuando estamos escribiendo en consola, se suele agregar un punto y coma, pero acá cuando ejecutamos podemos no hacerlo. Lo marcamos, le damos "run". Y fÃjense, tenemos el listado completo. En la parte de mensajes nos va a decir cuántas columnas se vieron afectadas. Esto tiene que ver a cuántos registros me trajo. Y acá vamos a ver si están en null o no están en null o qué valores todas las columnas que tienen. Cuando nosotros hacemos un SELECT sin especificar el nombre de la columna, pone como nombre de columna el atributo o el campo. Por ejemplo, Email es uno de los atributos que está, fÃjense el anteúltimo. Pasemos al otro. Dice: "Listar el nombre y apellido de los clientes cambiando el nombre de las columnas". Lo que quiero entender con esto es que no voy a dejar que me ponga el nombre y apellido. Primero veamos acá. Nombre y apellido es "First Name" y "Last Name". No quiero que me ponga esto, quiero que me lo ponga en castellano. Podemos copiar y pegar la anterior, porque se mantiene algo. Voy a querer "First Name" y "Last Name". ¿Cómo hago para cambiarle el nombre a las columnas? En SQL Server hay dos formas, pero el ANSI serÃa agregar la palabra reservada AS y luego escribir, si va a ser una sola palabra, puedo escribirlo directamente, el nombre de la columna, en este caso serÃa Nombre. Y para apellido podrÃa hacer lo mismo, Apellido. Si voy a escribir más de una palabra, puedo ponerla entre comillas dobles. Por ejemplo, "Apellido del cliente". Vamos a ver cómo queda. Ejecuto. Para ejecutar marco y fÃjense que me quedó nombre y apellido de cliente. Veamos este otro. En este caso, vamos a empezar a usar el ORDER. FÃjense, dice: "Desplegar el nombre y apellido de todos los empleados ordenados por apellido de forma ascendente". Muy bien. Primero, revisemos qué tenemos en la tabla Empleados. En el caso de la tabla Empleados, fÃjense, la tenemos por acá, también tiene un montón de campos, lo que nos está pidiendo el enunciado es el nombre y el apellido, pero nos va a pedir ordenarlo. Ojo, vean esta primera parte de acá. Lo dejamos asÃ. No me pidió renombrar las columnas y le ponemos de qué tabla. En este caso es "Employee". Y lo que me pide es ordenarlo. El ORDER BY, como dije al principio, permite dos tipos de orden: ascendente o descendente. Ascendente es lo que llamamos de menor a mayor y descendente de mayor a menor. Cuando yo pongo en el ORDER BY me va pedir columnas, por qué columnas quiero ordenar. Las columnas que voy a utilizar pueden no ser las que están en el SELECT. En algún momento espero poder darles un ejemplo de esto, pero en este caso sÃ, porque apellido la voy a mostrar. Yo digo que quiero ordenar por apellido. Si yo quiero ordenar de forma ascendente, deberÃa agregar la palabra reservada ASC. Por defecto, si no la agrego, el motor toma que estoy ordenando de forma ascendente, es decir, de menor a mayor. Si quiero ordenar de otra forma, como les va a pedir el ejemplo que sigue, puedo utilizar otra palabra reservada, que es DESC. Esta sà la voy a tener que agregar, porque no la toma por defecto. Por ahora lo tenemos ascendente. FÃjense. Yo apreté ahora una combinación de teclas, es lo mismo que apretar "run", y ahora lo tenemos ordenado de forma ascendente. Ejecutemos una parte de la consulta si no estuviera ordenado. FÃjense que el primer nombre, el primer registro que tenÃa, era Adams. Veamos de vuelta, porque justo me trajo Adams. El segundo era Callahan. Cuando vuelvo a consultar, van a ver que Callahan no está en la segunda posición si no aplico el orden. Lo que estoy haciendo ahora es ejecutando la consulta sin aplicar el orden. Cuando aplico el orden, Callahan viene. En orden alfabético. Ahora, hagamos lo mismo, pero en orden descendente. Si fuera en orden descendente, fÃjense que el último que deberÃa aparecer serÃa Peacock, el primero que deberÃa aparecer. Agregamos descendente y aparece primero. Asà hicimos un recorrido de consultas muy básicas, hasta ahora utilizamos el SELECT, el FROM y el ORDER BY. Vamos a empezar a avanzar y vamos a tocar el que al principio mencioné, que es el WHERE, que son las condiciones a nivel de registro. Cuando digo a nivel de registro es que, por ejemplo, voy a tratar de limitar este listado para que algunos registros que no cumplan con alguna condición que yo proponga, no aparezcan cuando ejecute la consulta.