SQLite Manager An os-independent full-featured SQLite manager for browsers
Support Development
PayPal ● 
Bitcoin Address: 1sM2BrTH8BRgt3quiASK8TmYSafutNvDo
Dogecoin Address: DFdSGpGMZ2EZVkjyqNrYCEysK92DFPonx4
The "SQLite Manager" extension brings SQLite database interaction to your browser. You can read one or multiple SQLite databases and run SQLite commands right in your browser. You can even create a new SQLite database in the browser's memory and save the binary data later. This extension has a simple to use plotting API powered by the "Chart.js" library. The 'Chart.js' library can be used to plot multiple vertical or horizontal charts in a single plotting area. The extension uses a powerful editor that supports highlighting and autocomplete features (using the ACE library). Similar to Mathematica, this extension has a workspace that can keep multiple execution blocks. Each block has its editor followed by a table that represents the SQLite's statement output. Tables can be exported in CSV format. Each computational box may have one or more plots to visualize the statement's output.


  1. The extension interface is changed on "0.3.x" versions. Is it possible to switch back to the old interface?

    The old interface is still included in the package. Right-click on the browser action button and select the old interface. Note that eventually when all the features are ported to the new interface, the old one will be deprecated. The new interface is simpler to use and is more intuitive. You can even have both interfaces at once. Open one interface and then use the right-click context menu to switch to the other interface and click on the browser action button to open it.

  2. recommended "Open in Tor Browser" extension for Chrome, Edge, and Firefox browsers

    Use this extension to open unknown links and websites. By using the Tor browser, they cannot track you or use your browser fingerprint to identify you. Click the action button to send the current page, or use the context menu item to send links without first storing them to the clipboard! Read more here.

  3. What is the "SQLite Manager" extension and how does it work?

    The "SQLite Manager" extension is a simple to use SQLite application that runs on your browser without any native components needed. The interface has two main blocks. The top area is called the computational region, which contains the history of all SQL statements that are called on the databases. The bottom area is assigned to the tools. The version "0.3.x" supports keyboard shortcuts for almost all the commands on the tools area. You can place your mouse over each command to see the instruction. To start, you can create a new database by pressing the "New" button or drop your database into the interface. You can see the active database on the right side of the tools area. Each new command is executed on the active database. So first, make sure that the correct database is selected and then press the "Enter" key to run an SQLite statement. You can clear the entire computational region with the "Clear" button or remove a single block with the "Close" button on the right side of the editor area. To prevent cluttering, commands that are related to a single block are only shown when the editor is focused. This extension includes a sample database in case you need to play with a ready-to-use database.

  4. Why when I press the "Enter" key, the editor does not respond?

    The "Enter" key is reserved to execute the SQLite statement. Use the Shift + Enter keys to move to a new line.

  5. What is the meaning of the numbers around the editor area?

    The left "DB #" label means that the current box is executed on the database number "#". The top right "#n" label indicates the number of executions on all databases. This number can be used to import data (not yet available on the new interface). You can select a database from the tools area and then press the "Enter" key to let the current editor's statement to get executed to a new database. The "DB #" label will be updated accordingly.

  6. I want to insert multiple rows to a table. Is there any simple way to do this?

    Make sure the database that is supposed to get the records is selected. Now write all the records in a comma-separated CSV database and drop the CSV file into the interface. The extension will ask for the importing statement. Use "?" as the parameters that need to be imported from the CSV database. For instance, let's say you want to import "column1" and "column2" from a two-column CSV database to a table called "MyTable". Drop the CSV file and use INSERT INTO MyTable (column1, column2) VALUES(?, ?) SQLite importing statement. The extension will notify you about the total number of records that are imported.

  7. I want to export an output table. Is it possible?

    When a table is generated, select its text editor. You can see a number of commands in the right side of the editor. Click on the "Export" button to export the entire table in CSV format. To export a part of table, select the needed part and then press the "Export" button. If there are more that one tables for this computational box, the extension exports multiple files.To export a table, focus the text editor. You can see several commands on the right side of each editor. Click on the "Export" button to export the entire table in CSV format. To export part of a table, select the needed part, and then press the "Export" button. You can press the "Ctrl" or "Command" keys to append to the selection. If there are more than one tables for this computational box, the extension exports multiple files. This exported CSV database can be used to import data to another SQLite database by selecting a new database and dropping it into the interface.

  8. How can I visualize a table?

    Select the columns that need to be visualized. You will get a new command in the editor area. Press the "Plot" button to visualize the rows versus the first selected row. To ask the extension to generate the "x" axis for you instead of using the first row, use the Shift key while pressing the "Plot" button. Note that the extension generates one plot for every selected row. If you need the extension to use columns instead of rows (plot each column versus the first column or the generated "x" axis), press the Ctrl or Command key while clicking on the "Plot" button. You can combine Ctrl with Shift or Command with Shift keys to plot columns versus the generated "x" axis.

  9. It is hard to remember SQLite statements. Is it possible to ask the extension to write statements for me?

    As of version 0.3.x, the extension uses a full-featured editor that supports snippets and autocomplete features. Just type a part of the statement and select the desired snippet from the list. Note that this editor supports Sublime Text keyboard shortcuts. For instance, use Ctrl + D or Command + D to select a word, or Ctrl + L or Command + L to select a line.

  10. [Version 0.2.x] What is the "SQLite Manager" extension and how does it work?

    This extension aims to simplify SQLite database access, manipulation, and storage. Plus it helps you to plot the database rows and columns. You can even import a table or part of a table as a matrix into the mathematical environment and start manipulating the data like experts.

  11. What's new in this version?

    Please check the Logs section.

  12. [Version 0.2.x] How can I use this tool?

    When the extension is installed, press the toolbar button to open a new SQLite manager window. You can press the button one more time to open the second manager which is isolated from the first one. Each manager window can load multiple database files simultaneously. Just drop the file to the UI. When a file is dropped, you will see its name and its id in the top left side of the window. To change the active database, click on the select button and activate the database of interest. If you have no database to start with, use the top-right menu button to create a new database. You can create a new database from the command-line interface too. Just type new("database-name.sqlite") command in the command-line text box and press the Enter key. You will notice that a new database gets created in memory and the left-top selection tool will display the name of the database. You can create multiple databases with the same command. Note that the name that is used during the database creation will be used as the file-name of the SQLite database when saving is requested. A list of all the created or imported databases will be shown in the right-top selection tool. Now let's create a new table with CREATE TABLE hello (name char, x int, y int); command. Paste the command and then press the Enter key. You will notice that all the commands are listed so you can revisit them later. You can even fix a command and rerun it by pressing the Enter key! Now that we have our "hello" table, let's fill it with some data. If you need to write multiline SQL commands, use Shift + Enter keys to go to the next line of the editor without executing the command. Paste the following data to the table:

    INSERT INTO hello VALUES ("p1", 0, 0);
    INSERT INTO hello VALUES ("p2", 1, 1);
    INSERT INTO hello VALUES ("p3", 3, 3);
    INSERT INTO hello VALUES ("p4", 4, 2);
    INSERT INTO hello VALUES ("p5", 5, 4);
    INSERT INTO hello VALUES ("p6", 8, 10);
    INSERT INTO hello VALUES ("p7", 10, 120);
    INSERT INTO hello VALUES ("p8", 11, 0);
    Now press the Enter key to save the points to the table. Let's make sure the points are in the table. We can query the entire table with the SELECT * FROM hello command. After executing this command we get a table with all the points! Now that we have the data available we can plot it too! But we need to import the table to math.js environment first. Basically, all the commands that are not valid SQLite commands will be run as math.js command. For instance, you can multiply two numbers with the 1 + 2 command or you can create arrays with the following command:
    a = [1,2,3];
    b = [1:10];
    c = a * 2;
    so it seems very convenient to port our table to this powerful environment. You can do this by piping an SQLite command like SELECT * FROM hello | import as myVar. From now on, the "myVar" is a variable that contains your table. To import a section of a table use the SELECT x, y FROM hello LIMIT 3 | import as mySecondVar command. So we have our table in the math.js as a matrix. Now let's plot the table! To plot a table we will use the built-in "plot" command. This command requires one or two one-dimensional arrays. If only a single array is passed to the function, it is considered as the values in y-direction and the x-direction points will be generated automatically. To extract the 1D arrays from a column of the matrix use myVar[:,1] and to extract 1D array from a row of the matrix use myVar[1,:] where the "1" is the one-based row number. For our example, x and y arrays are located in the columns. So we get them like: x = myVar[:,2]; y = myVar[:, 3]; We are ready to plot with plot(x, y) command! Note that at this time, plot function needs to be run in a new section to see the actual output.

  13. [Version 0.2.x] How powerful this "math.js" library is and where can I find its documentation?

    This is the most powerful math library for interactive JavaScript applications. See http://mathjs.org/ website for information and syntaxes.

  14. [Version 0.2.x] Is it possible to save the in-memory database for later use?

    Yes, in the command-line type download(db-id) where "db-id" is the ID for the database. ID number for each database is listed in the left-top selection tool.

  15. [Version 0.2.x] I have a database but I don't know its table names to run the "SELECTION" query. Is there any way to find the table names?

    Just drop the database to a manager window and use the command menu on the top-right side and find the command for inspecting the database. Note that if a table has too many entries, limit the printing by adding a "LIMIT number" to the query. For instance just to print the first 3 items in the "hello" table use SELECT * FROM hello LIMIT 3 command.

  16. [Version 0.2.x] There is no sorting command in the printed table. How can I sort then?

    Use SQL's ORDER command like SELECT * FROM hello ORDER BY x DESC.

  17. [Version 0.2.x] Is it possible to draw multiple plots in a single chart to compare multiple results?

    Yes, as of version 0.1.1, all the plot commands in a single computational box (active textbox) that are not followed by a semicolon are being plotted in a single chart with different colors. So to have multiple plots simply add the plot command in multiple lines and do not end the line with a semicolon. Note that all the math.js statements that are followed by a semicolon will be hidden from the output.

  18. [Version 0.2.x] Can I export a table into a CSV format file?

    Yes, any table that is shown in the view has an "Export" button on the top left side of it. Press this button and you will get export.csv in the default download directory of your browser.

  19. [Version 0.2.x] Can I import a CSV tabular file into my SQLite database?

    When a file with *.csv format is dropped into the view, the extension converts the tabular data to an SQLite-friendly command. Review the command and press "Enter" to commit. Note that currently only comma-separated CVS database files are supported.

  20. [Version 0.2.x] Is there an easy way to change a value in a printed table so that the change also apply to the SQLite database?

    Double-click the table cell that you would like to change and the extension will open a floating commit box for you. Review the query and either accept or decline it. Note that the query needs a unique condition. If your table has "id" or "rowid" column in the original query the extension will use them for generating the "UPDATE" statement, otherwise, the first column is used to generate the condition. You can alter this query and then commit it. Note that the floating window, only supports one statement at the moment, so please do not modify multiple columns or rows in a single floating commit (if you have a complex query that affects more than one cell, it is recommended to use the normal commit box instead of the floating one)

  21. [Version 0.2.x] What are the customization the plot function supports?

    The Plot function supports the following customizations which are added like query string to the last parameter of this function (plot(xArray, yArray, 'key1=value1&key2=value, ...').

    To have more than one plot, place each plot command in a single-line. This way multiple plots are being grouped together.

    Avaiable options:
    • type: Type of the plot
      • line (e.g.: plot(sin(1:10), 'type=line'))
      • scatter (e.g.: plot(sin(1:10), "type=scatter&showLine=false"))
      • bar (e.g.: plot([60, -20, 100], "type=bar"))
      • pie (e.g.: plot([60, 40, 100], "type=pie"))
      • doughnut (e.g.: plot([60, 40, 100], "type=doughnut"))
    • label: Plot label. “$” will be replaced by plot’s index (e.g.: plot(sin(1:10), "label=my #$ plot"))
    • borderWidth: The width of the line in pixels (e.g.: plot(sin(1:10), 'borderWidth=5'))
    • backgroundColor: The fill color under the line (e.g.: plot(sin(1:10), 'backgroundColor=red'))
    • borderColor: The color of the line (e.g.: plot(sin(1:10), 'borderColor=red'))
    • hoverBackgroundColor: The fill color under the line when mouse is placed on top of the plot (e.g.: plot([60, 20, 100], "type=bar&hoverBackgroundColor=red"))
    • steppedLine: If the line is shown as a stepped line (e.g.: plot(sin(1:10), "steppedLine=after"))
      • false: No Step Interpolation (default)
      • true: Step-before Interpolation (eq. ‘before’)
      • ‘before’: Step-before Interpolation
      • ‘after’: Step-after Interpolation

  22. [Version 0.2.x] Can I execute SQLite command from mathjs environment?

    As of version 0.2.4, it is possible to execute arbitrary SQLite command from the mathjs environment by using sql method. This method has two arguments. The first one is the SQL command to be executed and the second one is an object containing all variables to be bound with the SQLite statement. To run a simple SQLite command just add the first argument (e.g.: sql('SELECT * FROM table_name LIMIT 3')). To send mathjs variables, add the second argument. For instance, let's assume there is a mathjs variable called x. We what to search our table with column name x. To send variables to the SQLite side always prepend them with ":". For instance the mathjs command for this case would be sql('SELECT * FROM table_name WHERE col=:c', {':c': x});. You can run multiple SQLite commands by replacing the second argument with an array. For example, let's say we want to add 10 new records to our table. This is a simple method to do so sql('INSERT INTO table_name(col) VALUES(:v)', map(1:10, f(x) = {':v': x})). In this example, the map function is used to convert an array of 1 to 10 to the array of objects that are needed as the second argument for the SQLite statement.

  23. [Version 0.2.x] Can I import data from a JSON file to the SQLite database?

    As of version 0.2.4, if a JSON file is dropped into the window, the mathjs last variable gets filled with the object representing this JSON file. You can use the sql command to send the JSON info to the SQLite database.

  24. [Version 0.2.x] I would like to update my SQLite database from a JSON object. Is it possible?

    As of version 0.2.4, you can drop any valid JSON file into the computational window and the JSON will be parsed and will be assigned to the "last" MathJS variable. So you can access it from the MathJS environment. To update the database you need to run one or more SQL statements, so this version supports a new command called "sql(statement, [object or array of inputs])" in the MathJS environment. This command has two input arguments. The first one is the actual SQL statement and the second one which is optional is used to bind the statement with the MathJS variables. For instance, let's say we have a variable called "id" in the MathJS environment and we want to see the queries that match this variable. Run sql('SELECT * from table_name where id=:id', {':id': id}). This commands bind the MathJS "id" with the SQLite statement and then executes it and prints the output in the computational box. To run this statement on multiple ids, just send an array of objects as the second argument. If the array is big and you would like to see the progress, open your browser console. Note that MathJS is slow when it comes to creating large objects. So in version 0.2.4, we introduced a sandboxed JavaScript editor. This editor can be accessed from the managed menu item. When the editor is open, you can access all the MathJS variables inside the "mathjs" global variable. You can even send the output of JS code to the MathJS environment using the "send(name, value)" command. Since we are in JavaScript, "console.log" command will print to the browser console window. If you are dealing with large arrays, it is recommended to use the JS editor to construct your array and then send the result to the MathJS environment to execute SQL command from this array.

Matched Content


Please keep reviews clean, avoid the use of improper language and do not post any personal information.

What's new in this version

Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Editorial Review

    Using SQL/SQLite and managing multiple databases is undoubtedly a challenging task. It requires certain expertise and skills to view and manipulate data from multiple resources. SQLite Manager browser extension aims to make the use of SQLite easy for everyone. Whether they live up to this claim or not, you will get to know by reading this in-depth review of this extension.

    SQLite Manager is definitely a must-have extension for every individual who deals with these databases on regular basis. It is extremely easy to use and provide you just the support you require when using multiple databases. With this extension, you will no longer have to go through the hassles of switching between your browser and SQL software to execute the SQL commands as you will be able to do this right from your browser. Furthermore, it also allows users to read multiple SQLite databases directly from their browser. Another prominent aspect that makes further surges up its importance is the option to create a new SQLite database. It allows easy creation of the database in the browser memory using a simple command. This database can be saved later in the computer hard disk if you need to have access to it later. Thus, all the hassles faced by a database manager while creating a new database are eliminated. This extension serves as a full-featured manager as it can support each and every standard command use to create and modify databases. It is equipped with two powerful libraries that further enhance its functionality and usability. These extensions include math.js and Chart.js. The former makes it easier to handle arrays and matrixes while the latter can prove to be useful when it comes to plotting 2D charts. Another powerful feature it boasts of is that it keeps a history of commands used. Thus, you can always go back and see the commands you have already used with this extension for reusing them. This extension uses JavaScript; hence, there is no requirement to use any native component. With this feature, your browser will not become sluggish and slow and security-wise there is no access to your personal data. In case you have forgotten a table name of a database, there is nothing to worry about as you can easily find it using the built-in tools. All you have to do is to open the manager window of this extension and drop the database there. Then, you will have to open the command menu, there you will spot the command for inspecting the database. Another outstanding feature is that it is free and, as stated above, easy to use. You will just have to install it and you can perform an array of function related to the database using this extension. It supports multiple manager windows in which multiple database files can be loaded simultaneously. Thus, you can work on as many databases as you like all at the same time. Talking about the flipsides, I didn’t find in this extension. Thus, I would suggest this extension to be used by every database manager.

    Permissions are explained

    storageto save internal preferences

    Recent Blog Posts on add0n.com