Si tu intensión es comparar multiples valores en una misma columna (OR anidado), lo recomendable es usar el operador IN
SELECT * FROM libros WHERE categorias IN ("Informática","Inglés","Diseño");
Bienvenida conceptos básicos y contexto histórico de las Bases de Datos
Bienvenida conceptos básicos y contexto histórico de las Bases de Datos
Playground: tu primera consulta en bases de datos
Introducción a las bases de datos relacionales
Historia de las bases de datos relacionales
Qué son entidades y atributos
Entidades de Platzi Blog
Relaciones
Múltiples muchos
Diagrama ER
Diagrama Físico: tipos de datos y constraints
Diagrama Físico: normalización
Formas normales en Bases de Datos relacionales
Diagrama Físico: normalizando Platziblog
RDBMS (MySQL) o cómo hacer lo anterior de manera práctica
¿Qué es RDB y RDBMS?
Instalación local de un RDBMS (Windows)
Instalación local de un RDBMS (Mac)
Instalación local de un RDBMS (Ubuntu)
Clientes gráficos
Servicios administrados
SQL hasta en la sopa
Historia de SQL
DDL create
Playground: CREATE TABLE
CREATE VIEW y DDL ALTER
DDL drop
Playground: VIEW, ALTER y DROP en SQL
DML
Playground: CRUD con SQL
¿Qué tan standard es SQL?
Creando Platziblog: tablas independientes
Creando Platziblog: tablas dependientes
Creando Platziblog: tablas transitivas
Consultas a una base de datos
¿Por qué las consultas son tan importantes?
Estructura básica de un Query
SELECT
Playground: SELECT en SQL
FROM y SQL JOINs
Utilizando la sentencia FROM
Playground: FROM y LEFT JOIN en SQL
WHERE
Utilizando la sentencia WHERE nulo y no nulo
Playground: Filtrando Datos con WHERE
GROUP BY
ORDER BY y HAVING
Playground: Agrupamiento y Ordenamiento de Datos
El interminable agujero de conejo (Nested queries)
¿Cómo convertir una pregunta en un query SQL?
Preguntándole a la base de datos
Consultando PlatziBlog
Playground: Prueba Final con PlatziBlog
Introducción a la bases de datos NO relacionales
¿Qué son y cuáles son los tipos de bases de datos no relacionales?
Servicios administrados y jerarquía de datos
Manejo de modelos de datos en bases de datos no relacionales
Top level collection con Firebase
Creando y borrando documentos en Firestore
Colecciones vs subcolecciones
Recreando Platziblog
Construyendo Platziblog en Firestore
Proyecto final: transformando tu proyecto en una db no relacional
Bases de datos en la vida real
Bases de datos en la vida real
Big Data
Data warehouse
Data mining
ETL
Business intelligence
Machine Learning
Data Science
¿Por qué aprender bases de datos hoy?
Bonus
Bases de datos relacionales vs no relacionales
Elegir una base de datos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Israel Vázquez Morales
El valor nulo en una tabla generalmente es su valor por defecto cuando nadie le asignó algo diferente. La sintaxis para hacer búsquedas de datos nulos es IS NULL. La sintaxis para buscar datos que no son nulos es IS NOT NULL
Aportes 223
Preguntas 32
Si tu intensión es comparar multiples valores en una misma columna (OR anidado), lo recomendable es usar el operador IN
SELECT * FROM libros WHERE categorias IN ("Informática","Inglés","Diseño");
Si un query contiene muchas condiciones encadenadas por diferentes operadores lógicos, es importante establecer la prioridad de su evaluación mediante el uso de paréntesis
SELECT * FROM posts WHERE
titulo like "%se%"
AND
(id < 60 OR estatus = 'inactivo')
es diferente que
SELECT * FROM posts WHERE
titulo like "%se%"
AND
id < 60
OR estatus = 'inactivo'
Como OR se evalúa después de AND con el uso de paréntesis indicamos que se evalúe antes.
Ahora un ejemplo con el operador lógico de negación NOT
SELECT * FROM posts WHERE
NOT estatus = 'activo'
AND
NOT id > 60
AND
NOT YEAR(fecha_publicacion) <> 2025;
NOT invierte el resultado de la condición. Todos los post cuyo estatus no sea activo (toma en cuenta inactivos), que su id no sea superior a 60 (toma todos los menores o iguales a 60) y que su año de publicación no sea diferente de 2025 (toma los de 2025).
Comparto estos archivos que contienen las sentencias para ingresar los Departamentos y Municipios de Colombia por si alguien los necesita.
.
Solo dan click en los archivos departamento.sql y municipio.sql , luego copian el codigo o lo adaptan a su necesidad.
👍
https://github.com/vafelu/departamentos-y-municipios-colombia-SQL
Un ejemplo con operador lógico O
SELECT * FROM libros WHERE
precio < 1000
OR
autor LIKE "%González%"
OR
editorial = "Anaya Multimedia"
OR
YEAR(fecha_publicacion) > 2016;
Basta con que una condición se cumpla (parte / todas) para que el registro forme parte del conjunto de resultados
OJO
El valor nulo no funciona como un valor vacío, funciona como un valor no existente.
El valor nulo significa que no hay nada en el campo mientras que el valor vacío significa que hay algo pero está vacío. Suena un poco contradictorio pero es una aclaración importante.
Apuntes:
NULL no corresponde a ningún valor en particular, sino a una “ausencia” de valor, por lo tanto un NOT NULL correspondería a que no hay una aparente ausencia, es decir, existe un valor así sea un 0. NULL no es igual a nada por lo que en SQL no se le puede asociar con el operador igual que, en vez de esto se le atribuye en un WHERE con un IS NULL. Para valores NOT NULL, también se aplica la misma sintaxis. Para agregar un criterio adicional con WHERE, se usa AND.
SABIAS QUE PUEDES ESCRIBIR LAS SENTENCIAS Y ATRIBUTOS DE INTERCALANDO MAYUSCULAS Y MINUSCULAS?
ALGO COMO:
SeLeCT *
fRoM post
wHeRe usuario_id Is nOt nUlL
MUY CHEVERE Y TODO PERO NO LO HAGAS
ESCRIBIR BIEN TU CODIGO DICE MUCHO DE TI
ADIOS 🍃
🗣NULL => Representa la ausencia de valor.
👀OJO: NULL es diferente de VACIO.
Este es mi primer contacto con bases de datos y para ser sincero, tenía más temor antes de comenzar. Es posible!
El valor nulo en una tabla generalmente es su valor por defecto cuando nadie le asignó algo diferente. La sintaxis para hacer búsquedas de datos nulos es IS NULL. La sintaxis para buscar datos que no son nulos es IS NOT NULL
.
Ejemplos:
.
SELECT *
FROM posts
WHERE usuario_id IS NULL;
.
El AND en el WHERE nos permite unir Criterios en nuestra busqueda
.
Ejemplo:
SELECT *
FROM posts
WHERE usuario_id IS NOT NULL
AND estatus = 'activo’
AND id < 20
AND categoria_id = 2
AND YEAR(fecha_publicacion)=‘2025’;
por si algo, con ctrl + enter se ejecutan los comandos 😃
Para saber que usuarios publicaron posts de categoria “Deportes”.
select *
from usuarios as u
inner join posts as p
on u.id = p.usuario_id
inner join categorias as c
on c.id = p.categoria_id
where c.nombre_categoria = 'Deportes'
;
No esto yseguro si esto le sirva a alguien, pero queria profundizar mas acerca de las funciones para trabajar con tiempo, encontre ese recurso que me parecio bueno:
https://database.guide/6-functions-to-get-the-day-month-and-year-from-a-date-in-sql-server/
Enjoy 😃
Es una base de datos para una librería
Que gracioso, jajaja…
Veo que el profe en algunos casos usa indentación, esto es totalmente necesario? o es la costumbre al programar también en otros lenguajes en los que es obligatorio?
SELECT *
FROM post
WHERE usuario_id IS NOT NULL
AND estatus = 'activo’
AND id < 50
AND categoria_id = 2
AND YEAR(fecha_publicacion) = ‘2025’;
Un valor null si es del tipo int no es igual a 0.
En este enlace hay mas informaciom
Usando la base de datos Sakila:
Saludos.
WHERE IS NULL y WHERE IS NOT NULL, permite filtrar por campos en una base de datos que contengan ya sea un valor nulo o no nulo, pero aparte de esto, con AND se puede filtrar como tanto se requiera a profundidad dentro de la misma, hasta llegar al dato deseado.
Pregunta, en el minuto 6:59 el profesor pone:
categoria_id = 2
Si anterior al WHERE hice un FROM, en el cual uni la tabla post con la tabla categorias ¿Podría poner poner algo cómo categoria_id=‘tecnologia’?
SELECT
payments.amount AS monto,
payments.paymentDate AS diaPago,
customers.customerNumber AS numeroCLiente,
customers.customerName AS nombreCliente
FROM payments
INNER JOIN customers ON payments.customerNumber = customers.customerNumber
WHERE payments.paymentDate BETWEEN '2004-01-01' AND '2004-12-31'
ORDER BY payments.paymentDate;
Increible el nivel de detalle de Platzi como para dedicarle una clase a este tema. ❤️ 😄
El valor nulo en una tabla generalmente es su valor por defecto cuando nadie le asignó algo diferente. La sintaxis para hacer búsquedas de datos nulos es IS NULL. La sintaxis para buscar datos que no son nulos es IS NOT NULL
Supongo que esta es la base de las tiendas ONLINE, cuando uno determina que desea un artículo entre X y Y valor o por color, entre otras variables. ¡SUPER, SUPER!
Mi pregunta fue : ¿en que año fueron los posts mas antiguos y quienes fueron esos usuarios?
"Rule 3 : Systematic treatment of null values: The DBMS must allow each field to remain null (or empty). Specifically, it must support a representation of “missing information and inapplicable information” that is systematic, distinct from all regular values (for example, “distinct from zero or any other number”, in the case of numeric values), and independent of data type. It is also implied that such representations must be manipulated by the DBMS in a systematic way."
Codd’s Rules for RDBMS
El siguiente código lo usé para saber qué materiales tengo que estén dentro de un rango de precios y que haya existencias en bodega:
La restricción NOT NULL sirve para especificar que una columna no acepta el valor NULL, es decir, que esa columna siempre tiene que tener algún valor, no puede estar vacía.
Muy buen curso, sencillo de entender. Muy bien explicado. Felicidades! 😃
Buenos Días.
Aquí les presento una consulta que realicé.
La verdad que con el AND se pueden hacer maravillas
NULL no corresponde a ningún valor en particular, sino a una “ausencia” de valor, por lo tanto un NOT NULL correspondería a que no hay una aparente ausencia, es decir, existe un valor así sea un 0. NULL no es igual a nada por lo que en SQL no se le puede asociar con el operador igual que, en vez de esto se le atribuye en un WHERE con un IS NULL. Para valores NOT NULL, también se aplica la misma sintaxis. Para agregar un criterio adicional con WHERE, se usa AND.
Dejo estos recursos para encontrar DATA SETS PUBLICOS.
Google Research Datasets
Datos abiertos del Gobierno de Colombia
Datos de muestra de Tableau
Data World
Data .gov
World Bank
GLassdoor
En este caso quise buscar los actores con genero femenino que esten en un elenco con un director llamado Evan o similar
Lo hice de la siguiente manera
SELECT elenco_actor.id, actor.nombre, actor.genero AS genero_actor, elenco.director
FROM elenco_actor
inner join elenco ON elenco_actor.id_elenco=elenco.id
inner join actor ON elenco_actor.id_actor=actor.id
WHERE elenco.director LIKE '%Evan%'
AND actor.genero="F";
el resultado fue
No se confundan. Null no es igual a 0.
Aqui podran encontrar mas informacion
Este es mi proyecto hasta el día de hoy. Ha sido un ENORME reto para mí. He invertido muchísimas horas en entender como funciona y he descubierto muchísimas cosas en el camino. La más importante, la integridad de los datos a la hora de importarlos a la BD.
Por fin funcionaaaa!!! Y puedo hacer queries en ella. Por ejemplo, hice la query que me diera cuales cartas de mi BD cuestan 2 manás verdes:
Luego le dije que me trajera todos las cartas legendarias:
Está súper chido todo esto!!! Ando muy emocionado jajajaja!!! Sin embargo, aun falta muchísimo. El curso dice que dura 8 horas, yo le he invertido como 30 y apenas voy aquí.
Les dejo mi diagrama ER y mis tablas. Cualquier sugerencia se los agradeceré.
Ejemplo de query en mi base de datos de boletos para viajar en bus.
SELECT boletos.id AS "Número de boleto",boletos.pago AS "Monto",clientes.nom_cliente AS "Nombre",
clientes.dni,itinerarios.bus_id AS "Número de bus",itinerarios.fecha_hora_embarque AS "Fecha de embarque",itinerarios.fecha_hora_llegada AS "Fecha de llegada"
FROM boletos
INNER JOIN clientes
ON boletos.cliente_id=clientes.id
INNER JOIN itinerarios
ON boletos.itinerario_id=itinerarios.id
WHERE boletos.pago=80.5
AND YEAR(itinerarios.fecha_hora_embarque)="2020";
select *
from suministros
where presentacion = 'kit’
and estado != 'caducado’
and cantidad_stock > 50
and precio < 200
select *
from post
where categoria_id IS NOT NULL
AND status = 'activo’
and categoria_id < 2
and year(fecha_publ) ='2023’
and month(fecha_publ) = ‘12’;
Publicaciones de Usuarios activos sobre ciencia en el año 2026:
SELECT * FROM platziblog2.posts
WHERE estatus = 'activo’
AND categoria_id = '1’
AND Year(fecha_publicacion) = ‘2026’;
SELECT * FROM posts WHERE
estatus = 'inactivo'
AND
categoria_id = 3
AND
id > 50
AND
YEAR(fecha_publicacion) = 2024;
AND
usuario_id IS NOT NULL;
/*
buena explicacion!
★★★★★
El siguiente curso a tomar que vale la pena:
https://platzi.com/cursos/optimizacion-sql-server/
NULL es un valor especial para indicar la ausencia de valor.
“La ausencia de evidencia de algo no es evidencia de la ausencia de algo”.
Cual es la diferencia entre UNION y AND
Null es vació. No existe. No tiene valor, así lo entendí mejor.
Encontré esta web, dónde puedes ir practicando y aprendiendo a hacer consultas: https://www.sql-easy.com/
Para mi fue bastante útil!!
CONSULTA CLASE
ALGUNAS CONSULTA DEL PROYECTO
Recordemos que en WHERE el AND funciona igual que en programación: para que sea válido todas las sentencias deben cumplirse (true).
Hola 😄
Les voy a ser sincero, iba a publicar una pregunta sobre como hacer filtros con las etiquetas y antes de publicarla se me ocurrió una idea y no sé si alguien tenía la misma duda pero aquí esta el resultado 🚀
SELECT *
FROM posts
INNER JOIN posts_etiquetas ON posts.id = posts_etiquetas.post_id
INNER JOIN etiquetas ON etiquetas.id = posts_etiquetas.etiqueta_id
WHERE estatus IS NOT NULL
AND etiqueta_id = 9;
Como hice la unión de tres tablas se puede consultar directamente con el nombre de la etiqueta era necesario, no lo era bastaba con unir dos tablas posts y posts_etiquetas, pero como quería saber el nombre de la categoría decidí que para mi caso era mejor unir las tres tablas.
SELECT *
FROM posts
INNER JOIN posts_etiquetas ON posts.id = posts_etiquetas.post_id
WHERE estatus IS NOT NULL
AND etiqueta_id = 9;
Esta es otra forma valida y bueno les dejo una imagen para que vean como quedo mi consulta final filtrada por etiquetas😼
Excelente curso, siempre se me hacia un mundo cuando veía que en los queries usaban terminos que no sabia en donde colocar, ahora con la triada “SELECT - FROM-WHERE” con su variantes puedo realizar casi la mayoria de consultas a una base de datos 💚
He practicado la consulta usando la sentencia LIKE
SELECT *
FROM posts
WHERE usuario_id IS NOT NULL
AND id<60
AND titulo LIKE 'Se%'
;
Solucionada mi pregunta de la otra clase 😃
¿Cuántos usuarios tengo con correo electrónico dentro de mi db?
¿Cuántos usuarios tengo sin correo?
HOla
mi aporte a la clase, estoy estudiando una base de datos sobre el COVID-19 en el mundo.
![](
Les dejo mis QUERYS en mi proyecto 😃
SELECT *
FROM pedido
WHERE fecha_pedido BETWEEN '2019-01-01' AND '2019-03-01';
SELECT *
FROM marca
WHERE descripcion LIKE '%sephora%';
Mis Outputs 😃
![](
![](
select *
from post
where iduser is null;
Muestra los datos de los posts que en el campo de iduser
tienen el valor null
.
select *
from post
where iduser is not null;
Muestra los datos de los posts que en el campo de iduser
no tienen el valor null
, es decir, muestra los que tienen un usuario.
select *
from post
where iduser is not null
and status = 'activo'
and idpost < 50
and idcategory = 2
;
Muestra los datos según condiciones que se unen mediante la palabra and
para conseguir los datos mas exactos según la necesidad.
Tengo una pregunta: hice este SELECT como el del ejemplo solo que hice un LEFT JOIN entre post y categoria, pero hay informacion redundante como lo es el id de la categoria. Como podria en este ejemplo que coloco en la foto quitar esa columna?
la pregunta qu me hice fue ventas de sudaderas durante los meses de enero a abril y nombre de empleados que han hecho esas ventas.
select nombre_producto, unidades, total, fecha, nombres
from empleados
inner join ventas on empleados.id = ventas.empleados_id
where month (fecha) between 01 and 04
and nombre_producto like ‘%sudadera%’;
Vamos, vamos aprendiendo:
Aca selecciono todas las viviendas, uno la tabla que las contiene con la de subtipos de viviendas y con la de ciudades (donde estan las viviendas). Filtro aquellas que tienen mas de 100 metros cuadrados de superficie y un valor mayor a 3000 por metro cuadrado. Finalmente las ordeno por precio.
En el SELECT indico que campos mostrar.
SELECT subtipos_publicacion.nombre AS subtipo, ciudades.nombre AS ciudad, superficie, cantidadAmbientes, precio
FROM viviendas
INNER JOIN subtipos_publicacion ON subtipos_publicacion.id = viviendas.id_subtipo
INNER JOIN ciudades ON viviendas.id_ciudad = ciudades.id
WHERE superficie > 100
AND precio/superficie > 3000
ORDER BY precio
Muy bien, ahora conocemos lo forma adecuada de filtrar datos tanto NULL como NOT NULL solo debemos recordar usar el IS para esta búsqueda.
Con respecto a las búsquedas de mi proyecto, acá tengo una y es mostrar las ventas realizadas para diciembre y que los artículos vendidos tengan un valor mayor a 20.000, este es el código:
SELECT * FROM pedidos AS tbPedi
INNER JOIN solicitudes AS tbSoli ON tbSoli.Id_solicitud = tbPedi.Id_solicitud
INNER JOIN articulos AS tbArti ON tbArti.Id_articulo = tbSoli.Id_articulo
WHERE MONTH(tbPedi.Fecha) = '12'
AND tbPedi.Id_estado = 3
AND tbArti.Valor_articulo > 20000
Algo como “retornar la información de equipos, su puntaje por enfrentamiento, la id del enfrentamiento, y el nombre del videojuego, solo para el juego Smash Bros. Ultimate y los equipos que hayan marcado 4 puntos o más”
SELECT equipos.nombre AS equipo, puntajes.puntaje, enfrentamientos.enfrentamiento_id AS "enfrentamiento_no.", videojuegos.nombre AS videojuego
FROM equipos
INNER JOIN puntajes ON equipos.equipo_id = puntajes.equipo_id
INNER JOIN enfrentamientos ON enfrentamientos.enfrentamiento_id = puntajes.enfrentamiento_id
INNER JOIN videojuegos ON enfrentamientos.videojuego_id = videojuegos.videojuego_id
WHERE videojuegos.nombre = "Smash Bros. Ultimate"
AND puntajes.puntaje >= 4;
Un ejemplo utilizados valores numéricos y texto como filtros en el where:
SELECT * FROM dbpractica.alumnos
where ciudad_alu like '%Glasgow%'
and codigo_alu > 4
and upper(direccion_alu) like ‘%BOX%’;
SELECT DISTINCT column1, column2, …
FROM table_name;
SELECT * FROM Customers
WHERE NOT Country=‘Germany’
NULL: Es un valor por defecto que se coloca cuando un campo no contiene ningun tipo de valor esto mismo lo podemos ver aplicado a lenguajes de programacion como Python que existen asignaciones de valores nulos pero con su palabra clave ‘None’
select * from consolas where year(ano_lanzamiento) = 2002;
select id_juego,nombre from juegos left join conso_juego on id_juego = conso_juego.id_juego
where conso_juego.id_consola = 4;
select * from ediciones_juego where version like ‘%coll%’;
select * from juegos right join desarrollador on juegos.id_desarrolla = desarrollador.id_desarrolla
where nombre = ‘sony santamonica’;
SELECT count(*)
FROM posts
WHERE year(fecha_publicacion) = '2023'
AND estatus = 'ACTIVO'```
De mi proyecto personal (Paises, datos de este y sus comidas típicas) la pregunte que me hice fue ¿Quiero conocer todos los paises de américa que su comida típica sea el choripán, el código quedo así:
SELECT c.name as Pais, co.name as Continente, l.name as Idioma, tf.name
FROM countries as c
LEFT JOIN continent as co
ON c.continent_id = co.id
LEFT JOIN language as l
ON c.language_id = l.language
LEFT JOIN countries_food as cf
ON cf.countries_id = c.countries_id
LEFT JOIN typical_food as tf
ON tf.id = cf.typical_food_id
WHERE co.id = 1
AND tf.name = "Choripán";
Y el resultado:
¿ERROR AL INSERTAR EL POST QUE SE QUEDO HUÉRFANO?
La única manera que encontré para poder insertar el dato con id 64 de la tabla posts que viene en el archivo Estructura_Query.sql, fue alterar los valores “usuario_id” y “categoria_id” desmarcando los valores NN de la tabla posts.
practica
SELECT *
FROM posts
WHERE usuario_id IS NOT NULL
AND estatus = "activo"
AND usuario_id BETWEEN 2 AND 6
AND categoria_id > 1
AND titulo LIKE "%e%"
AND YEAR(fecha_publicacion) = “2025”
;
SELECT *
FROM usuarios
left join posts
ON usuarios.id = posts.usuario_id
where titulo is not null
and estatus = 'activo'
and posts.id < 50
;
Aquí está mi ejemplo utilizando INNER JOIN y WHERE en mi proyecto
Mi resultado en platziblog, Vamos bien!!!
Excelente video 😃
Excelente explicación!
Muy poderoso se vuelve con los AND.
buenas tardes. La pregunta que me hice es: cuanto vendió la bicicleteria 1 ?
![](
SELECT*
FROM juego_jugador
WHERE jugador IS NOT NULL
AND juego_id = 1
Hola, comparto mi resumen
Considero que la necesidad de obtener información puntual surge de los datos que un usuario(cliente) nos puede otorgar, ya que como creador de tus propios datos te ves limitado a las ideas de lo que tu como usuario único podrías necesitar.
SELECT *
FROM Clientes
WHERE ID_Contacto IS NULL;
--
SELECT *
FROM Productos
WHERE Descripcion_Producto IS NULL;
--
SELECT *
FROM Pedidos
WHERE Fecha_Hora_Pedido IS NOT NULL;
--
SELECT *
FROM Categorias
WHERE Descripcion_Categoria IS NULL;
and so on…
<
select count(email) as gmail_users
from usuarios
where email like "%@platziblog%"
and id>2;
>
He encontrado una pagina super cool en la cual se pueden generar datos y es extremadamente personalizable:
IMPORTANTE:
Si quiere poner el insert sin copiar y pegar cada línea, lo que yo hice es ir VSCODE y seleccionar desde el segundo INSERT INTO hasta el próximo paréntesis. De ahí pulsé CTRL + D para seleccionar todo los que hay (Excepto el primero) y lo reemplacé por una coma " , "
Hacemos lo mismo con los punto y coma " ; " solamente dejando el ultimo.
Por ultimo copiamos y pegamos todo en WorkBench.
Así debería queda el código:
Comparto mi proyecto, probando los joins con varias tablas
Aca dejo al menos dos preguntas sobre mi proyecto:
-- Los kikis del 2022
SELECT nombre, tematica, fecha
FROM ballroom.kikis
WHERE YEAR(fecha) = '2022'
;
-- Los kikis realizados en Casino Caracas
SELECT nombre, tematica, fecha
FROM ballroom.kikis
WHERE direccion LIKE '%casino caracas%'
;
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?