“MỌI SỰ CỐ GẮNG CHƯA CHẮC ĐÃ GẶT GÁI ĐƯỢC KẾT QUẢ NHƯNG MỖI KẾT QUẢ ĐẠT ĐƯỢC CHẮC CHẮN LÀ CẢ MỘT QUÁ TRÌNH CỐ GẮNG”

Bài 4: Các kiểu dữ liệu trong SQLite - Học SQLite cơ bản

Thứ ba - 08/03/2022 08:10
Bài 4: Các kiểu dữ liệu trong SQLite - Học SQLite cơ bản.
 
Kiểu dữ liệu trong SQLite là một thuộc tính mà xác định kiểu dữ liệu của bất cứ đối tượng nào. Mỗi cột, biến và biểu thức có dữ liệu liên quan nhau trong SQLite.
Bạn sẽ sử dụng các kiểu dữ liệu này trong khi tạo các bảng cho mình. SQLite sử dụng một hệ thống kiểu động. Trong SQLite, kiểu dữ liệu là một giá trị được liên kết với chính giá trị đó, không liên kết với Container.

1. Lớp lưu trữ trong SQLite

Lớp lưu trữ Mô tả
NULL Giá trị là một giá trị NULL
INTEGER Giá trị là một số nguyên có dấu, được lưu giữ trong 1, 2, 3, 4, 6, hoặc 8 byte tùy thuộc vào độ lớn của giá trị
REAL Giá trị số thực dấu chấm động, được lưu giữ như là một số thực dấu chấm động 8-byte IEEE
TEXT Giá trị là một text string, được lưu trữ bởi sử dụng Encoding của cơ sở dữ liệu (UTF-8, UTF-16BE hoặc UTF-16LE)
BLOB Giá trị là một blob của dữ liệu, nhập vào như thế nào thì lưu giữ chính xác như thế

Lớp lưu trữ trong SQLite là khá chung chung so với một kiểu dữ liệu. Ví dụ, lớp lưu trữ INTEGER gồm 6 kiểu dữ liệu số nguyên khác nhau có độ dài khác nhau.

2. Affinity Type trong SQLite

SQLite hỗ trợ khái niệm _Affinity Type_ trên các cột. Bất cứ cột nào có thể vẫn lưu giữ bất kỳ kiểu dữ liệu nào nhưng lớp lưu trữ ưu tiên cho một cột được gọi là Affinity của nó. Mỗi cột trong bảng trong một SQLite3 Database được gán một trong các Affinity Type sau:
Affinity Miêu tả
TEXT Cột này lưu giữ tất cả dữ liệu sử dụng các lớp lưu trữ NULL, TEXT hoặc BLOB
NUMERIC Cột này có thể chứa các giá trị sử dụng tất cả 5 lớp lưu trữ
INTEGER Vận hành giống như một cột với NUMERIC affinity với một ngoại lệ trong một biểu thức CAST
REAL Vận hành giống như một cột với NUMERIC affinity, ngoại trừ rằng nó ép các giá trị nguyên thành dạng biểu diễn số thực dấu chấm động
NONE Một cột với NONE affinity không ưu tiên một lớp lưu trữ nào khi so với lớp khác và không ép dữ liệu từ một lớp lưu trữ này sang dạng một lớp lưu trữ khác

3. Tên kiểu dữ liệu và Affinity trong SQLite

Bảng dưới đây liệt kê tên các kiểu dữ liệu đa dạng có thể được sử dụng trong khi tạo các bảng dữ liệu trong SQLite3 và tên Affinity tương ứng có thể được áp dụng:
Kiểu dữ liệu Affinity
- INT - INTEGER - TINYINT - SMALLINT - MEDIUMINT - BIGINT - UNSIGNED BIG INT - INT2 - INT8 INTEGER
- CHARACTER(20) - VARCHAR(255) - VARYING CHARACTER(255) - NCHAR(55) - NATIVE CHARACTER(70) - NVARCHAR(100) - TEXT - CLOB TEXT
- BLOB - Không có kiểu dữ liệu nào được xác định NONE
- REAL - DOUBLE - DOUBLE PRECISION - FLOAT REAL
- NUMERIC - DECIMAL(10,5) - BOOLEAN - DATE - DATETIME NUMERIC

4. Kiểu dữ liệu Boolean trong SQLite

SQLite không hỗ trợ lớp lưu trữ Boolean riêng rẽ. Thay vào đó, các giá trị Boolean được lưu trữ dưới dạng các số nguyên: 0 cho false và 1 cho true.

5. Kiểu dữ liệu Date và Time trong SQLite

SQLite không có một lớp lưu trữ riêng rẽ để lưu trữ date/time, những SQLite có thể lưu giữ date/time dưới dạng các giá trị TEXT, REAL hoặc INTEGER.
Lớp lưu trữ Định dạng Date
TEXT Một date trong định dạng "YYYY-MM-DD HH:MM:SS.SSS"
REAL Số ngày từ Greenwich November 24, 4714 B.C
INTEGER Số giây từ 1970-01-01 00:00:00 UTC

Bạn có thể chọn để lưu giữ date và time trong bất kỳ các kiểu định dạng này và tự do chuyển đổi giữa các định dạng bởi sử dụng các hàm xử lý date và time có sẵn.
Như vậy, thông qua bài học này, mình đã giới thiệu đến các bạn các kiểu dữ liệu cơ bản trong SQLite. Cảm ơn các bạn đã đọc.

 

Nguồn tin: vncoder.vn

Tổng số điểm của bài viết là: 1 trong 1 đánh giá

Xếp hạng: 1 - 1 phiếu bầu
Click để đánh giá bài viết
Thống kê
  • Đang truy cập103
  • Hôm nay2,677
  • Tháng hiện tại93,744
  • Tổng lượt truy cập1,919,489
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây