SQL Tables
Your Course Tables
The eleven tables you will use throughout this SQL Education course β a complete college administration database with real-world structure, relationships, and data.
What These Tables Are For
- Work with a fully normalised, real-world college administration database across 11 connected tables
- Understand how Foreign Keys chain through multiple tables to represent complex institutional relationships
- Practise education SQL query writing on data that mirrors what you would encounter in actual higher education systems
- Build, populate, and query a complete database from scratch using the SQL code provided in each section
The campuses table is the geographic foundation of the database. It records the three locations where the college operates: two physical campuses in British Columbia and one virtual online campus. The campus_id is referenced by both the departments and sections tables, making it a key anchor in the database hierarchy.
Every department belongs to a campus, and every course section is delivered at a campus. This table allows you to trace any course or student activity all the way back to a physical or virtual location β a common real-world reporting need in institutional databases.
| campus_id | campus_name | city | province_state | country | campus_type |
|---|---|---|---|---|---|
| 1 | Main Campus | Victoria | British Columbia | Canada | Urban |
| 2 | Westshore Campus | Langford | British Columbia | Canada | Regional |
| 3 | Online Campus | Remote | British Columbia | Canada | Virtual |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| campus_id | INT | PRIMARY KEY | Unique identifier for each campus. Referenced by departments and sections tables. |
| campus_name | VARCHAR(100) | None | The official name of the campus location. |
| city | VARCHAR(50) | None | The city where the campus is located. Online campus uses “Remote”. |
| province_state | VARCHAR(50) | None | The province or state. All campuses are in British Columbia. |
| country | VARCHAR(50) | None | The country. All campuses are in Canada. |
| campus_type | VARCHAR(50) | None | The type of campus: Urban, Regional, or Virtual. |
The departments table defines the five academic units that organise the college’s academic offerings. Each department belongs to a campus and a faculty, and is referenced by the instructors, programs, and courses tables. Understanding this table is essential for any query that groups or filters data by academic area.
The department_id flows through much of the database β it links campuses to instructors, programs, and courses. Many education queries will ask you to aggregate data by department, which requires joining through this table from multiple directions.
| department_id | department_name | faculty_name | campus_id |
|---|---|---|---|
| 1 | Business Administration | Faculty of Management | 1 |
| 2 | Education | Faculty of Social and Applied Sciences | 1 |
| 3 | Information Technology | Faculty of Management | 2 |
| 4 | Health Studies | Faculty of Social and Applied Sciences | 1 |
| 5 | Professional Studies | Continuing Studies | 3 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| department_id | INT | PRIMARY KEY | Unique identifier for each department. Referenced by instructors, programs, and courses. |
| department_name | VARCHAR(100) | None | The official name of the academic department. |
| faculty_name | VARCHAR(100) | None | The faculty or school the department belongs to. |
| campus_id | INT | FOREIGN KEY β campuses | The campus where the department is based. Links to the campuses table. |
The instructors table stores information about the five teaching staff members. Each instructor belongs to a department, has a hire date, an employment type (Full-Time or Contract), and an active flag. This table is referenced by the teaching_assignments table, which connects instructors to the course sections they teach.
The active_flag column (stored as BOOLEAN) is a real-world pattern used to soft-delete records without physically removing them. You will encounter this pattern frequently when writing education queries that filter for currently active staff only.
| instructor_id | first_name | last_name | department_id | hire_date | employment_type | active_flag | |
|---|---|---|---|---|---|---|---|
| 1 | Emma | Carter | 2 | 2020-08-15 | Full-Time | emma.carter@college.ca | 1 |
| 2 | James | Patel | 1 | 2019-01-10 | Full-Time | james.patel@college.ca | 1 |
| 3 | Sophia | Nguyen | 3 | 2021-09-01 | Contract | sophia.nguyen@college.ca | 1 |
| 4 | Daniel | Brown | 4 | 2018-07-05 | Full-Time | daniel.brown@college.ca | 1 |
| 5 | Olivia | Martin | 5 | 2022-02-14 | Contract | olivia.martin@college.ca | 1 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| instructor_id | INT | PRIMARY KEY | Unique identifier for each instructor. Referenced by teaching_assignments. |
| first_name | VARCHAR(50) | None | The instructor’s first name. |
| last_name | VARCHAR(50) | None | The instructor’s last name. |
| department_id | INT | FOREIGN KEY β departments | The department the instructor belongs to. |
| hire_date | DATE | None | The date the instructor was hired. Useful for seniority and tenure calculations. |
| employment_type | VARCHAR(30) | None | Either Full-Time or Contract. |
| VARCHAR(100) | None | The instructor’s institutional email address. | |
| active_flag | BOOLEAN | None | 1 = currently active. 0 = no longer active. All five instructors are currently active. |
The programs table defines the five credential offerings available at the college. Each program belongs to a department, has a credential type (Degree, Masters, Diploma, or Certificate), a duration in years, and an active flag. Students are linked to a program through their record in the students table.
The program_id appears in the students table as a Foreign Key. This allows you to answer questions like “how many active students are enrolled in each credential type?” β a query that joins students to programs and uses GROUP BY credential_type.
| program_id | program_name | credential_type | department_id | duration_years | active_flag |
|---|---|---|---|---|---|
| 101 | Bachelor of Business Administration | Degree | 1 | 4 | 1 |
| 102 | Master of Arts in Leadership | Masters | 2 | 2 | 1 |
| 103 | Diploma in Applied Data Analytics | Diploma | 3 | 2 | 1 |
| 104 | Certificate in Health Administration | Certificate | 4 | 1 | 1 |
| 105 | Certificate in Project Management | Certificate | 5 | 1 | 1 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| program_id | INT | PRIMARY KEY | Unique identifier for each program. Referenced by the students table. |
| program_name | VARCHAR(100) | None | The full official name of the credential program. |
| credential_type | VARCHAR(50) | None | The level of credential: Degree, Masters, Diploma, or Certificate. |
| department_id | INT | FOREIGN KEY β departments | The department that owns and delivers this program. |
| duration_years | INT | None | The standard length of the program in years: 1, 2, or 4. |
| active_flag | BOOLEAN | None | 1 = currently offered. All five programs are active. |
The students table holds demographic and enrollment information for all eight students in the database. Students come from Victoria, Vancouver, Calgary, Toronto, Langford, Surrey, and Burnaby. Their statuses vary: Active, Inactive, and Graduated β making this table ideal for practising status-based filtering and cohort analysis.
The student_id is one of the most frequently used Foreign Keys in the database β it appears in enrollments, tuition_payments, and advising_sessions. The variety of student statuses (Active, Inactive, Graduated) and admission dates across two intakes (September 2023 and January 2024) makes this table rich for education analytical queries.
| student_id | first_name | last_name | gender | date_of_birth | city | province_state | admission_date | program_id | student_status |
|---|---|---|---|---|---|---|---|---|---|
| 1001 | Ava | Wilson | Female | 2002-03-14 | Victoria | British Columbia | 2023-09-01 | 101 | Active |
| 1002 | Liam | Johnson | Male | 2001-06-21 | Vancouver | British Columbia | 2023-09-01 | 103 | Active |
| 1003 | Mia | Thompson | Female | 1999-11-08 | Calgary | Alberta | 2024-01-08 | 102 | Active |
| 1004 | Noah | Davis | Male | 2000-01-19 | Toronto | Ontario | 2023-09-01 | 101 | Active |
| 1005 | Isabella | Moore | Female | 2003-05-27 | Langford | British Columbia | 2024-01-08 | 104 | Active |
| 1006 | Ethan | Taylor | Male | 2002-07-30 | Surrey | British Columbia | 2023-09-01 | 103 | Inactive |
| 1007 | Charlotte | Anderson | Female | 2001-09-12 | Burnaby | British Columbia | 2024-01-08 | 105 | Active |
| 1008 | Lucas | Thomas | Male | 1998-12-03 | Kelowna | British Columbia | 2023-09-01 | 102 | Graduated |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| student_id | INT | PRIMARY KEY | Unique identifier. Referenced by enrollments, tuition_payments, and advising_sessions. |
| first_name | VARCHAR(50) | None | Student’s first name. |
| last_name | VARCHAR(50) | None | Student’s last name. |
| gender | VARCHAR(20) | None | Student’s gender: Male or Female in this dataset. |
| date_of_birth | DATE | None | Date of birth in YYYY-MM-DD format. Useful for age calculations. |
| city | VARCHAR(50) | None | The city the student is from β spans 7 cities across Canada. |
| province_state | VARCHAR(50) | None | The province. Most students are from BC; one from Alberta, one from Ontario. |
| admission_date | DATE | None | The date the student was admitted. Two intakes: September 2023 and January 2024. |
| program_id | INT | FOREIGN KEY β programs | The program the student is enrolled in. |
| student_status | VARCHAR(30) | None | Current status: Active (6), Inactive (1), or Graduated (1). |
The terms table defines the three academic terms in the 2024/2025 academic year. Each term has a start date, an end date, and an academic year label. The term_id is referenced by both the sections and tuition_payments tables, linking when courses run to when fees are due.
Date-based filtering is one of the most common real-world SQL tasks. Using start_date and end_date, you can practise queries like “find all sections running in Fall 2024” or “identify students with outstanding payments from Spring 2025” β the kind of institutional reporting that education SQL is built for.
| term_id | term_name | start_date | end_date | academic_year |
|---|---|---|---|---|
| 1 | Fall 2024 | 2024-09-03 | 2024-12-20 | 2024/2025 |
| 2 | Spring 2025 | 2025-01-06 | 2025-04-18 | 2024/2025 |
| 3 | Summer 2025 | 2025-05-05 | 2025-08-15 | 2024/2025 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| term_id | INT | PRIMARY KEY | Unique identifier for each term. Referenced by sections and tuition_payments. |
| term_name | VARCHAR(50) | None | The human-readable name of the term: Fall 2024, Spring 2025, Summer 2025. |
| start_date | DATE | None | The first day of the academic term. |
| end_date | DATE | None | The last day of the academic term. |
| academic_year | VARCHAR(20) | None | The academic year label. All three terms fall within 2024/2025. |
The courses table lists the six courses offered by the college. Each course has a unique code (e.g., BUSA101), a name, a department, a credit hour value, and a level (Undergraduate or Graduate). The courses table is referenced by the sections table, which assigns courses to specific terms and campuses.
The course_code column is a real-world pattern β institutional databases almost always store both a numeric ID and a human-readable code. At the education level, you will practise queries that search or filter by course code, join sections to courses, and report on delivery by level (Undergraduate vs Graduate).
| course_id | course_code | course_name | department_id | credit_hours | course_level |
|---|---|---|---|---|---|
| 201 | BUSA101 | Introduction to Business | 1 | 3 | Undergraduate |
| 202 | EDUC510 | Leadership in Education | 2 | 3 | Graduate |
| 203 | DATA210 | SQL for Data Analytics | 3 | 3 | Undergraduate |
| 204 | HLTH300 | Health Systems Administration | 4 | 3 | Undergraduate |
| 205 | PROJ220 | Project Planning Fundamentals | 5 | 3 | Undergraduate |
| 206 | BUSA203 | Principles of Accounting | 1 | 3 | Undergraduate |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| course_id | INT | PRIMARY KEY | Unique numeric identifier. Referenced by the sections table. |
| course_code | VARCHAR(20) | None | The alphanumeric course code used in timetables and transcripts (e.g., BUSA101). |
| course_name | VARCHAR(100) | None | The full official name of the course. |
| department_id | INT | FOREIGN KEY β departments | The department responsible for delivering the course. |
| credit_hours | INT | None | The number of credit hours. All six courses carry 3 credit hours. |
| course_level | VARCHAR(20) | None | Either Undergraduate or Graduate. EDUC510 is the only Graduate-level course. |
The sections table represents individual scheduled offerings of a course. A single course can have multiple sections across different terms or campuses. Each section specifies the delivery mode (In-Person, Online, or Hybrid), the room or virtual space, and the maximum capacity. Sections are referenced by both teaching_assignments and enrollments.
The sections table is the operational centre of the scheduling system. It connects courses to terms and campuses, making it the table you join through whenever you want to answer questions like “which courses ran online in Fall 2024?” or “how many seats were available in hybrid sections?”
| section_id | course_id | term_id | campus_id | section_number | delivery_mode | room_name | max_capacity |
|---|---|---|---|---|---|---|---|
| 301 | 201 | 1 | 1 | A01 | In-Person | Room 201 | 35 |
| 302 | 203 | 1 | 3 | OL1 | Online | Virtual | 40 |
| 303 | 206 | 1 | 1 | A02 | In-Person | Room 105 | 30 |
| 304 | 202 | 2 | 3 | OL2 | Online | Virtual | 25 |
| 305 | 204 | 2 | 2 | W01 | Hybrid | Room 12 | 20 |
| 306 | 205 | 2 | 3 | OL3 | Online | Virtual | 30 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| section_id | INT | PRIMARY KEY | Unique identifier for each section. Referenced by teaching_assignments and enrollments. |
| course_id | INT | FOREIGN KEY β courses | The course being offered in this section. |
| term_id | INT | FOREIGN KEY β terms | The term in which this section runs. |
| campus_id | INT | FOREIGN KEY β campuses | The campus where this section is delivered. |
| section_number | VARCHAR(10) | None | The section identifier used in timetables (e.g., A01, OL1, W01). |
| delivery_mode | VARCHAR(30) | None | How the section is delivered: In-Person, Online, or Hybrid. |
| room_name | VARCHAR(50) | None | The physical room or “Virtual” for online sections. |
| max_capacity | INT | None | The maximum number of students that can enroll in this section. |
The teaching_assignments table links instructors to the sections they teach. Each row represents one instructor assigned to one section, with a date of assignment and a teaching role. All six assignments in this dataset are Lead Instructor roles. Note that instructor 2 (James Patel) is assigned to two sections β 301 and 303 β which is a realistic pattern that supports workload analysis queries.
This table completes the chain from instructor to course to student. By joining teaching_assignments β sections β enrollments β students, you can answer questions such as “which students are being taught by James Patel?” without any direct link between those tables β a classic multi-hop JOIN scenario.
| assignment_id | section_id | instructor_id | assigned_date | teaching_role |
|---|---|---|---|---|
| 401 | 301 | 2 | 2024-08-15 | Lead Instructor |
| 402 | 302 | 3 | 2024-08-20 | Lead Instructor |
| 403 | 303 | 2 | 2024-08-15 | Lead Instructor |
| 404 | 304 | 1 | 2024-12-01 | Lead Instructor |
| 405 | 305 | 4 | 2024-12-01 | Lead Instructor |
| 406 | 306 | 5 | 2024-12-01 | Lead Instructor |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| assignment_id | INT | PRIMARY KEY | Unique identifier for each teaching assignment record. |
| section_id | INT | FOREIGN KEY β sections | The section being taught. Links to the sections table. |
| instructor_id | INT | FOREIGN KEY β instructors | The instructor assigned to teach the section. |
| assigned_date | DATE | None | The date the instructor was formally assigned to the section. |
| teaching_role | VARCHAR(30) | None | The role of the instructor. All records show Lead Instructor. |
The enrollments table records which students are registered in which sections. With 9 records across 8 students and 6 sections, this dataset includes students enrolled in multiple sections, a withdrawn student, and records with both Completed and In Progress statuses β giving you realistic variety for status-based filtering and completion analysis.
Enrollments sits at the heart of the entire database. It connects students to sections, and through sections to courses, terms, campuses, and instructors. The grades and attendance tables also reference enrollment_id β so this table is the pivot point for any query that brings together academic performance, attendance, and student identity.
| enrollment_id | student_id | section_id | enrollment_date | enrollment_status | final_status |
|---|---|---|---|---|---|
| 501 | 1001 | 301 | 2024-08-25 | Enrolled | Completed |
| 502 | 1002 | 302 | 2024-08-26 | Enrolled | Completed |
| 503 | 1004 | 301 | 2024-08-24 | Enrolled | Completed |
| 504 | 1001 | 303 | 2024-08-25 | Enrolled | Completed |
| 505 | 1006 | 302 | 2024-08-27 | Enrolled | Withdrawn |
| 506 | 1003 | 304 | 2024-12-20 | Enrolled | Completed |
| 507 | 1005 | 305 | 2024-12-22 | Enrolled | In Progress |
| 508 | 1007 | 306 | 2024-12-23 | Enrolled | In Progress |
| 509 | 1008 | 304 | 2024-12-18 | Enrolled | Completed |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| enrollment_id | INT | PRIMARY KEY | Unique identifier. Referenced by grades and attendance tables. |
| student_id | INT | FOREIGN KEY β students | The student registering in the section. |
| section_id | INT | FOREIGN KEY β sections | The section the student is registering in. |
| enrollment_date | DATE | None | The date the student registered for the section. |
| enrollment_status | VARCHAR(30) | None | Current registration status. All records show Enrolled. |
| final_status | VARCHAR(30) | None | Outcome: Completed (5), In Progress (2), or Withdrawn (1). |
The grades table records the final assessment result for each completed or withdrawn enrollment. With 7 grade records across a range from A+ (91) to F (52), this table supports performance analysis, grade distribution queries, and pass/fail classification using CASE WHEN. Note that In Progress enrollments do not yet have grade records.
Not every enrollment has a grade record β only those with a final_status of Completed or Withdrawn. In Progress enrollments (507, 508) have no grade yet. This is intentional and reflects how real institutional systems work. When joining grades to enrollments, always consider whether you need LEFT JOIN or INNER JOIN depending on whether you want to include ungraded records.
| grade_id | enrollment_id | assessment_type | score | max_score | letter_grade | grade_date |
|---|---|---|---|---|---|---|
| 601 | 501 | Final Grade | 86.00 | 100.00 | A | 2024-12-18 |
| 602 | 502 | Final Grade | 91.00 | 100.00 | A+ | 2024-12-19 |
| 603 | 503 | Final Grade | 74.00 | 100.00 | B | 2024-12-18 |
| 604 | 504 | Final Grade | 88.00 | 100.00 | A | 2024-12-19 |
| 605 | 505 | Final Grade | 52.00 | 100.00 | F | 2024-11-20 |
| 606 | 506 | Final Grade | 84.00 | 100.00 | A- | 2025-04-15 |
| 607 | 509 | Final Grade | 89.00 | 100.00 | A | 2025-04-15 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| grade_id | INT | PRIMARY KEY | Unique identifier for each grade record. |
| enrollment_id | INT | FOREIGN KEY β enrollments | The enrollment this grade belongs to. Links back to the student and section. |
| assessment_type | VARCHAR(50) | None | The type of assessment. All records show “Final Grade”. |
| score | DECIMAL(5,2) | None | The numeric score out of max_score. Ranges from 52.00 to 91.00 in this dataset. |
| max_score | DECIMAL(5,2) | None | The maximum possible score. All records show 100.00. |
| letter_grade | VARCHAR(5) | None | The letter grade equivalent: A+, A, A-, B, or F. |
| grade_date | DATE | None | The date the grade was submitted. |
The attendance table records individual attendance events for enrolled students. Each row logs one student’s attendance on one date, including whether they were present or absent and how many minutes they attended. With 9 records spanning both Fall 2024 and Spring 2025 sessions, this table is ideal for attendance rate calculations and at-risk student identification.
Connecting attendance to grades through the enrollments table is one of the most valuable analytical patterns in institutional data. You can use this table to answer questions like “do students with absences tend to score lower?” β a classic education SQL analytical scenario that joins attendance, grades, and students through enrollments.
| attendance_id | enrollment_id | attendance_date | attendance_status | minutes_attended |
|---|---|---|---|---|
| 701 | 501 | 2024-09-10 | Present | 180 |
| 702 | 501 | 2024-09-17 | Present | 180 |
| 703 | 502 | 2024-09-10 | Present | 120 |
| 704 | 503 | 2024-09-10 | Absent | 0 |
| 705 | 504 | 2024-09-11 | Present | 180 |
| 706 | 505 | 2024-09-12 | Absent | 0 |
| 707 | 506 | 2025-01-15 | Present | 120 |
| 708 | 507 | 2025-01-16 | Present | 150 |
| 709 | 508 | 2025-01-16 | Present | 120 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| attendance_id | INT | PRIMARY KEY | Unique identifier for each attendance record. |
| enrollment_id | INT | FOREIGN KEY β enrollments | The enrollment this attendance record belongs to. |
| attendance_date | DATE | None | The date of the class session. |
| attendance_status | VARCHAR(20) | None | Either Present (7 records) or Absent (2 records). |
| minutes_attended | INT | None | Minutes present: 180, 150, or 120 for present; 0 for absent. |
The tuition_payments table records financial transactions between students and the college. Each row represents one student’s tuition for one term, including the amount billed, the amount paid, payment status, and payment method. With three different payment statuses (Paid, Partially Paid, Outstanding), this table supports financial reporting and accounts receivable queries.
Financial data is one of the most queried domains in institutional administration. You will use this table to calculate outstanding balances (amount_billed minus amount_paid), identify students with payment issues, and join financial status to academic status β an education reporting scenario common in real college systems.
| payment_id | student_id | term_id | payment_date | amount_billed | amount_paid | payment_status | payment_method |
|---|---|---|---|---|---|---|---|
| 801 | 1001 | 1 | 2024-08-30 | 4500.00 | 4500.00 | Paid | Credit Card |
| 802 | 1002 | 1 | 2024-09-02 | 4200.00 | 4200.00 | Paid | Bank Transfer |
| 803 | 1004 | 1 | 2024-08-29 | 4500.00 | 3000.00 | Partially Paid | Credit Card |
| 804 | 1006 | 1 | 2024-09-05 | 4200.00 | 0.00 | Outstanding | N/A |
| 805 | 1003 | 2 | 2025-01-04 | 5200.00 | 5200.00 | Paid | Bank Transfer |
| 806 | 1005 | 2 | 2025-01-05 | 2500.00 | 1250.00 | Partially Paid | Debit Card |
| 807 | 1007 | 2 | 2025-01-06 | 2200.00 | 2200.00 | Paid | Credit Card |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| payment_id | INT | PRIMARY KEY | Unique identifier for each payment record. |
| student_id | INT | FOREIGN KEY β students | The student the payment belongs to. |
| term_id | INT | FOREIGN KEY β terms | The term the tuition covers. |
| payment_date | DATE | None | The date the payment was made or recorded. |
| amount_billed | DECIMAL(10,2) | None | The total amount the student was billed for the term. |
| amount_paid | DECIMAL(10,2) | None | The amount actually paid. 0.00 for Outstanding records. |
| payment_status | VARCHAR(30) | None | Paid (3), Partially Paid (2), or Outstanding (1). |
| payment_method | VARCHAR(30) | None | Credit Card, Bank Transfer, Debit Card, or N/A for Outstanding. |
The advising_sessions table logs meetings between students and their advisors. Each record includes the student, the advisor’s name, the date and type of session, session notes, and whether a follow-up is required. With five records covering four session types across academic and financial support contexts, this table is useful for student services queries and at-risk student reporting.
The follow_up_required BOOLEAN column is another real-world institutional pattern. Queries that identify students needing follow-up and then join to their payment status or grade records create a holistic student support picture β the kind of insight that education SQL is designed to generate quickly from complex multi-table structures.
| advising_session_id | student_id | advisor_name | session_date | session_type | session_notes | follow_up_required |
|---|---|---|---|---|---|---|
| 901 | 1001 | Karen Lewis | 2024-10-03 | Academic Planning | Discussed course selection for next term | 0 |
| 902 | 1002 | Michael Chen | 2024-10-08 | Career Advising | Reviewed analytics internship options | 0 |
| 903 | 1006 | Karen Lewis | 2024-10-15 | Academic Support | Attendance concerns and risk of withdrawal | 1 |
| 904 | 1005 | Sarah Bennett | 2025-02-02 | Financial Advising | Discussed tuition payment options | 1 |
| 905 | 1007 | Michael Chen | 2025-02-10 | Program Advising | Confirmed certificate completion requirements | 0 |
| Column Name | Data Type | Constraints | Explanation |
|---|---|---|---|
| advising_session_id | INT | PRIMARY KEY | Unique identifier for each advising session record. |
| student_id | INT | FOREIGN KEY β students | The student who attended the session. |
| advisor_name | VARCHAR(100) | None | The name of the advisor: Karen Lewis, Michael Chen, or Sarah Bennett. |
| session_date | DATE | None | The date the advising session took place. |
| session_type | VARCHAR(50) | None | The type of advising: Academic Planning, Career Advising, Academic Support, Financial Advising, or Program Advising. |
| session_notes | VARCHAR(255) | None | A brief summary of what was discussed in the session. |
| follow_up_required | BOOLEAN | None | 1 = follow-up needed (sessions 903 and 904). 0 = no follow-up needed. |
Quick Reference β All 11 Tables
The complete education_admin_sql_course database at a glance.
3 rows β Main, Westshore, Online. PK: campus_id (1β3).
5 rows across 3 faculties. PK: department_id (1β5).
5 rows β Full-Time and Contract. PK: instructor_id (1β5).
5 rows β Degree, Masters, Diploma, Certificates. PK: program_id (101β105).
8 rows β Active, Inactive, Graduated. PK: student_id (1001β1008).
3 rows β Fall/Spring/Summer 2024/25. PK: term_id (1β3).
6 rows β 5 Undergraduate, 1 Graduate. PK: course_id (201β206).
6 rows β In-Person, Online, Hybrid. PK: section_id (301β306).
6 rows β all Lead Instructor. PK: assignment_id (401β406).
9 rows β Completed, In Progress, Withdrawn. PK: enrollment_id (501β509).
7 rows β A+ to F. PK: grade_id (601β607).
9 rows β Present and Absent. PK: attendance_id (701β709).
7 rows β Paid, Partially Paid, Outstanding. PK: payment_id (801β807).
5 rows β 4 session types, 2 follow-ups. PK: advising_session_id (901β905).

