Published on

Bắt đầu với MySQL Query

Authors
  • avatar
    Name
    Loc Truong
    Twitter

Khi mới bắt đầu làm việc với cơ sở dữ liệu, MySQL là một tron những hệ thống quen thuộc nhất. Nó là mã nguồn mở và được sử dụng ro65g rãi trong cả dự án nhỏ lẫn lớn.

Trong bài viết này, chúng ta sẽ cùng đi qua những lệnh MySQL phổ biến - từ kết nối đến server, tạo bảng, thêm dữ liệu cho đến truy vấn và quản lý dữ liệu.


Kết nối đến MySQL Server

Để truy cập cơ sở dữ liệu MySQL, bạn cần kết nối bằng tài khoản của mình:

mysql -u [username] -p
mysql -u [username] -p [database]
mysqldump -u [username] -p [database] > data_backup.sql

Dùng quit hoặc exit để thoát, và help để xem danh sách các lệnh hỗ trợ trong MySQL terminal.


Tạo và Xem Cơ sở dữ liệu

Sau khi kết nối, bạn có thể tạo hoặc xem danh sách các cơ sở dữ liệu:

CREATE DATABASE zoo;
SHOW DATABASES;
USE zoo;

CREATE DATABASE tạo mới một cơ sở dữ liệu. SHOW DATABASE liệt kê toàn bộ, còn USE giúp bạn chuyển vào cơ sở dữ liệu cần làm việc.

Nếu muốn xóa:

DROP DATABASE zoo;

Tạo bảng

Giả sử bạn đang xây dựng hệ thống quản lý sở thú nhỏ. Bạn có thể tạo hai bảng - một cho môi trường sống (habitat) và một cho động vật (animal):

CREATE TABLE habitat (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(64)
);
CREATE TABLE animal (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(64),
  species VARCHAR(64),
  age INT,
  habitat_id INT,
  FOREIGN KEY (habitat_id) REFERENCES habitat(id)
);

Khóa ngoại (FOREIGN KEY) giúp liên kết hai ba3g - một khái niệm quan trong trong cơ sở dữ liệu quan hệ.


Chỉnh sửa bảng

Khi mô hình dữ liệu thay đổi, bạn có thể chỉn sửa bảng linh hoạt với ALTER TABLE:

ALTER TABLE animal ADD COLUMN nickname VARCHAR(64);
ALTER TABLE animal RENAME COLUMN id TO identifier;
ALTER TABLE animal MODIFY COLUMN name VARCHAR(128);
ALTER TABLE animal DROP COLUMN nickname;

Và nếu không cần bảng nữa:

DROP TABLE animal;

Truy vấn Dữ liệu (Query)

Để lấy dữ liệu, bạn dùng lệnh SELECT:

SELECT species, AVG(age) AS average_age
FROM animal
WHERE id != 3
GROUP BY species
HAVING AVG(age) > 3
ORDER BY AVG(age) DESC;

Lệnh này lấy trung bình tủô theo loài, loại bỏ ID = 3 và chỉ hiển thị những loài có tuổi trung bình trên 3.

Ví dụ về JOIN để kết hợp dữ liệu từ nhiều bảng:

SELECT city.name, country.name
FROM city
INNER JOIN country
  ON city.country_id = country.id;

Hàm tổng hợp và nhóm dữ liệu

Các hàm như COUNT, AVG, MIN, MAX giúp bạn tổng hợp dữ liệu nhanh chóng:

SELECT COUNT(*) FROM animal;
SELECT COUNT(DISTINCT name) FROM animal;

Để nhóm dữ liệu:

SELECT species, COUNT(id)
FROM animal
GROUP BY species;

Thêm, cập nhật và xóa dữ liệu

INSERT INTO habitat VALUES (1, 'River'), (2, 'Forest');
INSERT INTO habitat (name) VALUES ('Savanna');

UPDATE animal
SET species = 'Duck', name = 'Quack'
WHERE id = 2;

DELETE FROM animal WHERE id = 1;
TRUNCATE TABLE animal;

Kết luận

Hiểu rõ những lệnh MySQL cơ bản này là bước đầu để làm củ cơ sở dữ liệu.

  • Hãy thử từng lệnh trong môi trường local - càng thực hành, bạn càng hiểu rõ cách MySQL vận hành.