Tech & Giveaways

A SQL primer for Android app developers

SQL stands for ‘Structured Query Language’. That is principally a declarative language used for storing and retrieving knowledge in a database.

If you happen to’ve heard of SQL, it’s most likely within the context of MySQL, SQL Server, Oracle, or SQLite. Chances are you’ll also have assumed those have been programming languages in and of themselves. In truth, those are merely database sorts which use SQL. Each and every has relatively other syntax, however it’s necessarily a unmarried language with a couple of packages.

That is tough stuff and it’s smartly value finding out in the event you’re in any respect fascinated about Android building.

In Android building, we have a tendency to make use of SQLite which is perfect for cell packages and specifically helpful for completely storing knowledge. MySQL is extra usually put in on servers the place it may be utilized by internet apps. Both means, the use of databases to retailer data lets in us to arrange that knowledge in a much more logical and structured way, after which get right of entry to and manipulate that data dynamically.

Databases permit us to use algorithms throughout large knowledge units or even to monetize the knowledge we’ve gathered from customers. Whilst there are different ‘non-SQL’ choices for speaking with a database, SQL has very a lot turn into the trade same old (succeeding Codasyl). That is tough stuff and it’s smartly value finding out in the event you’re in any respect fascinated about Android building.

SQL fundamentals

If you happen to’ve simply realized Java and also you’re lately reeling from the ordeal, don’t concern. SQL isn’t a complete programming language in the similar sense as Java. It’s nearer to one thing like HTML or in all probability the good judgment of a spreadsheet. It’s principally used for placing knowledge right into a desk after which extracting that knowledge according to other filters.

One of the best ways to start out out is to image a relational database. That is necessarily a sequence of tables like in Excel. This construction lets in us to arrange knowledge into columns and rows, which in flip lets in for a large number of other operations.

It’s possible you’ll use a database to retailer an inventory of shoppers… Or we would possibly cross giant and use a server to assemble buying groceries personal tastes from 1000’s of apps after which promote that database on!

For example, chances are you’ll use a database to retailer an inventory of shoppers. It’s good to fill out their knowledge throughout rows to your desk so that you’ve their names, ages, touch main points, genders, and every other pertinent data. Pulling out a selected identify will convey all their main points, readying you to name them up and woo them into purchasing your product.

It’s good to additionally pull out the entire contacts of a selected age, or the entire contacts situated in a selected town. If you happen to have been construction a touch control app, you then’d necessarily simply be developing a sexy UX for getting access to that database. SQL would then be performing as a go-between to your Java and the database. Relating to Android building, that may well be an SQLite database saved at the software as a textual content record. Likewise, we would possibly do one thing identical as a handy technique to retailer participant knowledge like prime rankings or cross giant and use a server to assemble buying groceries personal tastes from 1000’s of apps and promote that database.

SQL syntax

So, you may have your program and you have got your database with consumer main points, usernames and passwords, or gamers and prime rankings. There are a variety of various movements chances are you’ll want to carry out to get thus far and to use the database going ahead.

Those movements are carried out by means of statements. So, as an example, to be able to create a brand new desk, we achieve this by way of the use of CREATE TABLE. So as to add extra knowledge, we use INSERT INTO. To delete knowledge, we use DELETE.

When the use of any of those instructions, it turns out to be useful to stay a ‘picture’ of your desk in thoughts and understand that you’re most commonly referring to precise rows and columns.

For essentially the most section, it’s rather intuitive. In a second we’ll discover easy methods to use each and every observation and what it will possibly do in additional element.

As in any pc language even though, those statements want to be written in the right kind means to be able to be understood and to serve as correctly. Statements don’t seem to be case delicate, so writing choose works simply in addition to writing SELECT. Alternatively, it may be a excellent addiction to make use of capitals to be able to differentiate the statements from the names and the knowledge at a look. Columns and rows in the meantime are separated by way of commas and regularly brackets are used to team knowledge in combination. Some databases would require you to make use of a semicolon on the finish of your statements to indicate the top however others don’t. That is an instance of the slight variation in syntax that may crop up while you transfer from one machine to any other. On this case, we’ll be the use of the syntax for SQLite3, as that’s most likely what you’ll use when growing for Android.

As in any pc language even though, those instructions want to be written in the right kind means to be able to be understood and to serve as correctly.

When the use of any of those instructions, it turns out to be useful to stay a ‘picture’ of your desk in thoughts. Take into account you’re most commonly referring to precise rows and columns.

Helpful SQL statements

There are an excellent many alternative SQL statements that you’ll use to control your databases. Alternatively, maximum Android builders will in finding themselves depending on a couple of key statements.

The very first thing you’ll want to do is to create your database. Some databases will help you do that with CREATE DATABASE, however in SQLite3, you utilize $sqlite, adopted by way of the database identify. You’ll most likely do that the use of a Java elegance, relying on how you wish to have to move about it. However whenever you’ve completed that, you’re excellent to get began with an entire vary of various statements.


A database wishes tables. Your next step then shall be to make use of CREATE TABLE to be able to construct one. That is once more lovely simple, so long as you’ll consider the desk being inbuilt columns.

    rowid integer PRIMARY KEY,
    LastName textual content,
    FirstName textual content,
    Telephone textual content,
    E mail textual content

Right here we’re developing our desk referred to as ‘Clients’ ahead of defining each and every column with the knowledge we would like. The kind of knowledge we’re storing is indicated by way of ‘text’ and ‘integer’. In case you have any coding revel in you’ll be conversant in the time period ‘int’— that means ‘integer’, an entire quantity. Having one row for ID made up of integers is essential because it lets in us to take hold of a large number of rows with out realizing what different knowledge they comprise, in addition to transfer throughout the knowledge sequentially. This integer will increase incrementally by itself as a result of we made it the ‘PRIMARY KEY’, so it’s going to cross up by way of one with each and every new access. If you happen to recall to mind your Excel spreadsheet, simply consider that the numbers down the facet are your ID. You don’t have to incorporate this column however it’s going to provide you with extra flexibility together with your knowledge.

Textual content is a string. In different phrases, it permits you to input phrases, symbols, and numbers— as much as 65,535 characters. In different databases chances are you’ll see this written as ‘varchar(255)’. This implies the similar factor, and the quantity 255 in brackets is the period of the string (we regularly put 255 right here as that is the longest collection of characters that may be counted with an Eight-bit quantity). For now let’s keep on with ‘text’.

As you get extra complicated, there are masses extra choices, like the power to create a brand new desk the use of rows from an outdated desk.


Now you’ve were given a database with an empty desk referred to as ‘clients’. The following factor you’ll most likely wish to do is to place some knowledge in there! To try this we use INSERT INTO. Right here, you’ll insert into your particular desk and you then’ll checklist the columns in brackets, adopted by way of the values.

INSERT INTO table_name (column1, column2, columm3) VALUES (value1, worth 2, value3);

You’ll be capable to insert data into some columns and no longer others.  We will additionally insert a couple of rows of knowledge the use of only a unmarried observation, by way of the use of a variety of brackets separated by way of commas.

For instance, if we needed to replace our shoppers desk, then we’d do one thing like this:

INSERT INTO Shoppers (LastName, FirstName, Telephone, E mail) VALUES
     (‘Lynne’, ‘Jeff’, ‘07123123’, ‘[email protected]’),
     (‘Tandy’, ‘Richard’, ‘071231873’, ‘[email protected]’),
     (‘Bevan’, ‘Bev’, ‘0789123’, ‘[email protected]’),
     (‘Kaminski’, ‘Mik’, ‘0890123’, ‘[email protected]’),
     (‘Wood’, ‘Roy’, ‘0678123’, ‘[email protected]’);

What’s came about right here, is that the entire participants of the best band on Earth have signed as much as our mailing checklist (A No-Prize to whoever can identify the band within the feedback underneath).

Observe that I’ve added new traces right here to be able to make this extra readable. You’ll do the similar when the use of your individual statements. The brand new line doesn’t denote a brand new observation till the semi colon seems proper on the finish.

Additionally word using the citation marks for our strings, just like Java.


DELETE is for deleting rows from tables. To make use of delete, the right kind syntax is:

DELETE FROM table_name WHERE situation;

So, if we needed to delete a unmarried file, shall we use:

DELETE FROM Shoppers WHERE FirstName=‘Roy’;

Roy Wooden wasn’t within the band for extraordinarily lengthy, so he doesn’t get to stick at the checklist. Shall we additionally use this to delete any person over a definite age.

If you happen to simply use DELETE FROM table_name; you then’ll finally end up deleting all the contents of the desk. Be very certain ahead of you do this! If you wish to delete the contents of the desk and it’s construction, you then’d use DROP TABLE. Be much more cautious when doing that.


