# Hágale una pregunta a sus datos Abra el **Editor SQL**, haga clic en el nombre de una tabla para insertarlo, escriba un `SELECT` y pulse **Ejecutar** (Cmd o Ctrl Enter). Desde código, `nx.sql("...")` devuelve las mismas filas. Los resultados grandes se paginan, y el editor muestra cuánto lee una consulta antes de ejecutarla. ## Qué va a construir [#qué-va-a-construir] Tres consultas SQL sobre una tabla real: un vistazo a las filas, un conteo y un resumen agrupado que responde una pregunta de negocio. Además, cómo leer resultados grandes y qué hacer cuando se rechaza una consulta. Los ejemplos usan una tabla `orders` con las columnas `order_id`, `customer`, `amount` y `created_at`. Use los nombres de su propia tabla. ## Antes de empezar [#antes-de-empezar] - Una tabla en Nexus. Si no tiene, siga primero [Convierta una hoja de cálculo en tabla](/docs/es/guides/spreadsheet-to-table). - Acceso para leer esa tabla. Los propietarios y administradores leen todo; los miembros necesitan **Leer sus datos** en [Acceso a datos](/docs/es/data/data-access). - Para desarrolladores: el SDK instalado y una clave de API. Vea el [Inicio rápido](/docs/es/get-started/quickstart). Agregue un `LIMIT` mientras explora para mantener los resultados rápidos y dentro del tamaño de su plan. ## Pasos [#pasos] ### Abra el Editor SQL [#abra-el-editor-sql] Vaya a . El panel lateral muestra sus esquemas y tablas, con un buscador. Haga clic en un nombre para insertarlo, o parta de una consulta lista para ver filas o contarlas. ### Mire las filas [#mire-las-filas] ```sql SELECT * FROM orders LIMIT 100 ``` Seleccione **Ejecutar** o pulse Cmd Enter (Ctrl Enter en Windows). Las filas aparecen debajo, con el número de filas. ### Cuéntelas [#cuéntelas] ```sql SELECT COUNT(*) AS orders FROM orders ``` ### Responda una pregunta [#responda-una-pregunta] ¿Qué clientes gastaron más el mes pasado? ```sql SELECT customer, SUM(amount) AS total FROM orders WHERE created_at >= DATE '2026-10-01' AND created_at < DATE '2026-11-01' GROUP BY customer ORDER BY total DESC LIMIT 10 ``` ### Vea el costo antes de ejecutar [#vea-el-costo-antes-de-ejecutar] El editor muestra cuántos datos lee la consulta y avisa antes de ejecutar una que su plan no permite. Acótela con un `WHERE` sobre una fecha o una clave. ### Conéctese [#conéctese] ```python from klarety import Nexus nx = Nexus.connect() # reads KLARETY_API_KEY ``` ### Ejecute una consulta [#ejecute-una-consulta] ```python result = nx.sql("SELECT * FROM orders LIMIT 100") print(len(result), "rows, read", result.bytes_scanned, "bytes") for row in result.rows[:5]: print(row) ``` ### Pase valores de forma segura [#pase-valores-de-forma-segura] Use marcadores `:name` y `params`. Cada valor se inserta como texto literal, nunca como SQL, así que conviértalo donde se espera un número o una fecha: ```python top = nx.sql( """ SELECT customer, SUM(amount) AS total FROM orders WHERE created_at >= CAST(:start AS DATE) AND created_at < CAST(:end AS DATE) GROUP BY customer ORDER BY total DESC LIMIT 10 """, params={"start": "2026-10-01", "end": "2026-11-01"}, ) print(top.rows) ``` ### Estime antes de ejecutar [#estime-antes-de-ejecutar] `estimate` le dice qué leería una sentencia y si su plan lo permite, sin ejecutarla. ```python print(nx.estimate("SELECT * FROM orders")) ``` ### Lea un resultado grande [#lea-un-resultado-grande] `max_rows` va de 1 a 10,000, y como mucho llega a la vez una página de filas de su plan. Cuando hay más filas, `truncated` es verdadero y `result_rows` lee todas: ```python result = nx.sql("SELECT * FROM orders", max_rows=10000) if result.truncated: for row in nx.result_rows(result): ... ``` ## Compruebe que funcionó [#compruebe-que-funcionó] - El conteo coincide con el número de filas que espera en la tabla. - La consulta agrupada devuelve como mucho diez filas, el total mayor primero. - Desde código, `result.rows` es una lista de diccionarios con el nombre de cada columna. ## Si algo sale mal [#si-algo-sale-mal] Revise su nombre exacto y su esquema en el panel lateral. Desde código, liste las tablas con `nx.tables.list()`, o ejecute `klarety tables`. El resultado completo superó el tamaño de su plan. Acote la consulta o agregue un `LIMIT`. Sus límites están en , o en `nx.limits()` desde código. Puede que no tenga **Leer sus datos** en esa tabla, o que la consulta lea más de lo que permite su plan. Desde código esto lanza `RefusedError` o `OverBudgetError`. Vea [Errores](/docs/es/developers/errors). Desde código, un número entero mayor que 2^53 llega como texto para que ningún lector JSON lo redondee. Conviértalo con `int()`. ## Siguientes pasos [#siguientes-pasos] - [Editor SQL](/docs/es/data/sql-editor): todo lo que hace el editor. - [SQL desde código](/docs/es/developers/sql): parámetros, paginación y errores a fondo. - [Envíe un informe diario](/docs/es/guides/daily-report): que un agente ejecute una consulta así cada mañana.