SQL trong Data Analysis: Các kiểu dữ liệu cơ bản trong PostgreSQL

Nội dung

Chào mừng các bạn đã quay lại chuỗi bài viết SQL trong Data Analysis. Ở bài này chúng ta sẽ làm quen với các kiểu dữ liệu cơ bản trong PostgreSQL.

Trong PostgreSQL, các Data Type (kiểu dữ liệu) chủ yếu được sử dụng để xác định loại dữ liệu của mỗi cột trong bảng. Điều này rất quan trọng để đảm bảo tính nhất quán và đúng đắn khi lưu trữ và truy vấn dữ liệu.

SQL trong Data Analysis: Các kiểu dữ liệu cơ bản trong PostgreSQL

Các kiểu dữ liệu cơ bản

  • Boolean (Đúng hoặc sai)
  • Các kiểu ký tự nội dung như: char, varchartext.
  • Các kiểu số: như số nguyênsố thực.
  • Các kiểu thời gian như date (ngày), time (giờ), timestamp (ngày và giờ) và interval (chu kỳ: 3 giờ, 12 giờ…).
  • Mảng để lưu trữ các chuỗi ký tự, nội dung, số, v.v.

Và còn nhiều kiểu dữ liệu khác nữa, nhưng chúng ta sẽ không đề cập trong bài viết này.

Boolean

Các giá trị 1, yes, y, t, true sẽ được chuyển đổi thành true.

Các giá trị 0, no, false, f sẽ được chuyển đổi thành false.

Khi bạn truy vấn dữ liệu từ một cột Boolean, PostgreSQL sẽ chuyển đổi lại các giá trị, ví dụ: t thành true, f thành false và khoảng trắng thành null.

Dữ liệu kí tự – chuỗi

PostgreSQL cung cấp ba kiểu dữ liệu ký tự: CHAR(n), VARCHAR(n) và TEXT.

CHAR(n) là ký tự có độ dài cố định với khoảng trắng được thêm vào. Nếu bạn chèn một chuỗi có độ dài nhỏ hơn độ dài của cột (nhỏ hơn n), PostgreSQL sẽ thêm khoảng trắng. Nếu bạn chèn một chuỗi có độ dài lớn hơn độ dài của cột, PostgreSQL sẽ phát ra lỗi.

VARCHAR(n) là chuỗi ký tự có độ dài có thể thay đổi. Với VARCHAR(n), bạn có thể lưu trữ tối đa n ký tự. PostgreSQL sẽ không thêm khoảng trắng khi chuỗi được lưu trữ ngắn hơn độ dài của cột.

TEXT là chuỗi ký tự có độ dài có thể thay đổi. Về lý thuyết, dữ liệu text có độ dài không giới hạn.

Dữ liệu số

Số nguyên

Có ba loại số nguyên trong PostgreSQL:

Small integer (cú pháp SMALLINT) là số nguyên có ký tự 2 byte, giới hạn từ -32.768 đến 32.767.

Integer (cú pháp INT) là số nguyên 4 byte, giới hạn từ -2.147.483.648 đến 2.147.483.647.

Serial tương tự như integer, chỉ khác là PostgreSQL sẽ tự động tạo và điền giá trị vào cột SERIAL. Kiểu này dành cho trường hợp bạn muốn PostgreSQL tự động sinh cột ID cho mỗi dòng dữ liệu mới.

Số thực

float(n) là số thực có độ chính xác ít nhất là n, tối đa là 8 byte.

real hoặc float8 là số thực 4 byte.

numeric hoặc numeric(p, s) là số thực với p là chữ số và s là số sau dấu thập phân. Kiểu numeric có đôi chút phức tạp. Nếu một số thực có số bên trái dấu chấm dài hơn p – s thì sẽ sinh ra lỗi. Ví dụ:

SQL
select 123456.726::numeric(6,2); => Throw error: A field with precision 6, scale 2 must round to an absolute value less than 10^4.

select 123456.726::numeric(8,2); => Result: 123456.73

Ngoài ra, số bên phải dấu chấm sẽ được làm tròn lên. Như trường hợp trên .726 sẽ được làm tròn lên .723.

Kiểu dữ liệu thời gian

Các kiểu dữ liệu thời gian cho phép bạn lưu trữ dữ liệu ngày và/hoặc giờ. PostgreSQL có năm kiểu dữ liệu thời gian chính:

DATE lưu trữ ngày tháng.

TIME lưu trữ giá trị thời gian trong ngày.

TIMESTAMP lưu trữ cả ngày và giờ.

TIMESTAMPTZ là kiểu dữ liệu timestamp có nhận biết múi giờ. Đây là viết tắt của timestamp with the time zone.

INTERVAL là kiểu dữ liệu chu kỳ.

Ví dụ:

SQL
select '2023-01-01'::date; -- => Result: 2023-01-01

select '2023-01-01'::timestamp; --=> Result: 2023-01-01 00:00:00.000

select '2023-01-01'::timestamp with time zone; -- => Result: 2023-01-01 00:00:00.000 +0700 Indochina timezone

select current_date - interval '3 month 3days'; -- => current_date = 2023-07-12 Result: 2023-04-09 00:00:00.000

Mảng (Danh sách)

Trong PostgreSQL, bạn có thể lưu trữ một mảng chuỗi, mảng số nguyên, v.v., trong các cột mảng. Mảng hữu ích trong một số tình huống như lưu trữ các ngày trong tuần, các tháng trong năm.

SQL
select array ['2023-07-01','2023-12-31'::date]; -- =>Result: {2023-07-01,2023-12-31}

Tổng kết

Chúng ta vừa đi qua một số kiểu dữ liệu cơ bản trong PostgreSQL. Thực tế, có nhiều kiểu dữ liệu khác nhau cho từng đề bài khác nhau. Tuy nhiên, để gói gọn cho phù hợp với chuỗi bài viết SQL trong Data Analysis thì chúng ta chỉ cần nắm các kiểu dữ liệu: Boolean – đúng sai, kiểu dữ liệu kí tự – nội dung, kiểu dữ liệu số – kiểu dữ liệu thời gian – kiểu dữ liệu mảng.

Với bài này sẽ là một trong các bài nền tảng cho chuỗi bài tiếp theo. Hẹn gặp lại các bạn ở các bài tiếp theo.

Xin cám ơn.

Bài viết liên quan

SQL trong Data Analysis: Procedure và Function – 2 công cụ không thể thiếu

Xin chào các bạn đã quay trở lại chuỗi bài SQL trong Data Analysis...

Tự học Data Analyst: Tổng hợp chuỗi bài SQL 101 trong Data Analysis

Trong bài viết này, chúng ta sẽ tổng hợp các bài viết thành một...

SQL trong Data Analysis: Hiểu rõ và ứng dụng đệ quy (Recursive trong PostgreSQL)

Trong thế giới của cơ sở dữ liệu quan hệ, các truy vấn đệ...

[Phân Tích Dữ Liệu Với Python] Tập 1: Làm Quen Với Pandas

Trong thời đại tiến bộ của khoa học dữ liệu, khả năng phân tích...
spot_img