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.
- components are small user interface elements that you can use to display your data in a certain way.
- top-level parameters are the properties of these components, allowing you to customize their appearance and behavior.
- row-level parameters constitute the data that you want to display in the components.
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
class
color
height
horizontal
id
labels
logarithmic
marker
stacked
time
title
toolbar
xticks
xtitle
ymax
ymin
ystep
ytitle
ztitle
Row-level parameters
x
y
label
series
value
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
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
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
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
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
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
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;