All Important SQL Queries You Must Know

Listen to this Post

Mastering SQL isn’t just about writing queries—it’s about writing them efficiently! Here’s a complete cheat sheet for SQL queries from basic to advanced.

1. Basic SQL Queries

🔹 Select All Data

SELECT  FROM employees;

🔹 Select Specific Columns

SELECT name, age FROM employees;

🔹 Filter Data (WHERE Clause)

SELECT  FROM employees WHERE age > 30;

🔹 Sort Data (ORDER BY)

SELECT  FROM employees ORDER BY salary DESC;

🔹 Limit Number of Results

SELECT  FROM employees LIMIT 5;

2. Joins (Combining Tables)

🔹 INNER JOIN (Matching Rows in Both Tables)

SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

🔹 LEFT JOIN (All from Left Table + Matching in Right Table)

SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

🔹 RIGHT JOIN (All from Right Table + Matching in Left Table)

SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;

🔹 FULL OUTER JOIN (All from Both Tables)

SELECT employees.name, departments.department_name
FROM employees
FULL OUTER JOIN departments ON employees.department_id = departments.id;

3. Aggregation & Grouping

🔹 Count Total Rows

SELECT COUNT() FROM employees;

🔹 Sum of a Column

SELECT SUM(salary) FROM employees;

🔹 Find Average Salary

SELECT AVG(salary) FROM employees;

🔹 Find Maximum & Minimum Salary

SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;

🔹 Group Data (GROUP BY & HAVING)

SELECT department, COUNT() FROM employees GROUP BY department;

4. Subqueries & Advanced SQL

🔹 Subquery in WHERE Clause

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

🔹 Find Employees Who Earn More Than Their Manager

SELECT emp.name, emp.salary 
FROM employees emp 
JOIN employees mgr ON emp.manager_id = mgr.id 
WHERE emp.salary > mgr.salary;

🔹 Self Join (Find Employees in Same Department)

SELECT e1.name AS Employee, e2.name AS Colleague
FROM employees e1
JOIN employees e2 ON e1.department_id = e2.department_id
WHERE e1.id <> e2.id;

You Should Know:

SQL Injection Prevention Commands

-- Use parameterized queries
PREPARE stmt FROM 'SELECT  FROM users WHERE username = ? AND password = ?';
EXECUTE stmt USING @username, @password;

-- MySQL secure installation
sudo mysql_secure_installation

-- PostgreSQL create role with limited privileges
CREATE ROLE readonly WITH LOGIN PASSWORD 'securepassword';
GRANT CONNECT ON DATABASE mydb TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

Database Backup Commands

 MySQL dump
mysqldump -u root -p --all-databases > full_backup.sql

PostgreSQL dump
pg_dump -U postgres -d mydb -f mydb_backup.sql

SQLite backup
sqlite3 mydb.db ".backup 'mydb_backup.db'"

Performance Monitoring Commands

-- MySQL show process list
SHOW PROCESSLIST;

-- PostgreSQL active queries
SELECT pid, age(clock_timestamp(), query_start), usename, query 
FROM pg_stat_activity 
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' 
ORDER BY query_start desc;

-- SQLite performance tuning
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA cache_size = -10000; -- 10MB cache

Database Security Hardening

 MySQL audit plugin installation
INSTALL PLUGIN audit_log SONAME 'audit_log.so';

PostgreSQL enable SSL
ssl = on
ssl_cert_file = '/etc/ssl/certs/server.crt'
ssl_key_file = '/etc/ssl/private/server.key'

SQLite encryption (using SQLCipher)
PRAGMA key = 'encryptionkey';

Database Migration Commands

 MySQL to PostgreSQL conversion
pgloader mysql://user:password@localhost/source_db postgresql://user:password@localhost/target_db

CSV import to MySQL
mysqlimport --ignore-lines=1 --fields-terminated-by=, --local -u root -p database_name file.csv

SQLite to MySQL conversion
sqlite3 mydb.db .dump | mysql -u root -p mysql_database

What Undercode Say:

SQL mastery extends beyond basic queries – it’s about understanding database architecture, optimization, and security. The commands provided here cover essential operations from basic CRUD to advanced security hardening.

For production environments, always:

1. Implement regular backups (automate with cron)

2. Use parameterized queries to prevent SQL injection

3. Monitor performance with built-in database tools

  1. Apply principle of least privilege for database users

5. Consider connection pooling for web applications

  1. Enable query logging for debugging (but disable in production)

7. Regularly update your database software

8. Implement proper indexing strategies

9. Consider read replicas for scaling

10. Always test migrations in staging first

Database administration Linux commands to know:

 Check database service status
sudo systemctl status mysql
sudo systemctl status postgresql

Start/stop database services
sudo systemctl start mysql
sudo systemctl stop postgresql

Check disk space for databases
df -h /var/lib/mysql
df -h /var/lib/postgresql

Monitor database connections
netstat -anp | grep mysql
ss -tulpn | grep postgres

Check database logs
sudo tail -f /var/log/mysql/error.log
sudo journalctl -u postgresql -f

Expected Output:

A comprehensive SQL reference guide covering basic to advanced queries with practical database administration commands for MySQL, PostgreSQL and SQLite, including security hardening and performance optimization techniques.

References:

Reported By: Surajdubey Codes – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image