{"id":27137083,"url":"https://github.com/asit-14/mysql-rdbms-","last_synced_at":"2025-04-08T03:26:52.757Z","repository":{"id":262067710,"uuid":"884926867","full_name":"Asit-14/Mysql-RDBMS-","owner":"Asit-14","description":"This Repository contains all the SQL notes related to the course.","archived":false,"fork":false,"pushed_at":"2024-11-10T09:38:59.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T05:19:06.670Z","etag":null,"topics":["mysql","notes","sql"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Asit-14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-11-07T16:27:46.000Z","updated_at":"2024-12-03T19:13:59.000Z","dependencies_parsed_at":"2024-11-10T10:29:14.201Z","dependency_job_id":"c3368051-d4a9-4be4-b2dd-6f43b07590ba","html_url":"https://github.com/Asit-14/Mysql-RDBMS-","commit_stats":null,"previous_names":["asitshakya789/mysql-rdbms-","asit-14/mysql-rdbms-"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asit-14%2FMysql-RDBMS-","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asit-14%2FMysql-RDBMS-/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asit-14%2FMysql-RDBMS-/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Asit-14%2FMysql-RDBMS-/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Asit-14","download_url":"https://codeload.github.com/Asit-14/Mysql-RDBMS-/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247769323,"owners_count":20992963,"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","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":["mysql","notes","sql"],"created_at":"2025-04-08T03:26:52.060Z","updated_at":"2025-04-08T03:26:52.735Z","avatar_url":"https://github.com/Asit-14.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# MySQL Complete Guide: From Beginner to Advanced 🚀\n\nA comprehensive guide to MySQL operations with easy-to-understand examples.\n\n## What is MySQL?\n\nMySQL is a widely-used, open-source relational database management system (RDBMS). It is designed to handle a range of applications, from small projects to large-scale enterprise solutions. MySQL is known for its reliability, performance, and ease of use.\n\n## What is RDBMS?\n\nRDBMS stands for Relational Database Management System. It is a software application that enables users to create, manage, and maintain relational databases. RDBMSs use structured query language (SQL) for accessing and manipulating data.\n\n## 📚 Table of Contents\n- [Getting Started](#getting-started)\n- [Basic Operations](#basic-operations)\n- [Working with Tables](#working-with-tables)\n- [Data Operations](#data-operations)\n- [Querying Data](#querying-data)\n- [Advanced Topics](#advanced-topics)\n- [Best Practices](#best-practices)\n\n## 🚀 Getting Started\n\n### Connect to MySQL\n```sql\nmysql -u username -p\n```\n\n### Database Management\n```sql\n-- Create new database\nCREATE DATABASE my_app;\n\n-- Show all databases\nSHOW DATABASES;\n\n-- Select a database to use\nUSE my_app;\n\n-- Delete database\nDROP DATABASE my_app;\n```\n\n## 📋 Basic Operations\n\n### Creating Tables\n```sql\n-- Simple table\nCREATE TABLE students (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100),\n    age INT\n);\n\n-- Table with more specifications\nCREATE TABLE users (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    username VARCHAR(50) NOT NULL UNIQUE,\n    email VARCHAR(100) NOT NULL,\n    password VARCHAR(255) NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    status ENUM('active', 'inactive') DEFAULT 'active'\n);\n```\n\n### Table Operations\n```sql\n-- List all tables\nSHOW TABLES;\n\n-- See table structure\nDESCRIBE users;\n\n-- Delete table\nDROP TABLE users;\n\n-- Modify table\nALTER TABLE users ADD COLUMN phone VARCHAR(15);\nALTER TABLE users DROP COLUMN phone;\n```\n\n## 💾 Data Operations\n\n### Adding Data\n```sql\n-- Insert single row\nINSERT INTO users (username, email) \nVALUES ('john_doe', 'john@example.com');\n\n-- Insert multiple rows\nINSERT INTO users (username, email) VALUES \n    ('jane_doe', 'jane@example.com'),\n    ('bob123', 'bob@example.com');\n```\n\n### Reading Data\n```sql\n-- Select all columns\nSELECT * FROM users;\n\n-- Select specific columns\nSELECT username, email FROM users;\n\n-- Select with condition\nSELECT * FROM users WHERE status = 'active';\n\n-- Select with multiple conditions\nSELECT * FROM users \nWHERE status = 'active' \nAND created_at \u003e= '2023-01-01';\n```\n\n### Updating Data\n```sql\n-- Update single record\nUPDATE users \nSET status = 'inactive' \nWHERE id = 1;\n\n-- Update multiple records\nUPDATE users \nSET status = 'inactive' \nWHERE created_at \u003c '2023-01-01';\n```\n\n### Deleting Data\n```sql\n-- Delete single record\nDELETE FROM users WHERE id = 1;\n\n-- Delete with condition\nDELETE FROM users WHERE status = 'inactive';\n\n-- Delete all records\nTRUNCATE TABLE users;\n```\n\n## 🔍 Querying Data\n\n### Basic Queries\n```sql\n-- Filter with WHERE\nSELECT * FROM users WHERE age \u003e= 18;\n\n-- Sort results\nSELECT * FROM users ORDER BY username ASC;\n\n-- Limit results\nSELECT * FROM users LIMIT 10;\n\n-- Skip and limit (pagination)\nSELECT * FROM users LIMIT 10 OFFSET 20;\n```\n\n### Pattern Matching\n```sql\n-- Find usernames starting with 'j'\nSELECT * FROM users WHERE username LIKE 'j%';\n\n-- Find emails containing 'example'\nSELECT * FROM users WHERE email LIKE '%example%';\n```\n\n### Aggregate Functions\n```sql\n-- Count total users\nSELECT COUNT(*) FROM users;\n\n-- Get average age\nSELECT AVG(age) FROM users;\n\n-- Find maximum value\nSELECT MAX(age) FROM users;\n\n-- Group and count\nSELECT status, COUNT(*) as total \nFROM users \nGROUP BY status;\n```\n\n## 🎓 Advanced Topics\n\n### Joins\n```sql\n-- Inner join\nSELECT users.username, orders.order_date \nFROM users \nINNER JOIN orders ON users.id = orders.user_id;\n\n-- Left join\nSELECT users.username, orders.order_date \nFROM users \nLEFT JOIN orders ON users.id = orders.user_id;\n```\n\n### Subqueries\n```sql\n-- Subquery in WHERE\nSELECT * FROM users \nWHERE id IN (SELECT user_id FROM orders);\n\n-- Subquery in SELECT\nSELECT username, \n    (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) \n    as order_count \nFROM users;\n```\n\n### Indexes\n```sql\n-- Create index\nCREATE INDEX idx_username ON users(username);\n\n-- Create unique index\nCREATE UNIQUE INDEX idx_email ON users(email);\n\n-- Remove index\nDROP INDEX idx_username ON users;\n```\n\n### Views\n```sql\n-- Create view\nCREATE VIEW active_users AS \nSELECT * FROM users WHERE status = 'active';\n\n-- Use view\nSELECT * FROM active_users;\n\n-- Drop view\nDROP VIEW active_users;\n```\n\n## 💡 Best Practices\n\n### Performance Tips\n1. Always use appropriate data types\n2. Create indexes for frequently searched columns\n3. Use LIMIT in SELECT queries\n4. Avoid SELECT *\n5. Use prepared statements for security\n\n### Backup and Restore\n```sql\n-- Backup database\nmysqldump -u username -p database_name \u003e backup.sql\n\n-- Restore database\nmysql -u username -p database_name \u003c backup.sql\n```\n\n## 🔧 Common Operations\n\n### String Operations\n```sql\n-- Concatenate strings\nSELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;\n\n-- Convert case\nSELECT LOWER(username), UPPER(email) FROM users;\n```\n\n### Date Operations\n```sql\n-- Current date/time\nSELECT NOW();\n\n-- Format date\nSELECT DATE_FORMAT(created_at, '%Y-%m-%d') FROM users;\n\n-- Date calculations\nSELECT username, DATEDIFF(NOW(), created_at) as days_since_joined \nFROM users;\n```\n\n### Transactions\n```sql\n-- Start transaction\nSTART TRANSACTION;\n\n-- Multiple operations\nINSERT INTO users (username, email) VALUES ('new_user', 'new@example.com');\nUPDATE users SET status = 'active' WHERE username = 'new_user';\n\n-- Commit or rollback\nCOMMIT;\n-- or\nROLLBACK;\n```\n\n### SELECT\n```sql\nSELECT column1, column2 FROM table_name;\nSELECT * FROM table_name;\n```\n\n### WHERE\n```sql\nSELECT column1, column2 FROM table_name WHERE condition;\nSELECT * FROM table_name WHERE age \u003e= 18;\n```\n\n### AND, OR, NOT\n```sql\nSELECT * FROM table_name WHERE condition1 AND condition2;\nSELECT * FROM table_name WHERE condition1 OR condition2;\nSELECT * FROM table_name WHERE NOT condition;\n```\n\n### ORDER BY\n```sql\nSELECT * FROM table_name ORDER BY column1 ASC|DESC;\n```\n\n### INSERT INTO\n```sql\nINSERT INTO table_name (column1, column2) VALUES (value1, value2);\nINSERT INTO table_name VALUES (value1, value2);\n```\n\n### NULL Values\n```sql\nSELECT column_names FROM table_name WHERE column_name IS NULL;\nSELECT column_names FROM table_name WHERE column_name IS NOT NULL;\n```\n\n### UPDATE\n```sql\nUPDATE table_name SET column1 = value1 WHERE condition;\n```\n\n### DELETE\n```sql\nDELETE FROM table_name WHERE condition;\n```\n\n### LIMIT\n```sql\nSELECT column_names FROM table_name LIMIT number;\n```\n\n### MIN and MAX\n```sql\nSELECT MIN(column_name) FROM table_name;\nSELECT MAX(column_name) FROM table_name;\n```\n\n### COUNT, AVG, SUM\n```sql\nSELECT COUNT(column_name) FROM table_name;\nSELECT AVG(column_name) FROM table_name;\nSELECT SUM(column_name) FROM table_name;\n```\n\n### LIKE\n```sql\nSELECT column1 FROM table_name WHERE column_name LIKE pattern;\n-- % represents zero, one, or multiple characters\n-- _ represents one single character\n```\n\n### Wildcards\n```sql\nSELECT * FROM table_name WHERE column LIKE 'a%';    -- Starts with a\nSELECT * FROM table_name WHERE column LIKE '%a';    -- Ends with a\nSELECT * FROM table_name WHERE column LIKE '%a%';   -- Contains a\n```\n\n### IN\n```sql\nSELECT * FROM table_name WHERE column_name IN (value1, value2);\n```\n\n### BETWEEN\n```sql\nSELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;\n```\n\n### Aliases\n```sql\nSELECT column_name AS alias_name FROM table_name;\nSELECT column_name alias_name FROM table_name;\n```\n\n### Joins\n#### INNER JOIN\n```sql\nSELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;\n```\n\n#### LEFT JOIN\n```sql\nSELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column;\n```\n\n#### RIGHT JOIN\n```sql\nSELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;\n```\n\n#### CROSS JOIN\n```sql\nSELECT columns FROM table1 CROSS JOIN table2;\n```\n\n#### Self Join\n```sql\nSELECT columns FROM table1 T1, table1 T2 WHERE condition;\n```\n\n### UNION\n```sql\nSELECT columns FROM table1 UNION SELECT columns FROM table2;\n```\n\n### GROUP BY\n```sql\nSELECT column_name, aggregate_function(column_name)\nFROM table_name\nGROUP BY column_name;\n```\n\n### HAVING\n```sql\nSELECT column_name, aggregate_function(column_name)\nFROM table_name\nGROUP BY column_name\nHAVING condition;\n```\n\n### EXISTS\n```sql\nSELECT column_name FROM table_name\nWHERE EXISTS (SELECT column_name FROM table_name WHERE condition);\n```\n\n### ANY, ALL\n```sql\nSELECT column_name FROM table_name\nWHERE column_name operator ANY/ALL\n(SELECT column_name FROM table_name WHERE condition);\n```\n\n### INSERT SELECT\n```sql\nINSERT INTO table2 SELECT * FROM table1;\n```\n\n### CASE\n```sql\nSELECT \n    CASE\n        WHEN condition1 THEN result1\n        WHEN condition2 THEN result2\n        ELSE result3\n    END\nFROM table_name;\n```\n\n### Null Functions\n```sql\nSELECT IFNULL(column_name, 'Alternative value') FROM table_name;\nSELECT COALESCE(value1, value2, ..., value_n);\n```\n\n### Comments\n```sql\n-- Single line comment\n/* Multi-line\n   comment */\n```\n\n## Database Operations\n\n### Create Database\n```sql\nCREATE DATABASE database_name;\n```\n\n### Drop Database\n```sql\nDROP DATABASE database_name;\n```\n\n### Create Table\n```sql\nCREATE TABLE table_name (\n    column1 datatype constraint,\n    column2 datatype constraint,\n    column3 datatype constraint\n);\n```\n\n### Drop Table\n```sql\nDROP TABLE table_name;\n```\n\n### Alter Table\n```sql\nALTER TABLE table_name ADD column_name datatype;\nALTER TABLE table_name DROP COLUMN column_name;\nALTER TABLE table_name MODIFY COLUMN column_name datatype;\n```\n\n### Constraints\n```sql\n-- NOT NULL\ncolumn_name datatype NOT NULL\n\n-- UNIQUE\ncolumn_name datatype UNIQUE\n\n-- PRIMARY KEY\ncolumn_name datatype PRIMARY KEY\n\n-- FOREIGN KEY\nFOREIGN KEY (column_name) REFERENCES table_name(column_name)\n\n-- CHECK\nCHECK (condition)\n\n-- DEFAULT\ncolumn_name datatype DEFAULT value\n```\n\n### Create Index\n```sql\nCREATE INDEX index_name ON table_name (column1, column2);\n```\n\n### Auto Increment\n```sql\ncolumn_name datatype AUTO_INCREMENT\n```\n\n### Views\n```sql\nCREATE VIEW view_name AS\nSELECT column1, column2\nFROM table_name\nWHERE condition;\n```\n\n## References\n\n### Common Data Types\n- INT - Integer\n- DECIMAL(size,d) - Decimal numbers\n- CHAR(size) - Fixed-length string\n- VARCHAR(size) - Variable-length string\n- TEXT - String with maximum length of 65,535 characters\n- DATE - Date in YYYY-MM-DD format\n- DATETIME - Date and time combination\n- TIMESTAMP - Timestamp\n- BOOLEAN - True or False\n\n### Common Functions\n- String Functions: CONCAT(), SUBSTRING(), TRIM(), UPPER(), LOWER()\n- Numeric Functions: ROUND(), CEIL(), FLOOR(), ABS()\n- Date Functions: NOW(), CURDATE(), DATEDIFF(), DATE_FORMAT()\n- Aggregate Functions: COUNT(), SUM(), AVG(), MIN(), MAX()\n\n\n### MySQL Functions\n- String: CONCAT(), SUBSTRING(), TRIM()\n- Numeric: ROUND(), CEIL(), FLOOR()\n- Date: NOW(), CURDATE(), DATE_FORMAT()\n- Aggregate: COUNT(), SUM(), AVG(), MIN(), MAX()\n\n### MySQL Operators\n- Arithmetic: +, -, *, /, %\n- Comparison: =, \u003e, \u003c, \u003e=, \u003c=, \u003c\u003e\n- Logical: AND, OR, NOT\n- Pattern Matching: LIKE, IN, BETWEEN\n\n---\n## Contributing\n\nWe welcome contributions! If you have suggestions or improvements, please submit a pull request.\n## Contact\n\nFor any questions or feedback, please reach out to [asitshakya789@gmail.com](mailto:asitshakya789@gmail.com).\n## Thank You!\n\nThank you for taking the time to read this guide. Happy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasit-14%2Fmysql-rdbms-","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasit-14%2Fmysql-rdbms-","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasit-14%2Fmysql-rdbms-/lists"}