SQLPage v0.20.3 documentation

If you are completely new to SQLPage, you should start by reading the get started tutorial, which will guide you through the process of creating your first SQLPage application.

Building an application with SQLPage is quite simple. To create a new web page, just create a new SQL file. For each SELECT statement that you write, the data it returns will be analyzed and rendered to the user. The two most important concepts in SQLPage are components and parameters.

To select a component and set its top-level properties, you write the following SQL statement:

SELECT 'component_name' AS component, 'my value' AS top_level_parameter_1;

Then, you can set its row-level parameters by writing a second SELECT statement:

SELECT my_column_1 AS row_level_parameter_1, my_column_2 AS row_level_parameter_2 FROM my_table;

This page documents all the components provided by default in SQLPage and their parameters. Use this as a reference when building your SQL application. If at any point you need help, you can ask for it on the SQLPage forum.

If you know some HTML, you can also easily create your own components for your application.

components

The "chart" component

A component that plots data. Line, area, bar, and pie charts are all supported. Each item in the component is a data point in the graph.

Top-level parameters

type

REQUIRED. The type of chart: "line", "area", "bar", "column", "pie", "scatter", "bubble", or "heatmap".

class

class attribute added to the container in HTML. It can be used to apply custom styling to this item through css. Added in v0.18.0.

color

The name of a color in which to display the chart. If there are multiple series in the chart, this parameter can be repeated multiple times.

height

Height of the chart, in pixels. By default: 250

horizontal

Displays a bar chart with horizontal bars instead of vertical ones.

id

id attribute added to the container in HTML. It can be used to target this item through css or for scrolling to this item through links (use "#id" in link url).

labels

Whether to show the data labels on the chart or not.

logarithmic

Display the y-axis in logarithmic scale.

marker

Marker size

stacked

Whether to cumulate values from different series.

time

Whether the x-axis represents time. If set to true, the x values will be parsed and formatted as dates for the user.

title

The name of the chart.

toolbar

Whether to display a toolbar at the top right of the chart, that offers downloading the data as CSV.

xticks

Number of ticks on the x axis.

xtitle

Title of the x axis, displayed below it.

ymax

The maximum value for the y-axis.

ymin

The minimal value for the y-axis.

ystep

Step between ticks on the y axis.

ytitle

Title of the y axis, displayed to its left.

ztitle

Title of the z axis, displayed in tooltips.

Row-level parameters

x

REQUIRED. The value of the point on the horizontal axis

y

REQUIRED. The value of the point on the vertical axis

label

An alias for parameter "x"

series

If multiple series are represented and share the same y-axis, this parameter can be used to distinguish between them.

value

An alias for parameter "y"

Example 1

An area chart representing a time series, using the top-level property time. Ticks on the x axis are adjusted automatically, and ISO datetimes are parsed and displayed in a readable format.

select 
    'chart'             as component,
    'Quarterly Revenue' as title,
    'area'              as type,
    'indigo'            as color,
    5                   as marker,
    TRUE                as time;
select 
    '2022-01-01T00:00:00Z' as x,
    15                     as y;
select 
    '2022-04-01T00:00:00Z' as x,
    46                     as y;
select 
    '2022-07-01T00:00:00Z' as x,
    23                     as y;
select 
    '2022-10-01T00:00:00Z' as x,
    70                     as y;
select 
    '2023-01-01T00:00:00Z' as x,
    35                     as y;
select 
    '2023-04-01T00:00:00Z' as x,
    106                    as y;
select 
    '2023-07-01T00:00:00Z' as x,
    53                     as y;

Result

Quarterly Revenue

Loading...

Example 2

A pie chart.

select 
    'chart'   as component,
    'Answers' as title,
    'pie'     as type,
    TRUE      as labels;
select 
    'Yes' as label,
    65    as value;
select 
    'No' as label,
    35   as value;

Result

Answers

Loading...

Example 3

A basic bar chart

select 
    'chart'             as component,
    'bar'               as type,
    'Quarterly Results' as title,
    TRUE                as horizontal;
select 
    'Tom' as label,
    35    as value;
select 
    'Olive' as label,
    15      as value;

Result

Quarterly Results

Loading...

Example 4

A bar chart with multiple series.

select 
    'chart'    as component,
    'Expenses' as title,
    'bar'      as type,
    TRUE       as stacked,
    TRUE       as toolbar,
    10         as ystep;
select 
    'Marketing' as series,
    2021        as x,
    35          as value;
select 
    'Marketing' as series,
    2022        as x,
    15          as value;
select 
    'Human resources' as series,
    2021              as x,
    30                as value;
select 
    'Human resources' as series,
    2022              as x,
    55                as value;

Result

Expenses

Loading...

Example 5

A scatter plot with multiple custom options.

select 
    'chart'               as component,
    'Gross domestic product and its growth' as title,
    'scatter'             as type,
    'Growth Rate'         as xtitle,
    'GDP (Trillions USD)' as ytitle,
    500                   as height,
    8                     as marker,
    0                     as xmin,
    10                    as xmax,
    0                     as ymin,
    25                    as ymax,
    5                     as yticks;
select 
    'Brazil' as series,
    2.5      as x,
    2        as y;
select 
    'China' as series,
    6.5     as x,
    14      as y;
select 
    'United States' as series,
    2.3             as x,
    21              as y;
select 
    'France' as series,
    1.5      as x,
    3        as y;
select 
    'South Africa' as series,
    0.9            as x,
    0.3            as y;

Result

Gross domestic product and its growth

Loading...

Example 6

Heatmaps

You can build heatmaps using the heatmap top-level property.

The data format follows the apexcharts heatmap format, where each series is represented as a line in the chart:

  • The x property of each item will be used as the x-axis value.
  • The series property of each item will be used as the y-axis value.
  • The y property of each item will be used as the value to display in the heatmap

The color property sets the color of each series separately, in order.

select 
    'chart'                     as component,
    'Survey Results'            as title,
    'heatmap'                   as type,
    'Database managemet system' as ytitle,
    'Year'                      as xtitle,
    'red'                       as color,
    'orange'                    as color,
    'yellow'                    as color;
select 
    'PostgreSQL' as series,
    '2000'       as x,
    48           as y;
select 
    'SQLite' as series,
    '2000'   as x,
    14       as y;
select 
    'MySQL' as series,
    '2000'  as x,
    78      as y;
select 
    'PostgreSQL' as series,
    '2010'       as x,
    65           as y;
select 
    'SQLite' as series,
    '2010'   as x,
    22       as y;
select 
    'MySQL' as series,
    '2010'  as x,
    83      as y;
select 
    'PostgreSQL' as series,
    '2020'       as x,
    73           as y;
select 
    'SQLite' as series,
    '2020'   as x,
    28       as y;
select 
    'MySQL' as series,
    '2020'  as x,
    87      as y;

Result

Survey Results

Loading...

Example 7

Multiple charts on the same line

You can create information-dense dashboards by using the card component to put multiple charts on the same line.

For this, create one sql file per visualization you want to show, and set the embed attribute of the card component to the path of the file you want to include, followed by ?_sqlpage_embed.

select 
    'card' as component,
    'A dashboard with multiple graphs on the same line' as title,
    2      as columns;
select 
    '/examples/chart.sql?color=green&n=42&_sqlpage_embed' as embed,
    'You can find the sql file that generates the chart [here](https://github.com/lovasoa/SQLpage/tree/main/examples/official-site/examples/chart.sql)' as footer_md;
select 
    '/examples/chart.sql?_sqlpage_embed' as embed;

Result

A dashboard with multiple graphs on the same line

Loading...
Loading...

Official SQLPage documentation