Fall 2026
  • Discord
  • Gradescope
  • Syllabus

On this page

  • Database
  • Question 1
  • Question 2
  • Question 3
  • Question 4
  • Question 5
  • Question 6
  • Question 7
  • Question 8
  • Question 9
  • Question 10
  • Question 11
  • Question 12
  • Question 13
  • Question 14
  • Question 15
  • Question 16
  • Question 17
  • Question 18
  • Question 19
  • Question 20

SQL: Practice Questions

For each statement, write its output rows. If it returns no rows, write “No Output”.

Database

Each question starts with a fresh database created by these statements.

----------------------------------------
-- users
----------------------------------------

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    username TEXT NOT NULL UNIQUE,
    password TEXT NOT NULL,
    age INTEGER
);

INSERT INTO users (username, password, age) VALUES ('Trump', 'TRUMP', 76);
INSERT INTO users (username, password, age) VALUES ('Biden', '12345', 79);
INSERT INTO users (username, password, age) VALUES ('Evan', 'correct horse battery staple', 7);
INSERT INTO users (username, password, age) VALUES ('Isaac', 'soccer', 4);
INSERT INTO users (username, password, age) VALUES ('Aaron', 'guaguagua', 3);
INSERT INTO users (username, password, age) VALUES ('Aurelia', '', 2);
INSERT INTO users (username, password, age) VALUES ('Teal', '524euTjrWm6uK2C5iw8mC6aNgX1JI78o', 38);
INSERT INTO users (username, password) VALUES ('Kristen', 'Possible-Rich-Absolute-Battle');

----------------------------------------
-- messages
----------------------------------------

create table messages (
    id integer primary key,
    sender_id integer not null references users(id),
    message text not null,
    created_at timestamp not null default current_timestamp
);

insert into messages (sender_id,message,created_at) values
    (1, 'I''m a baby', '2022-11-14 14:30:00'),
    (2, 'I''m a baby', '2022-11-14 14:30:00'),
    (3, 'I''m a baby', '2022-11-14 14:33:01'),
    (4, 'I''m a baby', '2022-11-15 14:35:45');

insert into messages (sender_id,message,created_at) values
    (3, 'I''m actually a toddler', '2022-11-16 14:35:45');
insert into messages (sender_id,message,created_at) values
    (6, 'Today in 1918, the Armistice that effectively ended WWI came into effect.', '2022-11-11 11:00:00');
insert into messages (sender_id,message,created_at) values
    (6, 'I''m an adult', '2022-11-17 14:35:25'),
    (6, 'SQL is the best!!', '2022-11-17 15:52:45'),
    (7, 'I''m an adult', '2022-11-17 16:12:21'),
    (7, 'WTF is SQL?!  I thought you liked the snake thing.', '2022-11-17 15:53:47');

Question 1

Use the database above.

SELECT id FROM users WHERE username = 'Trump';
Answer
1

Question 2

Use the database above.

SELECT id FROM users WHERE username = 'trump';
Answer
No Output

Question 3

Use the database above.

SELECT id FROM users WHERE username LIKE 'trump';
Answer
1

Question 4

Use the database above.

SELECT id FROM users WHERE username LIKE 'TRUMP';
Answer
1

Question 5

Use the database above.

SELECT id FROM users WHERE username LIKE 'a%' ORDER BY id;
Answer
5
6

Question 6

Use the database above.

SELECT id FROM users WHERE username LIKE '%a';
Answer
6

Question 7

Use the database above.

SELECT id FROM users WHERE username LIKE '%a%' ORDER BY username;
Answer
5
6
3
4
7

Question 8

Use the database above.

SELECT id FROM users WHERE age IS NULL;
Answer
8

Question 9

Use the database above.

SELECT id FROM users ORDER BY username DESC;
Answer
1
7
8
4
3
2
6
5

Question 10

Use the database above.

SELECT id FROM users ORDER BY age ASC;
Answer
8
6
5
4
3
7
1
2

Question 11

Use the database above.

SELECT id FROM users ORDER BY username ASC;
Answer
5
6
2
3
4
8
7
1

Question 12

Use the database above.

SELECT count(*) FROM messages;
Answer
10

Question 13

Use the database above.

SELECT count(*) FROM messages WHERE sender_id=4;
Answer
1

Question 14

Use the database above.

SELECT count(*) FROM messages WHERE sender_id < 4;
Answer
4

Question 15

Use the database above.

DELETE FROM messages;
SELECT count(*) FROM messages;
Answer
0

Question 16

Use the database above.

DELETE FROM messages WHERE sender_id=1;
SELECT count(*) FROM messages;
Answer
9

Question 17

Use the database above.

DELETE FROM messages WHERE message LIKE '%a%';
SELECT count(*) FROM messages;
Answer
1

Question 18

Use the database above.

DELETE FROM messages WHERE sender_id=3 OR sender_id=0;
SELECT count(*) FROM messages;
Answer
8

Question 19

Use the database above.

UPDATE users SET password='@realdonaldtrump';
SELECT count(*) FROM users WHERE password LIKE '@%';
Answer
8

Question 20

Use the database above.

UPDATE users SET username='@realdonaldtrump' WHERE id=1;
SELECT count(*) FROM users WHERE username LIKE '@%';
Answer
1