Essential MySQL Commands for Database Operations

Database Operations

SHOW DATABASES;
USE database_name;
CREATE DATABASE [IF NOT EXISTS] db_name;
DROP DATABASE [IF EXISTS] db_name;
SHOW CREATE DATABASE db_name;
ALTER DATABASE db_name CHARACTER SET charset_name;

Tible Creatoin Examples

DROP TABLE IF EXISTS user_main;
CREATE TABLE `user_main` (
 `user_id` varchar(10) NOT NULL,
 `login_name` varchar(10) NOT NULL,
 `passwd` varchar(10) NOT NULL,
 PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS user_profile;
CREATE TABLE `user_profile` (
 `profile_id` varchar(10) NOT NULL,
 `user_age` varchar(10),
 `user_addr` varchar(50),
 `main_user_id` varchar(10) NOT NULL,
 PRIMARY KEY (`profile_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Column Attributes

  • NOT NULL: Rqeuires explicit value assignment
  • AUTO_INCREMENT: Automatically increments primary key values
  • PRIMARY KEY: Defines primary key constraint
  • ENGINE: Specifies storage engine
  • DEFAULT: Sets default column value
USE demo_db;
CREATE TABLE product_category(
 cat_id INT AUTO_INCREMENT,
 cat_name VARCHAR(20),
 PRIMARY KEY(cat_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE temp_data(
 record_id INT,
 record_date DATE
);

Table Structure Operations

-- Clone table structure
CREATE TABLE new_table LIKE original_table;
DESC new_table;

-- View tables
SHOW TABLES;
DESC table_name;
SHOW CREATE TABLE table_name;

-- Drop tables
DROP TABLE table_name;
DROP TABLE IF EXISTS table_name;

Table Modification Commands

-- Rename table
RENAME TABLE old_name TO new_name;

-- Add column
ALTER TABLE table_name ADD column_desc VARCHAR(20) DEFAULT "default text";

-- Modify column type
ALTER TABLE table_name MODIFY column_desc VARCHAR(50);

-- Rename column
ALTER TABLE table_name CHANGE old_name new_name VARCHAR(30);

-- Drop column
ALTER TABLE table_name DROP column_name;

Data Manipulation Language (DML)

CREATE TABLE employee(
 emp_id INT,
 emp_name VARCHAR(20),
 emp_age INT,
 gender CHAR(1),
 emp_addr VARCHAR(40)
);

-- Insert data
INSERT INTO employee (emp_id, emp_name, emp_age, gender, emp_addr) 
VALUES(1, 'John Doe', 25, 'M', 'New York');
INSERT INTO employee VALUES(2, 'Jane Smith', 30, 'F', 'London');

-- Update data
UPDATE employee SET gender = 'F' WHERE emp_id = 1;

-- Delete data
DELETE FROM employee WHERE emp_id = 2;
DELETE FROM employee;
TRUNCATE TABLE employee;

Data Query Language (DQL)

Sample Data Setup

DROP TABLE IF EXISTS staff;
CREATE TABLE staff(
 staff_id INT,
 staff_name VARCHAR(20),
 gender CHAR(1),
 salary DOUBLE,
 join_date DATE,
 department VARCHAR(20)
);

INSERT INTO staff VALUES(1, 'Michael', 'M', 7500, '2013-02-04', 'Engineering');
INSERT INTO staff VALUES(2, 'Sarah', 'F', 4000, '2010-12-02', 'Engineering');
INSERT INTO staff VALUES(3, 'David', 'M', 9500, '2008-08-08', 'Engineering');
INSERT INTO staff VALUES(4, 'Lisa', 'F', 5500, '2015-10-07', 'Marketing');
INSERT INTO staff VALUES(5, 'Kevin', 'M', 5200, '2011-03-14', 'Marketing');

Basic Queries

-- Query all data
SELECT * FROM staff;

-- Specific columns
SELECT staff_id, staff_name FROM staff;

-- Column aliases
SELECT
 staff_id AS 'ID',
 staff_name AS 'Name',
 gender AS 'Gender',
 salary AS 'Salary',
 join_date 'Join Date',
 department 'Department'
FROM staff;

-- Distinct values
SELECT DISTINCT department AS 'Department' FROM staff;

-- Calculations
SELECT staff_name, salary + 1000 FROM staff;

Conditional Queries

-- Exact match
SELECT * FROM staff WHERE staff_name = "Michael";
SELECT * FROM staff WHERE salary = 5500;

-- Range queries
SELECT * FROM staff WHERE salary BETWEEN 5000 AND 10000;
SELECT * FROM staff WHERE salary IN (4000, 7500, 9500);

-- Pattern matching
SELECT * FROM staff WHERE staff_name LIKE "%Sa%";
SELECT * FROM staff WHERE staff_name LIKE 'M%';
SELECT * FROM staff WHERE staff_name LIKE '__vi%';

-- Null checks
SELECT * FROM staff WHERE department IS NULL;
SELECT * FROM staff WHERE department IS NOT NULL;

Advanced Query Techniques

Sorting Results

-- Single column sort
SELECT * FROM staff ORDER BY salary;
SELECT * FROM staff ORDER BY salary DESC;

-- Multi-column sort
SELECT * FROM staff ORDER BY salary DESC, staff_id ASC;

Aggregate Functions

-- Count records
SELECT COUNT(DISTINCT staff_id) FROM staff;

-- Statistical functions
SELECT COUNT(salary), MAX(salary), MIN(salary), AVG(salary) FROM staff;

-- Conditional aggregates
SELECT COUNT(*) FROM staff WHERE salary > 5000;
SELECT COUNT(DISTINCT staff_name) FROM staff WHERE department = "Engineering";
SELECT AVG(salary) FROM staff WHERE department = "Marketing";

Grouping Data

-- Basic grouping
SELECT department, COUNT(staff_name) FROM staff GROUP BY department;

-- Group with aggregates
SELECT gender, AVG(salary) FROM staff GROUP BY gender;

-- Complex grouping
SELECT department, AVG(salary) FROM staff 
WHERE department IS NOT NULL 
GROUP BY department 
ORDER BY AVG(salary) DESC;

-- Group with having clause
SELECT department, AVG(salary) FROM staff 
GROUP BY department 
HAVING AVG(salary) > 6000 AND department IS NOT NULL;

Result Limiting

-- First N records
SELECT * FROM staff LIMIT 5;

-- Offset and limit
SELECT * FROM staff LIMIT 3, 6;

Tags: MySQL database sql Commands queries

Posted on Sun, 23 Aug 2026 16:49:27 +0000 by vanderlay