MySQL là gì?

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System – RDBMS) mã nguồn mở, được sử dụng rộng rãi để lưu trữ, quản lý và truy xuất dữ liệu. MySQL hoàn toàn miễn phí nằm trong nhóm LAMP (Linux – Apache – MySQL – PHP).

Vì hệ quản trị cơ sở dữ liệu MySQL ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở.

Đặc điểm nổi bật

  • Hiệu suất cao và khả năng mở rộng: MySQL được tối ưu hóa để xử lý một lượng lớn dữ liệu một cách nhanh chóng và hiệu quả. Hệ thống có thể dễ dàng mở rộng để đáp ứng nhu cầu lưu trữ và xử lý dữ liệu ngày càng tăng.
  • Bảo mật và tính toàn vẹn dữ liệu: MySQL cung cấp các tính năng bảo mật mạnh mẽ như xác thực người dùng, phân quyền, mã hóa dữ liệu và phát hiện xâm nhập, giúp bảo vệ dữ liệu khỏi các mối đe dọa an ninh.
  • Tính linh hoạt và tùy biến cao: MySQL hỗ trợ nhiều nền tảng, nhiều loại engine lưu trữ và cho phép người dùng tùy chỉnh cấu hình để phù hợp với nhu cầu cụ thể của ứng dụng.
  • Cộng đồng lớn và hỗ trợ mạnh mẽ: MySQL có một cộng đồng người dùng rất lớn, sẵn sàng chia sẻ kinh nghiệm và giải đáp thắc mắc.
  • Mã nguồn mở: MySQL là một phần mềm mã nguồn mở, người dùng có thể tự do sử dụng, sửa đổi và phân phối.
  • Cơ chế quản lý dữ liệu: MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu (database). Mỗi cơ sở dữ liệu có thể chứa nhiều bảng (table), mỗi bảng lưu trữ một loại dữ liệu cụ thể. Các bảng được liên kết với nhau thông qua các khóa (key) để tạo thành các mối quan hệ.
  • Cơ chế phân quyền: MySQL có cơ chế phân quyền người dùng rất chi tiết. Mỗi người dùng có thể được cấp quyền truy cập đến một hoặc nhiều cơ sở dữ liệu, với các quyền hạn khác nhau như đọc, ghi, sửa đổi cấu trúc bảng, v.v.
  • Ngôn ngữ SQL: MySQL sử dụng ngôn ngữ SQL (Structured Query Language) để tương tác với dữ liệu. SQL là ngôn ngữ chuẩn để truy vấn, cập nhật, xóa và quản lý dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ.

Cách hoạt động của MySQL

MySQL hoạt động theo mô hình client-server, nghĩa là có một máy chủ (server) lưu trữ phần mềm MySQL và các cơ sở dữ liệu, và có các máy khách (client) gửi yêu cầu đến máy chủ để thực hiện các thao tác với cơ sở dữ liệu.

MySQL sử dụng ngôn ngữ SQL để thực hiện các tác vụ. Các câu lệnh SQL là các lệnh được gửi đến máy chủ MySQL để đọc, thao tác hoặc kiểm soát dữ liệu được lưu trữ trong các cơ sở dữ liệu của nó. Ví dụ, lệnh SELECT được sử dụng để lấy dữ liệu từ cơ sở dữ liệu. Để thêm dữ liệu mới, lệnh INSERT được sử dụng. Tương tự, các lệnh DELETE và UPDATE được sử dụng để xóa hoặc cập nhật dữ liệu hiện có.

Trong mô hình client-server, máy khách thiết lập kết nối với máy chủ thông qua mạng. Kết nối này cho phép người dùng truy cập vào các cơ sở dữ liệu trên server và thực hiện các thao tác trên chúng bằng cách sử dụng các câu lệnh SQL. Khi một request từ giao diện người dùng (Graphical user interface – GUI), server sẽ phản hồi thông tin và trả về kết quả trên máy client. Quá trình này được minh họa qua sơ đồ sau:

MySQL hoạt động ra sao?

Các kiểu dữ liệu trong MySQL

Kiểu số

Kiểu dữ liệu Mô tả
INT / INTEGER Số nguyên (±2 tỉ)
TINYINT Số nguyên nhỏ (±127)
SMALLINT, MEDIUMINT, BIGINT Số nguyên với độ lớn khác nhau
FLOAT(m,d) Số thực dấu phẩy động, độ chính xác đơn
DOUBLE(m,d) Số thực dấu phẩy động, độ chính xác kép
DECIMAL(m,d) Số thực chính xác cao, thường dùng trong tài chính

 

