2011-12-07 36 views
9

Tôi khá mới đối với SQLITE và tôi nhận thấy rằng chỉ có 4 kiểu dữ liệu nhưng tôi thấy các ví dụ trực tuyến nơi mọi người đang đưa vào các kiểu dữ liệu của riêng họ. Tôi không thực sự hiểu điều này và tự hỏi liệu có ai đó có thể giải thích điều đó cho tôi không. Ví dụ tôi thấy một cột sẽ giữ một ngày và kiểu dữ liệu đã được đưa ra là dấu thời gian không tồn tại. Nó mặc định là gì? Nó có mặc định là văn bản khi bạn tạo văn bản của riêng mình không?Các loại dữ liệu tùy chỉnh SQLITE?

Trả lời

14

sqlite3 sử dụng hệ thống kiểu động. Chỉ có năm lớp lưu trữ: NULL, số nguyên, thực, văn bản và blob. (Nguồn:. Datatypes In SQLite Version 3)

Và, để trích dẫn trang đó:

Bất kỳ cột trong một SQLite cơ sở dữ liệu phiên bản 3, ngoại trừ một INTEGER cột PRIMARY KEY, có thể được sử dụng để lưu trữ một giá trị của bất kỳ lớp lưu trữ .

Ngoài trừ trường hợp ngoại lệ integer primary key, SQLite không thực thi các loại. Điều đó có nghĩa là tên loại bạn đặt trong create table hoàn toàn mang tính thông tin.

create table mytab (a apples, b bananas); 

là tuyên bố hợp lệ create table. Bạn có thể chèn dấu thời gian, văn bản, các đốm màu vào cả hai cột (không nói rằng bạn nên, nhưng bạn có thể).

Xem tài liệu tham chiếu được liên kết cho hệ thống loại để biết thêm thông tin.

sqlite> create table mytab (a apples, b bananas); 
sqlite> insert into mytab values (CURRENT_TIME, NULL); 
sqlite> insert into mytab values ('hello', 3.14159); 
sqlite> select * from mytab; 
14:59:18| 
hello|3.14159 

Để trả lời câu hỏi của bạn trực tiếp: không có giá trị mặc định. Một loại lưu trữ được liên kết với mỗi giá trị được lưu trữ trong cơ sở dữ liệu, không được kết hợp với các cột của bảng.

+0

Cảm ơn Mat, đó chính xác là những gì tôi đang tìm kiếm – Pittfall

Các vấn đề liên quan