Turning Learners Into Developers
Codekilla
CODEKILLA
// projects.sql

10 Best SQL Projects

Hand-picked and ordered easiest → hardest — each with complete code and expected output. Build these to turn lessons into a portfolio.

Back to SQL course
// solution.code
sql
-- Personal Contact List Database
-- Create the contacts table
CREATE TABLE contacts (
    contact_id INTEGER PRIMARY KEY AUTOINCREMENT,
    first_name TEXT NOT NULL,
    last_name TEXT NOT NULL,
    phone TEXT,
    email TEXT,
    relationship TEXT
);

-- INSERT: Add some contacts
INSERT INTO contacts (first_name, last_name, phone, email, relationship)
VALUES 
    ('John', 'Smith', '555-0101', 'john.smith@email.com', 'Friend'),
    ('Sarah', 'Johnson', '555-0102', 'sarah.j@email.com', 'Family'),
    ('Mike', 'Davis', '555-0103', 'mike.d@email.com', 'Colleague'),
    ('Emily', 'Brown', '555-0104', 'emily.b@email.com', 'Friend');

-- SELECT: Display all contacts
SELECT * FROM contacts;

-- SELECT: Find specific contact
SELECT first_name, last_name, phone 
FROM contacts 
WHERE last_name = 'Smith';

-- UPDATE: Change a contact's phone number
UPDATE contacts 
SET phone = '555-9999', email = 'john.smith.new@email.com'
WHERE contact_id = 1;

-- SELECT: Verify the update
SELECT * FROM contacts WHERE contact_id = 1;

-- DELETE: Remove a contact
DELETE FROM contacts WHERE contact_id = 3;

-- SELECT: Display remaining contacts
SELECT contact_id, first_name, last_name, relationship 
FROM contacts
ORDER BY last_name;
output
contact_id|first_name|last_name|phone|email|relationship
1|John|Smith|555-0101|john.smith@email.com|Friend
2|Sarah|Johnson|555-0102|sarah.j@email.com|Family
3|Mike|Davis|555-0103|mike.d@email.com|Colleague
4|Emily|Brown|555-0104|emily.b@email.com|Friend

first_name|last_name|phone
John|Smith|555-0101

contact_id|first_name|last_name|phone|email|relationship
1|John|Smith|555-9999|john.smith.new@email.com|Friend

contact_id|first_name|last_name|relationship
4|Emily|Brown|Friend
2|Sarah|Johnson|Family
1|John|Smith|Friend