Kiểu chuỗi

Kiểu dữ liệu Mô tả
CHAR(n) Chuỗi cố định độ dài
VARCHAR(n) Chuỗi có độ dài thay đổi (tối đa 65,535 byte)
TEXT, TINYTEXT, MEDIUMTEXT, LONGTEXT Lưu trữ văn bản lớn
ENUM('a','b') Giá trị chỉ chọn trong danh sách
SET('a','b','c') Có thể chọn nhiều giá trị cùng lúc từ danh sách

 

Kiểu ngày/giờ

Kiểu dữ liệu Mô tả
DATE Ngày (YYYY-MM-DD)
DATETIME Ngày và giờ (YYYY-MM-DD HH:MM:SS)
TIMESTAMP Dấu thời gian, thường dùng để ghi nhận thời điểm tạo/cập nhật
TIME Giờ (HH:MM:SS)
YEAR Năm (YYYY)

 

Các ràng buộc và quy tắc

  • NOT NULL – Đảm bảo rằng một cột không thể có giá trị NULL
  • UNIQUE – Đảm bảo rằng tất cả các giá trị trong một cột là khác nhau
  • PRIMARY KEY – Sự kết hợp giữa KHÔNG ĐẦY ĐỦ và ĐỘC ĐÁO. Xác định duy nhất từng hàng trong bảng
  • FOREIGN KEY – Xác định duy nhất một hàng / bản ghi trong bảng khác
  • CHECK – Đảm bảo rằng tất cả các giá trị trong một cột thỏa mãn một điều kiện cụ thể
  • DEFAULT – Đặt giá trị mặc định cho một cột khi không có giá trị nào được chỉ định
  • INDEX – Được sử dụng để tạo và truy xuất dữ liệu từ cơ sở dữ liệu rất nhanh chóng

 

Tham khảo: Tìm hiểu về My SQL

About the Author

Đức Phát

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

So sánh giữa gorm vs go-pg vs bun

Trong thế giới phát triển Golang, việc tương tác với cơ sở dữ liệu là một phần không thể thiếu của hầu hết các ứng dụng. Để đơn giản hóa quy trình này, các thư viện ORM (Object-Relational Mapping) ra đời, giúp các nhà phát triển thao tác với database thông qua các đối tượng […]

So sánh GORM vs go-pg vs Bun

Cộng đồng GORM Là ORM phổ biến nhất trong cộng đồng Go. Có nhiều tài liệu, ví dụ, StackOverflow câu trả lời, và nhiều package hỗ trợ mở rộng. Nhiều developer đã từng dùng Gorm. go-pg Từng rất phổ biến khi chỉ dùng PostgreSQL, nhưng đang bị Bun thay thế dần. Ít được duy trì […]

clean architecture golang

  1.Clean Architecture là gì? Clean Architecture là một kiến trúc phần mềm được đề xuất bởi Robert C. Martin (Uncle Bob) nhằm mục tiêu tách biệt rõ ràng giữa các tầng trong ứng dụng, giúp mã nguồn dễ bảo trì, mở rộng, và kiểm thử. 2.Tổng quan kiến trúc Entity (Domain Model): Là tầng […]

Tìm hiểu Hexagonal Architecture

Hexagonal Architecture là gì? Hexagonal Architecture (tên gọi khác là ports and adapters architecture), là một mẫu kiến trúc được dùng trong thiết kế phần mềm. Nó hướng tới việc xây dựng ứng dụng xoay quanh business/application logic mà không ảnh hưởng hoặc phụ thuộc bởi bất kì thành phần bên ngoài, mà chỉ giao […]

Sử dụng Request/Response trong ứng dụng RESTful mô hình MVC

DTO là gì? DTO (Data Transfer Object) là một object trung gian dùng để truyền dữ liệu giữa client – server hoặc giữa các service trong ứng dụng web/API theo kiến trúc RESTful API. DTO chỉ chứa các thông tin cần thiết mà client hoặc service khác cần (ví dụ: Login Form chỉ cần thông […]

Docker

Docker là gì? Docker là một nền tảng mã nguồn mở cho phép bạn đóng gói, phân phối và chạy ứng dụng bên trong các “container” – những môi trường ảo nhẹ, cô lập nhưng vẫn chia sẻ nhân hệ điều hành của máy chủ. Khái niệm then chốt ở đây là “containerization”: thay vì […]