Proyección significa elegir QUE columnas (o expresiones) la consulta debe retornar.
Selección significa CUALES SON las columnas retornadas.
Supongamos la siguiente consulta:
select*Columna1, Columna2, Columna3*from*table_1*where***n=3***;
La proyección sería: Columna1, Columna2 y Columna3 y la parte de Selección es n*=3,* debido a esto es que denominamos a la clausula SELECT como la proyección y los filtros aplicados en la clausula WHERE como Selección.
La Consulta más Básica sería
SELECT*FROM Tabla1;
El astrisco (*) es un comodín que indica que queremos traer una proyección completa (Todos los campos o columnas existentes en la tabla)
Alias
Un alias (..AS...), es otra forma de llamar a una tabla o a una columna, y se utiliza para simplificar las sentencias SQL cuando los nombres de tablas o columnas son largos o complicados.
SELECT Columna1 AS Alias1 FROM Tabla1; (Para referirnos a la Columna1, podremos denominarla como Alias1)
..
.
Funciones de agregación
Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto de resultados, pero devolviendo un único valor agregado para todos ellos.
Es decir, nos permiten obtener medias, máximos, etc... sobre un conjunto de valores.
Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes:
COUNT: devuelve el número total de filas seleccionadas por la consulta, como particularidad se puede usar COUNT()* donde contará todos los registros de la tabla incluyendo nulos.
MIN: devuelve el valor mínimo del campo que especifiquemos.
MAX: devuelve el valor máximo del campo que especifiquemos.
SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.
AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.
.
Función IF()
Función que evalúa una sola expresión y retorna lo que se le especifica en el caso que sea Verdadera o Falsa
IF(expresion, resultado_true, resultado_else)
Función CASE()
Sirve para evaluar una lista de condiciones y retornar uno o múltiples posibles resultados.
Comienza con la sentencia CASE, luego evalua expresiones comenzando con WHEN y en caso que sea verdadera, devolverá el resultado especificado para esa condición luego del THEN..
.
La sentencia ELSE es opcional y devolverá este valor en caso que todas las condiciones WHEN anteriores sean Falsas.
Si todas las condiciones son falsas, y no existe la clausula ELSE, se devolverá NULL.
CASEWHEN eval_1 THEN resultado_1
WHEN eval_2 THEN resultado_2
...WHEN value_n THEN resultado_n
ELSE resultado
ENDAS ValorResultado;
Insuperable, gracias.
Increible, muchas gracias
Pueden ir probando algunos comandos con el script que ya tenemos. Aquí les dejo mi ejemplo. :D
Gracias por ese aporte!!! me sirvió mucho cuando estuve practicando!!!
XD
Que bien explicado. Aunque faltó la explicación de la función DISTINCT que sirve para dar valóres únicos y que no se repitan nada más porque sí.
Mis notas personales sobre SELECT:
Peque resumen: 😉
Puedes asignar alias con “AS” (Muy potente)
COUNT() Cuenta el número de elementos que existen en todas las tuplas de la base de datos
SUM() Toma la columna que le digas y suma sus valores de forma consecutiva
AVE() (De AVErage) Saca el valor promerdio de toda la columna
Al igual que otros lenguajes puedes hacer “IF” con un montón de posibilidades.
corrección, no es Ave, es AVG(), por lo demás, excelente aporte.
Todos los registros
SELECT*FROMPRUEBAS.ALUMNOS;
Alias
SELECT nombre as"name", apellido as"last name"FROMPRUEBAS.ALUMNOS;
Conteo
SELECTCOUNT(id)FROMPRUEBAS.ALUMNOS;
Sumatoria
SELECTSUM(colegiatura)FROMPRUEBAS.ALUMNOS;
Promedio
SELECTAVG(colegiatura)FROMPRUEBAS.ALUMNOS;
Minimo
SELECTMIN(colegiatura)FROMPRUEBAS.ALUMNOS;
Maximo
SELECTMAX(colegiatura)FROMPRUEBAS.ALUMNOS;
Case
SELECT nombre, apellido, colegiatura,CASEWHEN(colegiatura >4000)THEN'Mayor a 4000'WHEN(colegiatura =2000)THEN'Igual a 2000'ELSE'Mayor a 2000 y menor que 4000'END costo
FROM pruebas.alumnos;
Aparte de las licencias, cual es la diferencia aplicable en el dia a dia entre PostreSQL y SQL server?
PosgreSQL es un ide gratuito y el Microsoft SQL Server es de paga a excepción que seas de desarrollo y tengas funciones limitadas.
Una proyección es elegir las columnas o expresiones que la consulta debe retornar. Con SELECT indicas cuáles son en SQL.
SELECT*;
La anterior expresión es un select all. Quiere decir que estás selecciondo toda tu base de datos. Algunas formas de usar SELECT son:
SELECT field AS alias;SELECTCOUNT(id),SUM(quantity),AVG(age);SELECTMIN(date),MAX(quantity);
Y también podemos usar condicionales para hacer filtros.
Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes:
COUNT: devuelve el número total de filas seleccionadas por la consulta, como particularidad se puede usar COUNT()* donde contará todos los registros de la tabla incluyendo nulos.
MIN: devuelve el valor mínimo del campo que especifiquemos.
MAX: devuelve el valor máximo del campo que especifiquemos.
SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.
AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.
RECUERDA: se debe usar al final el GROUP BY para que tenga validez y sentido el query a implementar
Perdón estuve investigando sobre el Select if(condicion, verdadero, falso) pero no he encontrado nada que sirva ni he podido realizar un ejemplo en mi DB, podrían profundizar en el tema??
Este es un ejemplo:
MariaDB[practico_sql]>SELECT nombre from alumnos LIMIT5;+--------+| nombre |+--------+|Wanda||Blayne||Hilde||Leanna||Maire|+--------+5 rows inset(0,001 sec)MariaDB[practico_sql]>SELECT nombre,IF(nombre="Wanda","Hola Wanda","Bienvenidos")AS saludo FROM alumnos LIMIT5;+--------+-------------+| nombre | saludo |+--------+-------------+|Wanda|HolaWanda||Blayne|Bienvenidos||Hilde|Bienvenidos||Leanna|Bienvenidos||Maire|Bienvenidos|+--------+-------------+
se puede probar todo lo que menciona el profesor con los archivos que se descargo antes, sin embargo aun se me complica usar la funcion if, si alguien màs experimentado llega a realizar un ejemplo con esa función me gustaría que lo compartiera como es que lo llego a usar. Acá les dejo una muestra de lo que probé.
Sabes como puedo contar las veces que la alerta se activa?
El curso es bueno. Sin embargo, para mí que tenía bases cero en SQL, se me estaba dificultando mucho entender sin ejemplos. Me sirvió mucho primero revisar este tutorial y luego volver al curso Tutorial SQL en Español interactivo con intérprete SQL (sql-easy.com)
También podés ver su curso "Fundamentos para bases de datos", que es introductorio de SQL y es muy bueno.
Tienen ligeras diferencias, no he probado a fondo PostgreSQL, pero algunos features tienen diferentes nombres al igual que algunos comandos, pero eso es cosas más avanzadas, por ejemplo, las MySQL Spatial Functions tienen otro nombre y creo que una diferente sintaxis en PostgreSQL 🤔
MySQL y PostgreSQL son dos de los motores de bases de datos relacionales más populares y ampliamente utilizados. Aunque ambos son sistemas de gestión de bases de datos relacionales, hay algunas diferencias importantes entre ellos.
Licencia: MySQL es de código abierto pero incluye también una versión comercial, mientras que PostgreSQL es completamente de código abierto.
Escalabilidad: MySQL es más escalable en términos de rendimiento, ya que es capaz de manejar una gran cantidad de transacciones y consultas simultáneas. PostgreSQL, por otro lado, es más escalable en términos de características, ya que ofrece una mayor cantidad de características avanzadas como la recuperación de desastres, la replicación asimétrica y la compatibilidad con el estándar SQL.
Comunidad: MySQL es desarrollado y mantenido por Oracle Corporation, mientras que PostgreSQL es desarrollado y mantenido por una comunidad de voluntarios de todo el mundo.
Caracteristicas: PostgreSQL ofrece más características avanzadas como la indexación en texto completo, la compatibilidad con JSON y la implementación de procedimientos almacenados en lenguaje Python o PL/Python.
Uso: MySQL es utilizado en una variedad de aplicaciones, incluyendo sitios web y aplicaciones empresariales. PostgreSQL es utilizado principalmente en aplicaciones empresariales y aplicaciones de ciencia de datos.
En resumen, ambos son motores de bases de datos muy potentes, pero con diferentes enfoques y características. MySQL es más escalable en términos de rendimiento, mientras que PostgreSQL es más escalable en términos de características. El mejor motor para ti dependerá de tus necesidades específicas.
++Proyección (SELECT)++
Se le llama así porque toma la información de la base de datos y la proyecta en una manera más visual
Se pueden utilizar alias y agregaciones
También estructuras de control como IF y CASE
para los que usan SQL Server
el Alias es con AS, pero igual puedes dejar un espacio y asignarle un nombre la diferencia es, que tan estricto es el lenguaje.
EX
SELECT file AS Alias; o SELECT file Alias.
si usas un alias con espacios, asegurate de ponerlo entre []
el AVE() es AVG()
SUM() es igual asi como COUNT(), MAX(),MIN()
si estas operando con una columno con nulos puedes usar ISNULL(<Columna Referencia>,<ValorDado>)
ex
ISNULL(Descuento,0)
Intenté probar el IF() pero no lo pude ejecutar en Postgres, alguien sabe como hacerlo?
Por lo que vi Postgresql solo permite condicionales en el SELECT con CASE. Los motores de bases de datos son como los lenguages de programacion que tienen el mismo proposito, todos tienen sintaxis diferente y nombres diferentes para los mismos metodos.
Por que tenemos que instalar el postgresql? En que momento explicas eso? Ni siquiera pude instalarlo aun, que perdida de tiempo