Mysql là gì? Các kiểu dữ liệu trong mysql mà bạn cần biết

22/03/2023

Mysql là gì? Các kiểu dữ liệu trong mysql mà bạn cần biết

Nội dung

MySQL là một phần mềm mạnh mẽ và phổ biến. Mặc dù ra đời từ thập niên 1970s nhưng rất nhiều công nghệ quan trọng ngày nay vẫn còn phụ thuộc vào MySQL. Hãy cùng Vega Fintech tìm hiểu về MySQL nhé.

I. MySQL là gì?

MySQL là một hệ thống Relational Database Management System (RDBMS) - tức là quản trị cơ sở dữ liệu mã nguồn mở. MySQL hoạt động theo mô hình client-server, dịch vụ dùng để tạo và quản lý các Database (cơ sở dữ liệu) theo hình thức quản lý các mối liên hệ giữa chúng.

Mức độ phổ biến của MySQL thể hiện rõ nhất khi cả các “ông lớn” như Facebook, Google, YouTube, Twitter hay Yahoo! đều sử dụng MySQL để lưu trữ các dữ liệu. Hiện nay, MySQL đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu.

MySQL là gì?

MySQL là phần mềm phổ biến ngay cả ở thời hiện tại

Ted Codd - một nhà khoa học máy tính người Anh (19/8/1923 - 18/4/2003) đã phát minh ra mô hình quan hệ để quản lý cơ sở dữ liệu. Ông đã tạo ra SQL vào đầu thập niên 1970s khi đang làm việc cho IBM. Năm 1974, SQL khiến cho các ngôn ngữ khác (như ISAM và VISAM) trở nên lỗi thời.

Nếu bắt gặp một thương hiệu nào đó có kèm theo SQL như PostgreSQL, Microsoft SQL server thì đây thường là những thương hiệu sử dụng syntax của SQL. MySQL được viết bằng C và C++. Các phần mềm quản trị cơ sở dữ liệu được viết bằng ngôn ngữ lập trình, nhưng luôn sử dụng SQL làm ngôn ngữ chính để tương tác với database.

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

1. Kiểu dữ liệu số (Numeric Data Types)

Các kiểu dữ liệu số được chia thành 2 dạng: Dữ liệu số thực và dữ liệu số nguyên.

Kiểu dữ liệu số nguyên

Kiểu

Độ dài (byte)

Giá trị lưu trữ

TINYINT

1

-128 đến 128 (số nguyên có dấu) hoặc 0 ... 255 (số nguyên không dấu)

SMALLINT

2

-32768 ... 32767 (số nguyên có dấu) hoặc 0 ... 65535 (số nguyên không dấu)

MEDIUMINT

3

-8388608 ... 8388607 (số nguyên có dấu) hoặc 0 ... 16777215 (số nguyên không dấu)

INT

4

-2147483648 ... 2147483647 (số nguyên có dấu) hoặc 0 ... 4294967295 (số nguyên không dấu)

BIGINT

8

-9223372036854775808 ... 9223372036854775807 (số nguyên có dấu) hoặc 0 ... 18446744073709551615 (số nguyên không dấu)

Xem thêm: Thuật toán là gì? Thông tin cơ bản về thuật toán

Kiểu dữ liệu số nguyên

MySQL có 3 kiểu dữ liệu chính

Kiểu dữ liệu số thực

Kiểu

Độ dài (byte)

Giá trị lưu trữ

FLOAT

4

-3.402823466E+38 ... -1.175494351E-38 (có dấu) hoặc 1.175494351E-38 ... 3.402823466E+38 (không dấu)

DOUBLE

8

-1.7976931348623157E+ 308 ... -2.2250738585072014E- 308 (có dấu) hoặc 0 và 2.2250738585072014E-308 ... 1.7976931348623157E+ 308 (không dấu)

2. Kiểu dữ liệu chuỗi (String Types)

Kiểu dữ liệu chuỗi gồm 6 dạng chính là CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT.

Kiểu

