6. Kiểu dữ liệu có thể dùng trong SQLite
Việc tạo bảng (Table) trong SQLite không bắt buộc phải chỉ định kiểu dữ liệu cho mỗi trường dữ liệu. Tuy nhiên cho dù không chỉ định, thì dữ liệu khi nạp vào bảng, dù thế nào đi nữa cũng chỉ có thể là 5 khả năng dưới đây.
- NULL Giá trị NULL
- INTEGER Kiểu số nguyên. Là 1, 2, 3, 4, 6, or 8 byte
- REAL Kiểu số thực. 8 byte.
- TEXT Chuỗi ký tự. UTF-8, UTF-16BE or UTF-16-LE
- BLOB Binary Large OBject. Dữ liệu như nào thì giữ nguyên y xì và nạp vào.
Chả hạn nếu giá trị nhập vào chứa dấu ' thì bạn nên nghĩ tới việc định nghĩa trường dữ liệu này nên là TEXT. Nếu là số không chứa dấu phẩy, thì có thể nghĩ tới kiểu số nguyên INTEGER. Nếu là số chứa dấu phẩy thì nên dùng kiểu số thực REAL.
Tạo bảng dữ liệu cùng với việc định nghĩa kiểu dữ liệu cho các trường dữ liệu:
create table personal(id integer, name text);
Xin chú ý rằng, việc chỉ định kiểu dữ liệu là không bắt buộc nhưng bạn có thể chỉ định kiểu dữ liệu cho mỗi trường dữ liệu.
Kiểu dữ liệu mà bạn có thể chỉ định cho các trường dữ liệu khi tạo Table là:
- TEXT
- NUMERIC
- INTEGER
- REAL
- NONE
Lưu ý là cho dù có chỉ định đi chăng nữa, thì kiểu dữ liệu thế nào cũng sẽ được nạp vào trường dữ liệu sau khi nó được chuyển đổi. Cụ thể như sau:
(1)TEXT là kiểu dữ liệu được chỉ định cho trường dữ liệu. Lúc này nếu bạn nạp vào là INTEGER hay REAL thì nó cũng sẽ bị chuyển thành TEXT.
(2)NUMERIC là kiểu dữ liệu được chỉ định cho trường dữ liệu. Lúc này nếu bạn nạp vào là TEXT. Nó sẽ thử chuyển thành INTEGER hoặc REAL. Nếu thành công thì nó sẽ cất dữ liệu này vào. Nếu thất bại thì nó cữ giữ nguyên dạng TEXT mà cất vào.
(3)INTEGER là kiểu dữ liệu được chỉ định cho trường dữ liệu. Lúc này nếu bạn nạp vào là một số thực chả hạn là 34.0 thì nó sẽ chuyển thành INTEGER . Hoặc dữ liệu TEXT có dạng "34.0" thì nó vẫn chuyển được thành INTEGER và cất vào.
(4)REAL là kiểu dữ liệu được chỉ định cho trường dữ liệu. Lúc này nếu bạn nạp vào là INTEGER thì nó sẽ chuyển thành REAL và nạp vào.
(5)NONE: Nếu định nghĩa thế này thì dữ liệu sẽ không bị chuyển đổi.
Phương pháp chỉ định kiểu dữ liệu cho trường dữ liệu.
Như đã nói, bạn có 5 dạng dữ liệu có thể định nghĩa cho các trường dữ liệu khi tạo table:
[TEXT][NUMERIC][INTEGER][REAL][NONE]
Đối với INTEGER thì có thể viết ngắn gọn là
int.
Ví dụ:
create table personal(id int, name text);
Kiểu chuỗi ký tự như CHAR , CLOB , TEXT thì sẽ trở thành kiểu
TEXT.
create table personal(id int, name varchar);
Trường hợp kiểu dữ liệu chứa chuỗi ký tự kiểu BLOB , hoặc bạn không chỉ định gì thì khi đó mặc định sẽ là
NONE.
Trường hợp kiểu dữ liệu chứa các kiểu sau: REAL , FLOA , DOUB, thì khi đó nó sẽ trở thành kiểu
REAL.
Nếu không có điều nào ở trên là đúng thì nó sẽ trở thành kiểu
NUMERIC.