Skip to content

Commit 494a09f

Browse files
authored
Add main.py
1 parent c6b6dfd commit 494a09f

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

sql-tips/main.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import sqlite3
2+
from faker import Faker
3+
import random
4+
5+
# Initialize Faker
6+
fake = Faker()
7+
8+
# Connect to SQLite database (or create it)
9+
conn = sqlite3.connect('employees.db')
10+
cursor = conn.cursor()
11+
12+
# Create employees table
13+
cursor.execute('''
14+
CREATE TABLE IF NOT EXISTS employees (
15+
employee_id INTEGER PRIMARY KEY,
16+
first_name TEXT NOT NULL,
17+
last_name TEXT NOT NULL,
18+
email TEXT NOT NULL UNIQUE,
19+
phone_number TEXT,
20+
hire_date TEXT,
21+
job_id TEXT,
22+
salary REAL,
23+
department TEXT
24+
)
25+
''')
26+
27+
# Function to generate fake employee data
28+
def generate_employee_data(num_records):
29+
employees = []
30+
for _ in range(num_records):
31+
first_name = fake.first_name()
32+
last_name = fake.last_name()
33+
email = fake.email()
34+
phone_number = fake.phone_number()
35+
hire_date = fake.date_between(start_date='-10y', end_date='today').isoformat()
36+
job_id = random.choice(['IT_PROG', 'HR_REP', 'FIN_ANALYST', 'SALES_REP'])
37+
salary = round(random.uniform(30000, 120000), 2)
38+
department = random.choice(['IT', 'HR', 'Finance', 'Sales'])
39+
40+
employees.append((first_name, last_name, email, phone_number, hire_date, job_id, salary, department))
41+
return employees
42+
43+
# Insert fake data into employees table
44+
num_records = 1000
45+
employee_data = generate_employee_data(num_records)
46+
cursor.executemany('''
47+
INSERT INTO employees (first_name, last_name, email, phone_number, hire_date, job_id, salary, department)
48+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
49+
''', employee_data)
50+
51+
# Commit changes and close connection
52+
conn.commit()
53+
conn.close()
54+
55+
print(f"Inserted {num_records} records into the employees table.")

0 commit comments

Comments
 (0)