Mô tả

CHAR(n)

Kiểu dữ liệu char trong MySQL lưu trữ chuỗi có chiều dài cố định (n ký tự từ 0 - 255, mặc định char thì dài 1 hoặc bạn có thể chỉ định khi tạo bảng), nó luôn sử dụng cùng một lượng bộ nhớ để lưu trữ cho mỗi chuỗi (kể cả ít ký tự hơn, nếu sử dụng ít hơn thì ở cuối là khoảng trắng), tuy vậy khi đọc khoảng trắng ở phần cuối tự loại bỏ.

VARCHAR(n)

Kiểu dữ liệu varchar trong MySQL lưu trữ chuỗi có chiều dài tối đa n (n ký tự từ 0 - 65535, do bạn chỉ định khi tạo bảng, mặc định varchar thì dài 80), tùy thuộc vào độ dài lưu trữ của từng chuỗi thì nó sẽ sử dụng lượng bộ nhớ phù hợp để lưu trữ (khác char ở trên), chuỗi bạn lưu trữ thế nào thì đọc ra như thế (kể cả khoảng trắng ở cuối nếu có)

BINARY(n)

Giống CHAR, nhưng chuỗi lưu trữ ở dạng nhị phân (các byte của chuỗi). Dữ liệu chuỗi muốn lưu trữ bạn phải chuyển thành mảng byte để lưu, hoặc chính là các byte của một file nhị phân

VARBINARY(n)

Giống VARCHAR, nhưng chuỗi lưu trữ ở dạng nhị phân

BLOB

Chứa các đối tượng nhị phân lớn (ví dụ file hình ảnh). Giá trị lưu trữ là chuỗi nhị phân. BLOB chia thành bốn kiểu theo khả năng lưu trữ tối đa gồm: TINYBLOB - 255 byte, BLOB - 65535 byte, MEDIUMBLOB - 16777215 byte, LONGBLOB - 4294967295 byte

TEXT

Chứa chuỗi dài. Giá trị lưu trữ là chuỗi theo bộ ký tự (bảng mã ASCII) giống char, varchar. Có bốn kiểu theo độ dài chuỗi lưu trữ tối đa: TINYTEXT - 255 ký tự; TEXT - 65535 ký tự; MEDIUMTEXT - 16777215 ký tự; LONGTEXT - 4294967295 ký tự

ENUM

Kiểu ENUM trong MySQL (liệt kê), nó lưu trữ giá trị là một chuỗi, nhưng giá trị chuỗi phải thuộc một danh sách cho phép được liệt kê khi tạo bảng. Ví dụ kiểu ENUM('NAM','NỮ') thì cột đó chỉ được lưu chuỗi có giá trị bằng 'NAM' hoặc 'NỮ'

SET

Giống ENUM, nhưng cột có thể không chứa giá trị nào, hoặc chứa nhiều chuỗi có trong SET

3. Kiểu dữ liệu ngày giờ (Date and Time)

Kiểu

Mô tả

Định dạng hiển thị

Giá trị lưu trữ

DATETIME

Lưu trữ đủ thông tin năm-tháng-ngày-giờ-phút-giây

YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00' đến '9999-12-31 23:59:59

 

DATE

Lưu trữ các thông tin năm-tháng-ngày

YYYY-MM-DD

1000-01-01 00:00:00' đến '9999-12-31 23:59:59'

TIMESTAMP

Lưu trữ thời gian chi tiết (năm-tháng-ngày-giờ-phút-giây) của timezone hiện tại được convert về UTC.
Khi truy vấn đọc thì tự động convert về timezone hiện tại (timezone hiện tại thường là timezone của Server).
Như vậy cùng giá trị TIMESTAMP, nhưng tùy theo timezone của server mà giá trị đọc được có thể khác nhau.

YYYY-MM-DD HH:MM:SS

1970-01-01 00:00:01' UTC đến '2038-01-19 03:14:07' UTC

YEAR

Sử dụng 1 byte để lưu trữ năm

YYYY

