當前位置:首頁 » 數據倉庫 » sqlite資料庫欄位類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlite資料庫欄位類型

發布時間: 2023-07-18 08:51:14

1. sqlite裡面建立資料庫表的時候,沒有指定欄位類型,則默認是什麼類型

SQLite最大的特點在於其數據類型為無數據類型(typelessness)。這意味著可以保存任何類型的數據到所想要保存的任何錶的任何列中,無論這列聲明的數據類型是什麼。雖然在生成表結構的時候,要聲明每個域的數據類型,但SQLite並不做任何檢查。開發人員要靠自己的程序來控制輸入與讀出數據的類型。這里有一個例外,就是當主鍵為整型值時,如果要插入一個非整型值時會產生異常。

雖然,SQLite允許忽略數據類型,但是,仍然建議在Create Table語句中指定數據類型,因為數據類型有利於增強程序的可讀性。另外,雖然在插入或讀出數據的時候是不區分類型的,但在比較的時候,不同數據類型是有區別的。

2. sqlite資料庫中能不能存放布爾類型的數據

sqlite資料庫中不支持布爾型。
SQLite將數據值的存儲劃分為以下幾種存儲類型:
NULL: 表示該值為NULL值。
INTEGER: 無符號整型值。
REAL: 浮點值。
TEXT: 文本字元串,存儲使用的編碼方式為UTF-8、UTF-16BE、UTF-16LE。
BLOB: 存儲Blob數據,該類型數據和輸入數據完全相同。
由於SQLite採用的是動態數據類型,而其他傳統的關系型資料庫使用的是靜態數據類型,即欄位可以存儲的數據類型是在表聲明時即以確定的,因此它們之間在數據存儲方面還是存在著很大的差異。在SQLite中,存儲分類和數據類型也有一定的差別,如INTEGER存儲類別可以包含6種不同長度的Integer數據類型,然而這些INTEGER數據一旦被讀入到內存後,SQLite會將其全部視為佔用8個位元組無符號整型。因此對於SQLite而言,即使在表聲明中明確了欄位類型,我們仍然可以在該欄位中存儲其它類型的數據。然而需要特別說明的是,盡管SQLite為我們提供了這種方便,但是一旦考慮到資料庫平台的可移植性問題,我們在實際的開發中還是應該盡可能的保證數據類型的存儲和聲明的一致性。除非你有極為充分的理由,同時又不再考慮資料庫平台的移植問題,在此種情況下確實可以使用SQLite提供的此種特徵。

3. 使用SQLite如何修改資料庫中的欄位

(1)增加表欄位
<pre>
ALTER TABLE 表名 ADD COLUMN 欄位名 欄位類型
</pre>

例如:
<pre>
ALTER TABLE t_student ADDCOLUMN age ingeter
</pre>

(2)刪除表欄位
<pre>
ALTER TABLE 表名 DROP COLUMN 欄位名 欄位類型
</pre>

(3)修改表欄位
<pre>
ALTER TABLE 表名 RENAME COLUMN 舊欄位名 TO 新欄位名
</pre>

註:考sql語句

4. sqlite資料庫如何插入以及修改date類型的欄位

sqlite資料庫中插入date類型用string類型,如下:
public void insert(String dailyGuid, String dailyCreateDate, String dailyUpdateDate, String dailyContactGuid,

String dailyEmployeeGuid, String dailyContent, String dailyType, String dailyTypeValue,

String dailyEstimateRate, String dailyRealRate, String dailyMemo, String dailyApproval,

String dailyExecuteDate, String dailyRemindSign, String dailyTime, String dailyIsdel){

SQLiteDatabase db=this.getWritableDatabase();

db.execSQL("INSERT INTO TBL_DAILY(dailyGuid, dailyCreateDate, dailyUpdateDate, dailyContactGuid, " +

"dailyEmployeeGuid, dailyContent, dailyType, dailyTypeValue, " +

"dailyEstimateRate, dailyRealRate, dailyMemo, dailyApproval, " +

"dailyExecuteDate, dailyRemindSign, dailyTime, dailyIsdel) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",

new String[]{dailyGuid, dailyCreateDate, dailyUpdateDate, dailyContactGuid,

dailyEmployeeGuid, dailyContent, dailyType, dailyTypeValue,

dailyEstimateRate, dailyRealRate, dailyMemo, dailyApproval,

dailyExecuteDate, dailyRemindSign, dailyTime, dailyIsdel});

}
更新動作如下:
public void update(String dailyGuid, String dailyCreateDate, String dailyUpdateDate, String dailyContactGuid,

String dailyEmployeeGuid, String dailyContent, String dailyType, String dailyTypeValue,

String dailyEstimateRate, String dailyRealRate, String dailyMemo, String dailyApproval,

String dailyExecuteDate, String dailyRemindSign, String dailyTime, String dailyIsdel){

SQLiteDatabase db=this.getWritableDatabase();

ContentValues cv=new ContentValues();

cv.put("dailyGuid", dailyGuid);

cv.put("dailyCreateDate", dailyCreateDate);

cv.put("dailyUpdateDate", dailyUpdateDate);

cv.put("dailyContactGuid", dailyContactGuid);

cv.put("dailyEmployeeGuid", dailyEmployeeGuid);

cv.put("dailyContent", dailyContent);

cv.put("dailyType", dailyType);

cv.put("dailyTypeValue", dailyTypeValue);

cv.put("dailyEstimateRate", dailyEstimateRate);

cv.put("dailyRealRate", dailyRealRate);

cv.put("dailyMemo", dailyMemo);

cv.put("dailyApproval", dailyApproval);

cv.put("dailyExecuteDate", dailyExecuteDate);

cv.put("dailyRemindSign", dailyRemindSign);

cv.put("dailyTime", dailyTime);

cv.put("dailyIsdel", dailyIsdel);

db.update("TBL_DAILY", cv, "dailyGuid=?", new String[]{dailyGuid});

}

public void delete(String dailyGuid){

SQLiteDatabase db=this.getWritableDatabase();

db.delete("TBL_DAILY", "dailyGuid=?", new String[]{dailyGuid});

}

注意:sqlite其中的數據 類型是可以很容易的進行轉換的,提取的時候如果需要可以將String在轉為date類型就可以了。

5. sqlite3怎麼查詢欄位類型

Sqlite v3資料庫中的任何列,除了整形主鍵列,可以用於存儲任何一個存儲列的值。sql語句中的中所有值,不管它們是嵌入在sql文本中或者是作為參數綁定到一個預編譯的sql語句,它們的存儲類型都是未定的。在下面描述的情況中,資料庫引擎會在查詢執行過程中在數值(numeric)存儲類型(INTEGER和REAL)和TEXT之間轉換值。
1.1布爾類型
Sqlite沒有單獨的布爾存儲類型,它使用INTEGER作為存儲類型,0為false,1為true

1.2 Date和Time Datatype
Sqlite沒有另外為存儲日期和時間設定一個存儲類集,內置的sqlite日期和時間函數能夠將日期和時間以TEXT,REAL或INTEGER形式存放
l TEXT 作為IS08601字元串("YYYY-MM-DD HH:MM:SS.SSS")
l REAL 從格林威治時間11月24日,4174 B.C中午以來的天數
l INTEGER 從 1970-01-01 00:00:00 UTC以來的秒數