Write a Python script that connects to a SQLite database, creates a table, inserts sample data, and retrieves it using SQL queries.
```python
import sqlite3

# Connect to the SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object to execute SQL commands
c = conn.cursor()

# Create a table named 'users' with id, name and age columns
c.execute('''CREATE TABLE IF NOT EXISTS users
             (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

# Insert sample data into the 'users' table
sample_data = [(1, 'Alice', 30),
               (2, 'Bob', 25),
               (3, 'Charlie', 22)]

for user in sample_data:
    c.execute("INSERT INTO users VALUES (?, ?, ?)", user)

# Commit the changes and close the connection
conn.commit()
conn.close()

# Reconnect to the database and create a new cursor
conn = sqlite3.connect('example.db')
c = conn.cursor()

# Retrieve all rows from the 'users' table
c.execute("SELECT * FROM users")
rows = c.fetchall()

print("All users:")
for row in rows:
    print(row)

# Retrieve users with age greater than or equal to 25
c.execute("SELECT * FROM users WHERE age >= 25")
rows = c.fetchall()

print("\nUsers aged 25 or older:")
for row in rows:
    print(row)

# Close the connection
conn.close()
```

This script connects to an SQLite database called `example.db`, creates a table named `users` with `id`, `name`, and `age` columns, inserts some sample data, and retrieves it using SQL queries. The retrieved data is then printed to the console.