1901 tới 2155 và giá trị 0000

III. Các thuật ngữ thường gặp trong MySQL

1. MySQL Server

Khi một máy tính hoặc hệ các máy tính cài đặt phần mềm MySQL dành cho server để lưu trữ dữ liệu, máy khách có thể truy cập vào quản lý. Dữ liệu này được đặt trong các bảng, giữa các bảng có mối liên hệ với nhau. MySQL server nhanh và an toàn. Phần mềm MySQL được phát triển, phân phối và hỗ trợ bởi Oracle Corporation và cung cấp miễn phí.

MySQL Server

Nhiều mạng xã hội sử dụng MySQL để lưu trữ các dữ liệu hoạt động

2. MySQL Client

MySQL client không hẳn phải cài phần mềm MySQL của Oracle mà là nói chung của mọi phần mềm có thể thực hiện truy vấn lên một MySQL server, nhận kết quả trả về. Đoạn mã PHP script trên một máy tính hay trên cùng server có thể dùng để kết nối tới cơ sở dữ liệu MySQL database. Phpmyadmin cũng là một MySQL client có giao diện user.

Một số công cụ miễn phí, mã nguồn mở được dùng làm MySQL là:

- MySQL Workbench (cho hệ điều hành Mac, Windows, Linux)

- Sequel Pro (dùng cho Mac)

- HeidiSQL (dùng được cho Windows; chạy trên Mac hoặc Linux bằng WINE emulator)

- PhpMyAdmin (dùng cho web app)

- Open source (mã nguồn mở)

Open source có nghĩa là bất kỳ ai cũng có thể dùng và chỉnh sửa, cài đặt phần mềm này và tùy chỉnh phần mềm theo nhu cầu riêng. Tuy nhiên, việc bạn có thể làm những gì sẽ tùy thuộc sự quyết định của giấy phép GPL (GNU Public License). Nếu cần hỗ trợ cao cấp hoặc cần thêm chủ quyền thì bạn phải đăng ký phiên bản thương mại.

3. Mô hình Client-server (máy khách)

Máy tính cài đặt và chạy phần mềm MySQL được gọi là client. Mỗi khi máy khách cần truy cập dữ liệu, chúng sẽ kết nối tới máy chủ (server) - phương thức hoạt động này chính là mô hình “client-server”.

4. Database (cơ sở dữ liệu)

Cơ sở dữ liệu- Database là tập hợp các dữ liệu theo cùng một cấu trúc. Database là nơi lưu trữ và sắp đặt dữ liệu. Dữ liệu sẽ được đặt trong một bộ dữ liệu chung, được tổ chức và sắp xếp giống như một bảng tính. Mỗi “bảng” có liên hệ với nhau theo một logic nào đó.

Database (cơ sở dữ liệu)

Tìm hiểu các thuật ngữ cơ bản liên quan đến MySQL

5. SQL

MySQL thường bị nhầm lẫn với SQL và không ít người nhầm tưởng hai khái niệm này là một. Thực chất, MySQL chỉ là một hệ thống quản lý cơ sở dữ liệu. Trong khi SQL là ngôn ngữ liên lạc giữa các máy chủ và máy khách trên hệ thống. SQL thường được dùng để xử lý các hành động sau:

- Data Query: Yêu cầu trích xuất thông tin từ kho dữ liệu có sẵn;

- Data Manipulation: Thêm, xóa, sửa lại các dữ liệu.

- Data Identity: Định nghĩa và phân loại dữ liệu, xét chúng thuộc ngăn tủ nào trong database.

- Data Access Control: Cấp quyền hoặc giới hạn quyền truy cập của một user nhằm bảo vệ dữ liệu.

Ngành công nghệ và dữ liệu đã sử dụng MySQL nhiều năm, nó là một kỹ năng căn bản một chuyên gia lập trình. Từ những thông tin về MySQL được Vega Fintech chia sẻ ở trên, chắc hẳn các bạn đã có hiểu biết nhất định về phần mềm này.