Crear tablas en Supabase con SQL

Resumen

Crear tablas en Supabase con SQL te da el control real sobre tu base de datos en Postgres, más allá de la interfaz visual. Es el paso natural cuando quieres trabajar en proyectos profesionales, preparar migraciones o colaborar con un equipo técnico.

La interfaz gráfica de Supabase es cómoda para empezar, pero todo lo que ocurre detrás se traduce a SQL. Y entre más domines ese lenguaje, más libertad vas a tener para mover tu proyecto a donde quieras.

Por qué usar el editor de SQL en lugar de la interfaz visual

La UI de Supabase te resuelve la vida en los primeros pasos, pero escribir SQL te enseña cómo funciona Postgres por debajo. Esa diferencia se nota cuando tu proyecto crece.

Cuando creas una tabla desde el editor visual, Supabase genera la sentencia SQL por ti. Si tú mismo escribes esa sentencia, ganas tres cosas concretas:

  • Control total sobre cada campo, tipo de dato y restricción.
  • Capacidad de versionar tus estructuras y prepararlas para migraciones.
  • Flexibilidad para trabajar en equipo con scripts reutilizables.

¿Qué es una sentencia SQL en Supabase? Es una instrucción escrita en lenguaje SQL que se ejecuta directamente sobre tu base de datos Postgres. Sirve para crear tablas, insertar datos o consultarlos sin pasar por la interfaz visual.

Si quieres profundizar más allá de Supabase, en Platzi hay cursos completos de Postgres, SQL y MySQL donde puedes ir desde lo básico hasta consultas avanzadas.

Cómo recrear la tabla posts desde el editor de SQL

Para este ejercicio, vamos a tomar la misma tabla de posts que creamos en la clase anterior con la interfaz visual y la vamos a recrear con una sentencia SQL. La idea es que veas cómo el mismo resultado se construye desde el código.

Dónde encontrar el editor de SQL

Dentro de tu proyecto en Supabase, en el menú lateral vas a encontrar el SQL Editor. Ahí puedes pegar y ejecutar cualquier sentencia sobre tu base de datos.

La sentencia que vamos a usar la dejo en los recursos de la clase. Como ya existe una tabla llamada posts, a esta nueva la vamos a nombrar posts_new para evitar conflictos.

Qué campos incluye la nueva tabla

La estructura replica exactamente la tabla original creada desde la UI. Estos son los campos que vamos a definir:

  • id: identificador único del post.
  • user_id: referencia al usuario que creó el post.
  • image_url: dirección de la imagen asociada.
  • caption: texto descriptivo del post.
  • likes: contador de me gusta.
  • created_at y updated_at: marcas de tiempo de creación y actualización.

Un ejemplo del esqueleto de la sentencia se ve así:

sql CREATE TABLE posts_new ( id BIGINT PRIMARY KEY, user_id UUID, image_url TEXT, caption TEXT, likes INT, created_at TIMESTAMP, updated_at TIMESTAMP );

¿Por qué la tabla se llama posts_new y no posts? Porque ya existe una tabla con el nombre posts creada desde la interfaz visual. Postgres no permite dos tablas con el mismo nombre dentro del mismo schema.

Qué pasa después de ejecutar la sentencia SQL

Al darle al botón de ejecutar, Supabase corre la instrucción y te confirma que fue exitosa. No vas a ver filas de regreso porque CREATE TABLE no devuelve datos, solo crea la estructura.

Para comprobar que todo salió bien, ve al Table Editor en el menú lateral. Ahí vas a encontrar las dos tablas conviviendo:

  1. posts: la que creaste con la interfaz visual en la clase anterior.
  2. posts_new: la que acabas de crear con SQL, con todos los campos que definiste.

Esta validación visual es útil para confirmar que la sentencia hizo exactamente lo que esperabas.

¿Cómo verifico que mi tabla se creó correctamente? Ve al Table Editor en Supabase y busca el nombre de tu tabla en la lista. Si aparece con todos los campos que definiste en el SQL, la creación fue exitosa.

Por qué esta práctica importa para proyectos reales

Saber crear tablas desde el editor de SQL no es un detalle técnico opcional, es la base para escenarios profesionales. Aquí es donde cobra sentido el esfuerzo de aprender la sintaxis.

Usar SQL directamente te prepara para:

  • Migrar estructuras entre ambientes de desarrollo, staging y producción.
  • Trabajar en equipos donde los cambios de base de datos se versionan en repositorios.
  • Preparar ambientes avanzados con scripts automatizados y pipelines de despliegue.

La interfaz visual te da velocidad inicial, pero el SQL te da escalabilidad. Y aquí viene lo interesante: en la siguiente clase vamos a insertar datos desde el editor para empezar a poblar la base de datos y conectarla con el front-end del proyecto.

¿Ya probaste crear tu primera tabla con SQL en Supabase? Cuéntame en los comentarios cómo te fue y qué dudas surgieron.