{"id":30208917,"url":"https://github.com/burakkontas/oracle-sql-plsql-practice","last_synced_at":"2026-06-23T22:03:59.651Z","repository":{"id":307359526,"uuid":"1029270391","full_name":"BurakKontas/oracle-sql-plsql-practice","owner":"BurakKontas","description":"Hands-on exercises, query quizes, and PL/SQL scripts for the NORTHWIND database. Perfect for developers starting with Oracle or refining their database skills.","archived":false,"fork":false,"pushed_at":"2025-07-30T20:23:53.000Z","size":233,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-30T22:09:31.680Z","etag":null,"topics":["database","northwind","northwind-database","oracle","plsql","practice","sql"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BurakKontas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-30T19:27:04.000Z","updated_at":"2025-07-30T20:27:42.000Z","dependencies_parsed_at":"2025-07-30T22:19:57.976Z","dependency_job_id":null,"html_url":"https://github.com/BurakKontas/oracle-sql-plsql-practice","commit_stats":null,"previous_names":["burakkontas/sql-practice"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/BurakKontas/oracle-sql-plsql-practice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BurakKontas%2Foracle-sql-plsql-practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BurakKontas%2Foracle-sql-plsql-practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BurakKontas%2Foracle-sql-plsql-practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BurakKontas%2Foracle-sql-plsql-practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BurakKontas","download_url":"https://codeload.github.com/BurakKontas/oracle-sql-plsql-practice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BurakKontas%2Foracle-sql-plsql-practice/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270287571,"owners_count":24558627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","northwind","northwind-database","oracle","plsql","practice","sql"],"created_at":"2025-08-13T18:25:50.676Z","updated_at":"2026-06-23T22:03:59.639Z","avatar_url":"https://github.com/BurakKontas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SQL Quiz Application\n\nA desktop application for practicing SQL queries with the Northwind database. This interactive quiz application allows users to solve SQL problems, check their answers, and learn from correct solutions.\n\n## Features\n\n- **Interactive SQL Quiz**: Practice with 50+ SQL questions of varying difficulty\n- **Real-time Query Execution**: Connect to Oracle database and execute queries instantly\n- **Answer Validation**: Compare your results with correct answers\n- **Database Schema Viewer**: Visual reference for table relationships\n- **Question Navigation**: Jump to any question or navigate sequentially\n- **Hint System**: Get hints when you're stuck\n- **Dual Result Display**: See both your results and correct results side by side\n\n## Prerequisites\n\n- Python 3.7+\n- Oracle Database\n- Required Python packages (install via `pip install -r requirements.txt`):\n  - `tkinter` (usually comes with Python)\n  - `oracledb`\n  - `Pillow`\n  - `json`\n\n## Installation\n\n1. Clone this repository:\n```bash\ngit clone https://github.com/BurakKontas/sql-practice.git\ncd sql-practice\n```\n\n2. Install required packages:\n```bash\npip install oracledb Pillow\n```\n\n2.1 Install OracleDB on Docker (Optional):\n```bash\ndocker compose up -d\ndocker compose exec -it oracle-db sqlplus system/testpassword@XEPDB1 @/tmp/Northwind.create.sql\n```\n\nConfiguration (./db_config.json):\n```json\n{\n    \"username\": \"NORTHWIND\",\n    \"password\": \"NORTHWIND\",\n    \"dsn\": \"localhost:1521/XEPDB1\"\n}\n```\n\n\n3. Set up the Northwind database:\n   - Run the `Northwind.create.sql` script in your Oracle database\n   - Note your database connection details (username, password, DSN)\n\n4. Configure database connection:\n   - Run the application\n   - Go to Settings → Database Connection Settings\n   - Enter your Oracle database credentials\n\n## Usage\n\n1. **Start the application**:\n```bash\npython sql_questioner.py\n```\n\n2. **Configure Database Connection**:\n   - Click Settings → Database Connection Settings\n   - Enter your Oracle database credentials:\n     - Username: Your Oracle username\n     - Password: Your Oracle password\n     - DSN: Connection string (e.g., `localhost:1521/XEPDB1`)\n   - Test the connection to ensure it works\n\n3. **Solve SQL Questions**:\n   - Read the question title at the top\n   - Click \"Show Hint\" if you need help\n   - Write your SQL query in the text area\n   - Click \"Check Answer\" to validate your solution\n   - View results comparison between your query and the correct answer\n\n4. **Navigate Questions**:\n   - Use \"Next Question\" to move to the next question\n   - Or enter a question number (1-50) and click \"Go\" to jump directly\n\n5. **View Database Schema**:\n   - Click \"Show Schema\" to see the Northwind database structure\n   - Use this as a reference while writing queries\n\n## Database Schema\n\nThe application uses the classic Northwind database with the following main tables:\n- **Customers**: Customer information\n- **Orders**: Order records\n- **Order Details**: Order line items\n- **Products**: Product catalog\n- **Categories**: Product categories\n- **Suppliers**: Supplier information\n- **Employees**: Employee records\n- **Shippers**: Shipping company details\n\n## Question Types\n\nThe quiz includes various SQL concepts:\n- Basic SELECT statements\n- JOINs (INNER, LEFT, RIGHT)\n- Aggregate functions (SUM, COUNT, AVG, MAX, MIN)\n- GROUP BY and HAVING clauses\n- Subqueries\n- Window functions\n- Complex analytical queries\n\n## File Structure\n\n```\nsql-practice/\n├── sql_questioner.py          # Main application file\n├── sql_questions_combined.json # Question database\n├── Northwind.create.sql       # Database creation script\n├── schema.png                 # Database schema diagram\n├── db_config.json            # Database configuration (auto-generated)\n├── .gitignore                # Git ignore file\n└── README.md                 # This file\n```\n\n## Configuration\n\nThe application automatically creates a `db_config.json` file to store your database connection settings. This file is excluded from version control for security.\n\nExample configuration:\n```json\n{\n    \"username\": \"your_username\",\n    \"password\": \"your_password\",\n    \"dsn\": \"localhost:1521/XEPDB1\"\n}\n```\n\n## Troubleshooting\n\n### Database Connection Issues\n- Ensure Oracle database is running\n- Verify connection credentials\n- Check if the DSN format is correct\n- Make sure the Northwind database schema is properly installed\n\n### Missing Schema Image\n- Ensure `schema.png` is in the same directory as the application\n- The schema viewer will show an error if the image file is missing\n\n### Query Execution Errors\n- Check your SQL syntax\n- Verify table and column names match the Northwind schema\n- Some queries may require Oracle-specific SQL syntax\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/new-feature`)\n3. Commit your changes (`git commit -am 'Add new feature'`)\n4. Push to the branch (`git push origin feature/new-feature`)\n5. Create a Pull Request\n\n## License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n## Acknowledgments\n\n- Built with Python and Tkinter for the GUI\n- Uses the classic Northwind database for realistic SQL practice\n- Oracle database connectivity via oracledb package\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburakkontas%2Foracle-sql-plsql-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fburakkontas%2Foracle-sql-plsql-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fburakkontas%2Foracle-sql-plsql-practice/lists"}