Introduction

Welcome to this beginner-friendly MySQL tutorial! This guide will walk you through essential MySQL commands, including creating tables, modifying schema, inserting data, applying constraints, and working with queries. To make learning more engaging, we’ve included examples using characters from Friends and Naruto.


1. Creating a Table and Inserting Data Types

To create a table in MySQL, use the CREATE TABLE statement.

CREATE TABLE workers (
    EmployeeID INT,
    FirstName VARCHAR(20),
    LastName VARCHAR(20),
    HourlyPay DECIMAL(5,2),
    HireDate DATE
);
  • INT: Stores whole numbers (e.g., Employee ID)
  • VARCHAR(n): Stores variable-length text up to n characters (e.g., Names)
  • DECIMAL(5,2): Stores numbers with precision (e.g., salaries)
  • DATE: Stores date values (e.g., hire dates)

To view the structure of a table:

DESCRIBE workers;

To see the table contents:

SELECT * FROM workers;

2. Renaming and Deleting Tables

You can rename an existing table:

RENAME TABLE workers TO employees;

To permanently delete a table:

DROP TABLE employees;

3. Modifying Tables

Adding a Column

ALTER TABLE employees
ADD COLUMN PhoneNumber BIGINT;

Renaming a Column

ALTER TABLE employees
RENAME COLUMN PhoneNumber TO Email;

Changing Data Types

ALTER TABLE employees
MODIFY COLUMN Email VARCHAR(50);

Changing Column Position

ALTER TABLE employees
MODIFY COLUMN Email VARCHAR(50) FIRST;
ALTER TABLE employees
MODIFY COLUMN Email VARCHAR(50) AFTER LastName;

Deleting a Column

ALTER TABLE employees
DROP COLUMN Email;

4. Inserting Data into Tables

Inserting a Single Row

INSERT INTO employees
VALUES (1, 'Rachel', 'Green', 25.50, '1969-02-11');

Inserting Multiple Rows

INSERT INTO employees
VALUES
    (2, 'Phoebe', 'Buffay', 15.00, '1963-07-30'),
    (3, 'Chandler', 'Bing', 12.50, '1969-08-19'),
    (4, 'Ross', 'Geller', 12.50, '1966-11-02'),
    (5, 'Monica', 'Geller', 17.25, '1964-06-15');

Deleting a Record

DELETE FROM employees
WHERE EmployeeID = 6;

Inserting Data into Specific Columns

INSERT INTO employees (EmployeeID, FirstName, LastName)
VALUES (6, 'Joey', 'Tribbiani');

5. Querying Data

Viewing Specific Columns

SELECT FirstName, LastName FROM employees;

Filtering Data

SELECT * FROM employees WHERE LastName = 'Geller';
SELECT LastName, FirstName FROM employees WHERE HourlyPay >= 15;
SELECT * FROM employees WHERE EmployeeID != 1;

6. Constraints

Unique Constraint

CREATE TABLE PRODUCT (
    ID INT,
    NAME VARCHAR(50) UNIQUE,
    PRICE DECIMAL(4,2)
);

Not Null Constraint

CREATE TABLE PRODUCE (
    ID CHAR(5),
    NAME VARCHAR(10),
    PRICE DECIMAL(4,2) NOT NULL
);

7. Default Values

CREATE TABLE Products (
    ProductID INT,
    ProductName VARCHAR(10),
    Price DECIMAL(4,2) DEFAULT 0.00
);

8. Primary Keys

Adding a Primary Key to an Existing Table

ALTER TABLE Transactions1 ADD PRIMARY KEY (ID);

Creating a Table with a Primary Key

CREATE TABLE Transactions2 (
    ID INT PRIMARY KEY,
    Amount DECIMAL(5,2)
);

Auto Increment

ALTER TABLE Transactions3 AUTO_INCREMENT = 11;

9. Foreign Keys

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY AUTO_INCREMENT,
    FirstName VARCHAR(10),
    LastName VARCHAR(10)
);

CREATE TABLE Transactions (
    TransactionID INT PRIMARY KEY AUTO_INCREMENT,
    Amount DECIMAL(5,2),
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

10. Check Constraint

ALTER TABLE Characters
ADD CONSTRAINT chkHourlyPay CHECK (HourlyPay >= 10.00);

To delete the constraint:

ALTER TABLE Characters DROP CHECK chkHourlyPay;

11. Practical Example: Naruto and Friends Characters

CREATE TABLE Characters (
    CharacterID INT PRIMARY KEY,
    FirstName VARCHAR(25),
    LastName VARCHAR(25),
    HourlyPay DECIMAL(5,2),
    HireDate DATE
);

INSERT INTO Characters VALUES
    (1, 'Naruto', 'Uzumaki', 15.00, '1999-10-10'),
    (2, 'Hinata', 'Hyuga', 15.00, '1998-12-27'),
    (3, 'Sasuke', 'Uchiha', 12.50, '1999-07-23'),
    (4, 'Sakura', 'Haruno', 12.50, '1998-03-28'),
    (5, 'Kakashi', 'Hatake', 17.25, '1990-09-15');

To apply a constraint:

ALTER TABLE Characters
ADD CONSTRAINT chkHourlyPay CHECK (HourlyPay >= 10.00);

Conclusion

This guide provides a strong foundation in MySQL by covering the basics of table creation, data insertion, constraints, and queries. Continue practicing by experimenting with different datasets and queries to strengthen your skills!