You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Table of Content


Purpose


Project Setup


We will use the following site to test SQL commands: https://sqliteonline.com/

Connect to the 'PostgreSQL' database.  Note that this site has a 15 minute limit until the database is refreshed.


Step 1 - Create Tables for Tutorial

Create the following two tables for this demo:

  • CREATE TABLE person ( id INTEGER PRIMARY KEY, person_name VARCHAR(100) );
  • CREATE TABLE country ( id INTEGER PRIMARY KEY, country_name VARCHAR(100) );

For more information on creating tables: https://www.postgresql.org/docs/9.2/sql-createtable.html


Step 2 - Insert Data into the Tables

Insert data into the 'person' table:

Insert into person (id, person_name) values (1, 'Sally');
Insert into person (id, person_name) values (2, 'Bob');
Insert into person (id, person_name) values (3, 'Lucy');


Insert data into the 'country' table:

Insert into country (id, country_name) values (1, 'Canada'), (2, 'USA'), (3, 'Mexico');


Step 3 - Update

Update the person table to have a column for the person's country:

ALTER TABLE person ADD column country_id integer;


Update the data:

update person
set country_id = 2
where person_name = 'Lucy';


update person
set country_id = 1
where person_name in ('Sally', 'Bob');


Step 4 - Query Data

Basic Select Statement

-- select all data from person table

select * from person;

Select with Filter

-- filter data from person table by name

select * from person where person_name = 'Lucy';

Select with Join Condition

-- join data between person and country tables

select person_name, country_name from person
inner join country on person.country_id = country.id;

Select with Group By clause

select country_name, count(*) from person
inner join country on person.country_id = country.id
group by country_name;


select country_name, count(*) from person
inner join country on person.country_id = country.id
group by country_name
having count(*) > 1;


Step 5 - Delete Data

-- delete row from country table where the ID of the country = 3

delete from country where id = 3;


  • No labels