ClickCease

MYSQL & MSSQL

1. Introduction to MySQL & MSSQL

   1.1 MySQL

  • Open-source relational database management system (RDBMS).
  • Uses Structured Query Language (SQL).
  • Commonly used for web applications (e.g., WordPress, e-commerce platforms).

1.2 MSSQL (Microsoft SQL Server)

  • Developed by Microsoft, widely used for enterprise applications.
  • Supports T-SQL (Transact-SQL), an extension of SQL with procedural programming.
  • Integrates well with Microsoft Azure & .NET applications.

2. Basic SQL Commands

Operation MySQL Command MSSQL Command
Create Database CREATE DATABASE mydb; CREATE DATABASE mydb;
Use Database USE mydb; USE mydb;
Drop Database DROP DATABASE mydb; DROP DATABASE mydb;
Create Table CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50)); CREATE TABLE users (id INT PRIMARY KEY, name NVARCHAR(50));
Insert Data INSERT INTO users (id, name) VALUES (1, ‘John’); INSERT INTO users (id, name) VALUES (1, ‘John’);
Select Data SELECT * FROM users; SELECT * FROM users;
Update Data UPDATE users SET name = ‘Jane’ WHERE id = 1; UPDATE users SET name = ‘Jane’ WHERE id = 1;
Delete Data DELETE FROM users WHERE id = 1; DELETE FROM users WHERE id = 1;

MySQL uses VARCHAR, while MSSQL prefers NVARCHAR for Unicode support.

3. Data Types in MySQL vs. MSSQL

Category MySQL MSSQL
Integer INT, TINYINT, BIGINT INT, SMALLINT, BIGINT
Floating Point FLOAT, DOUBLE FLOAT, REAL
String VARCHAR, TEXT NVARCHAR, VARCHAR, TEXT
Date & Time DATE, DATETIME, TIMESTAMP DATE, DATETIME, DATETIME2
Boolean TINYINT(1) (0 = False, 1 = True) BIT (0 = False, 1 = True)

4. Joins in MySQL & MSSQL

     4.1 Types of Joins

  • INNER JOIN → Returns matching records from both tables.
  • LEFT JOIN → Returns all records from the left table & matching records from the right.
  • RIGHT JOIN → Returns all records from the right table & matching records from the left.
  • FULL JOIN → Returns all records when there is a match in either table (Only in MSSQL).

Inner Join Example

SELECT u.id, u.name, o.order_id
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

MySQL & MSSQL support similar JOIN syntax.

5. Indexing for Performance

5.1 Why use Indexes?

  • Improves query performance by allowing faster data retrieval.
  • Reduces the need for full table scans.

Create Index

CREATE INDEX idx_users_name ON users(name);

Check Index Usage (MSSQL Only)

SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID('users');

Best Practices:

  • Index columns used in WHERE, JOIN, and ORDER BY clauses.
  • Avoid too many indexes, which slow down INSERT/UPDATE operations.

6. Stored Procedures

6.1 Stored Procedures → Precompiled SQL statements for efficiency & security.

MySQL Stored Procedure

DELIMITER //
CREATE PROCEDURE GetUsers()
BEGIN
   SELECT * FROM users;
END //
DELIMITER ;

MSSQL Stored Procedure

CREATE PROCEDURE GetUsers
AS
BEGIN
   SELECT * FROM users;
END;

Stored procedures help encapsulate business logic inside the database.

7. Triggers for Automation

7.1 Triggers → Automatically execute an action before/after an event.

MySQL Trigger

CREATE TRIGGER before_user_insert
BEFORE INSERT ON users
FOR EACH ROW
SET NEW.created_at = NOW();

MSSQL Trigger

CREATE TRIGGER trg_UserInsert
ON users
AFTER INSERT
AS
BEGIN
   PRINT 'New user added!';
END;

Use triggers wisely to avoid performance overhead.

8. Backup & Restore

MySQL Backup & Restore

mysqldump -u root -p mydb > backup.sql  # Backup
mysql -u root -p mydb < backup.sql  # Restore

MSSQL Backup & Restore

BACKUP DATABASE mydb TO DISK = 'C:backupmydb.bak';  -- Backup
RESTORE DATABASE mydb FROM DISK = 'C:backupmydb.bak';  -- Restore

Regular backups prevent data loss in case of failure.

9. Security Best Practices

9.1 Security Measures for MySQL & MSSQL

  • Use least privilege → Grant only necessary permissions.
  • Encrypt sensitive data using AES_ENCRYPT() (MySQL) or Transparent Data Encryption (MSSQL).
  • Use parameterized queries to prevent SQL Injection.

MySQL User Management

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT ON mydb.* TO 'admin'@'localhost';

MSSQL User Management

CREATE LOGIN admin WITH PASSWORD = 'password';
CREATE USER admin FOR LOGIN admin;
GRANT SELECT, INSERT ON users TO admin;

Never use root or sa user in production.

10. Query Optimization & Performance Tuning

10.1 Optimize Queries for Speed

Optimization Technique Example
Use EXPLAIN (MySQL) or EXECUTION PLAN (MSSQL) EXPLAIN SELECT * FROM users;
Avoid SELECT *, fetch only required columns SELECT name FROM users;
Use indexes on frequently queried columns CREATE INDEX idx_name ON users(name);
Optimize JOINs by using indexes EXPLAIN SELECT u.id, o.order_id FROM users u JOIN orders o ON u.id = o.user_id;
Use LIMIT for pagination in MySQL SELECT * FROM users LIMIT 10 OFFSET 20;
Use TOP for pagination in MSSQL SELECT TOP 10 * FROM users;

Optimizing queries reduces response times & server load.

Download Elysium Spark Note

Facebook
X
LinkedIn
Pinterest
WhatsApp