--- id: sql-to-api title: 'Converting SQL to JavaScript API' description: Implementing common SQL patterns in the JavaScript API --- import Tabs from '@theme/Tabs' import TabItem from '@theme/TabItem' Select a set of columns from a single table with where, order by, and limit clauses. ```sql select first_name, last_name, team_id, age from players where age between 20 and 24 and team_id <> 'STL' order by last_name, first_name desc limit 20 ``` ```js const { data, error } = await supabase .from('players') .select('first_name,last_name,team_id,age') .gte('age', 20) .lte('age', 24) .not('team_id', 'eq', 'STL') .order('last_name', { ascending: true }) // or just .order('last_name') .order('first_name', { ascending: false }) .limit(20) ``` Select all columns from a single table with a complex where clause: OR AND OR ```sql select * from players where ((team_id = 'CHN' or team_id is null) and (age > 35 or age is null)) ``` ```js const { data, error } = await supabase .from('players') .select() // or .select('*') .or('team_id.eq.CHN,team_id.is.null') .or('age.gt.35,age.is.null') // additional filters imply "AND" .not('team_id', 'eq', 'STL') ``` Select all columns from a single table with a complex where clause: AND OR AND ```sql select * from players where ((team_id = 'CHN' and age > 35) or (team_id <> 'CHN' and age is not null)) ``` ```js const { data, error } = await supabase .from('players') .select() // or .select('*') .or('and(team_id.eq.CHN,age.gt.35),and(team_id.neq.CHN,.not.age.is.null)') ``` Get a count of rows, but don't return any data. ```sql select count(*) from players where team_id = 'NYM' ``` ```js const { data, error } = await supabase .from('players') .select('*', { count: 'exact', head: true }) // exact, planned, or executed .eq('team_id', 'NYM') ``` ## Resources - [Supabase Account - Free Tier OK](https://supabase.com) - [Postgrest Operators](https://postgrest.org/en/stable/api.html#operators) - [Supabase API: JavaScript select](/docs/reference/javascript/select) - [Supabase API: JavaScript modifiers](/docs/reference/javascript/using-modifiers) - [Supabase API: JavaScript filters](/docs/reference/javascript/using-filters)