Including and eliminating knowledge is easy sufficient. Once in a while, you’ll simply wish to replace some data. Possibly you simply want to trade the e-mail cope with however you don’t wish to delete and reinsert all the file.

If that’s the case, you’ll use UPDATE within the following way:

UPDATE Shoppers
SET E mail = ‘[email protected]WHERE E mail = ‘[email protected]’;

You’ll additionally trade data the use of different fields, as an example:

UPDATE Shoppers
SET E mail = ‘[email protected]WHERE rowid = three;

On this case, we’re updating the e-mail column, just for rows with the ID ‘3’ or the E mail ‘[email protected]’. (For this reason it’s so at hand to have that autoincrementing rowid!)

This similar characteristic can be utilized to switch a couple of rows directly (as an example if we used the situation WHERE nation). If you happen to overlook to make use of WHERE you then’ll replace each and every unmarried file… so watch out!


The usage of those statements will construct your database up great and large. However that’s lovely needless till you’ll additionally retrieve that data again.

SELECT is used to go back a suite of effects from a number of tables. If we needed to retrieve any individual’s identify or an inventory of shoppers elderly 21, then we’d use SELECT and observe this up with some particular main points to outline exactly the type of knowledge we wish to retrieve.

SELECT column_name FROM table_name;

This may permit us to make a choice an entire bunch of various columns from our particular desk.

FROM is a clause that adjustments the conduct of the SELECT observation. On this case, it defines which desk we would like use. FROM is a required clause in any SELECT observation. Alternatively others like WHERE are non-compulsory. WHERE lets in us to clear out the rows which were retrieved by way of a ‘predicate’ – a real or false observation. Believe my consumer touch main points desk had any other column in it for ‘age’ and we needed to search out shoppers older than 21. If that’s the case we’d sort:

SELECT FirstName FROM Shoppers
WHERE age > 21;

The ‘>’ image is an operator that means ‘greater than’. So we’re most effective deciding on data the place the integer within the ‘age’ column is larger than 21.

A snappy instance

To look how this would possibly paintings in observe, right here’s a undertaking from Gary that places SQLite into use within the context of an Android app:

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Package deal;
import android.widget.TextView;

import java.util.Random;

public elegance MainActivity extends AppCompatActivity 

Right here we’re developing a brand new database (mydb) after which a brand new desk referred to as ‘mydata’ after checking if it exists and deleting it if this is the case (DROP TABLE IF EXISTS). Then we’re putting knowledge in two columns— person who names the knowledge ‘random’ and person who is composed of a randomly generated integer. In any case, it’s displayed at the display screen by means of a TextView referred to as “myTextView”.

In an upcoming put up, we’ll discover in a different way to succeed in a identical impact.

Extra statements, extra probabilities

There are lots of extra statements you’ll most probably in finding your self the use of often. For instance, ALTER can assist you to upload new columns. AS lets you rename columns and tables. COUNT permits you to depend entries. HAVING is very similar to WHEREGROUP BY permits you to team your effects.

After all, that is certainly not a complete information. There’s a lot to be told right here. You’ll even use extensions to be able to carry out advanced statements like If, Then, and others (even though maximum of this will also be completed thru Java in the event you’re the use of SQLite for construction apps).

In the end, you’ll want to familiarise your self with Cursors to be able to in point of fact profit from SQL.

In the end, you’ll want to make yourself familiar with Cursors to be able to in point of fact profit from SQL. Cursors permit us to transport thru rows of knowledge incrementally after which carry out operations or assessments on that knowledge. For the ones with a coding background, it principally lets in us to accomplish loop operations. This isn’t at all times vital, as equipment like ‘WHERE’ let us clear out the knowledge extra simply. If you happen to ever finally end up the use of giant knowledge for system finding out, you’ll wish to carry out some lovely customized movements and that’s while you’ll want some beefier coding chops.

My advice is to concentrate on construction your desk, including knowledge, and retrieving it. When you wish to have to do one thing extra advanced, pull up Google and perform a little studying.

There shall be any other put up coming very quickly to talk about using SQLite in Android the use of the SQLiteOpenHelper elegance, which can display you easy methods to enforce this to your code in a reasonably simple way. Till then, I additionally suggest heading over to which is a handy gizmo for checking out SQL statements in-browser.

error: Content is protected !!
%d bloggers like this: