SQLite 中文指南之FAQ第1/6頁_數據庫文摘

來源:腳本之家  責任編輯:小易  

Sqlite分很多種,windows和linux下的sqlite數據庫不一樣,所以要先說清楚平臺。如果是windows下使用原版的Sqlite,C#和Delphi之類調用Sqlite的密碼都是可以破解的。你可以搜 Charltsing,在博客園找我www.anxorj.tw防采集請勿采集本網。

1. 如何創建自增字段?

2. SQLite 支持哪些數據類型?

這個是改為GBK的啦,不是那個UTF-8

3. 為什么能向 SQLite 數據庫的整型字段中插入字符串?

SQLite庫包含一個名字叫做sqlite3的命令行,它可以讓用戶手工輸入并執行面向SQLite數據庫的SQL命令。本文檔提供一個樣使用sqlite3的簡要說明。開始 啟動sqlite3程序,僅僅需要敲入帶有SQLite數據

4. 為什么 SQLite 認為表達式 '0'=='00' 為真?

方法/步驟 首先下載 Navicat for SQLite,下載后解壓縮。運行navicat.exe 這個主程序,在左上角點擊連接 在彈出窗口中輸入連接名,選擇類型,然后在下面選擇數據庫文件,或者數據庫保存位置。

5. 為什么 SQLite 不允許在同一張表里使用 '0' 和 '0.0' 作為兩個不同的行的主鍵?

SQLite是文件型數據庫,有命令行的工具sqlite3.exe(window版本),有第三方的GUI工具(如Database Browser,SQLiteman.);但更常見的使用方式是在你的應用程序或腳本中通過相應的接口訪問。

6. 為什么不能在 Linux box 中讀取在 SparcStation 中創建的 SQLite 數據庫?

between指的一個范圍,如從1到10 in是指的一個集合,如(1,5,7),即數字 1,5,7

7. 多個應用程序或者同一個應用程序的多個例程能同時存取同一個數據庫文件嗎?

8. SQLite是線程安全的嗎?

9. 如何列出一個 SQLite 數據庫中的所有的表/索引?

10. SQLite數據庫是否有已知的大小限制?

11. 在 SQLite 中 VARCHAR 的最大長度是多少?

12. SQLite 是否支持 BLOB 類型?

13. 如何從一個已存在的 SQLite 數據表中添加/刪除字段?

14. 我刪除了很多數據但是數據庫文件并沒有減小,是不是 Bug?

15. 是否能將 SQLite 用于商業用途而不用交版權費用?

16. 我如何使用含有單引號(')的字符串?

17. SQLITE_SCHEMA 錯誤代表什么?

18. 為什么ROUND(9.95,1) 返回 9.9 而不是 10.0? 難道9.95 不該向上進位么?

(1) 如何創建自增字段?

簡單的回答:一個聲明為 INTEGER PRIMARY KEY 的字段將自動增加。

這里是詳細的答案: 從 SQLite 的 2.3.4 版本開始,如果你將一個表中的一個字段聲明為 INTEGER PRIMARY KEY,那么無論你何時向該表的該字段插入一個 NULL 值,這個 NULL 值將自動被更換為比表中該字段所有行的最大值大 1 的整數;如果表為空,那么將被更換為 1。比如,假設你有這樣的一張數據表:

CREATE TABLE t1(

a INTEGER PRIMARY KEY,

b INTEGER

);

在這張數據表里,聲明

INSERT INTO t1 valueS(NULL,123);

在邏輯意義上等價于:

INSERT INTO t1 valueS((SELECT max(a) FROM t1)+1,123);

一個新的API函數 sqlite3_last_insert_rowid() 返回最近的插入操作的整形鍵

注意這個整型鍵始終比之前插入表中的最后一個鍵大1。新鍵相對于表中的已有鍵來說是唯一的, 但它可能與之前從表中刪除的鍵值重疊。要始終得到在整個表中唯一的鍵,在INTEGER PRIMARY KEY的聲明之前加關鍵詞AUTOINCREMENT.這樣被選的鍵將總是比表中已存在的最大鍵大1。若可能的 最大鍵已存在于表中,INSERT操作將失敗并返回一個SQLITE_FULL錯誤碼.

(2) SQLite 支持哪些數據類型?

參見 http://www.sqlite.org/datatype3.html.

(3) 為什么能向 SQLite 數據庫的整型字段中插入字符串?

這是一個功能,不是一個 bug。你可以在任何字段中放任何信息,而不用管字段聲明為什么類型。 你可以往整型字段中插入任意長度的字符串,或者往布爾字段中插入浮點數,或者往字符字段中 插入日期。在 CREATE TABLE 命令中你指定給這個字段的數據類型不會限制插入這個字段的數據。 所有的字段可以插入任意長度的字符串。但對于 INTEGER PRIMARY KEY 字段例外。這種字段只能 存放一個64位的整數,否則會出錯。

但SQLite會默認你希望使用聲明的字段類型。所以,比如你希望在一個聲明為INTEGER的字段 中插入一個字符串,SQLite會試圖將其轉換為一個整數。如果轉換成功,那么整數將被插入,否 則插入字符串,這種特性有時被稱作type or column affinity.

123456下一頁閱讀全文

Sqlite默認保存數據是用UTF8格式,而現有程序開發工具都是默認GB2312的格式,所以你編程寫的中文不轉碼直接寫到庫里后,用任何數據庫工具看肯定都是亂碼。但是讀出來之后仍然是GB2312,所以顯示正常。反之如果你用數據庫工具寫中文,則默認存UTF8格式,用程序讀出來就是亂碼。也就是你說的不可兼得。如果要實現能夠編程和數據庫工具讀寫都正常,必須要轉碼。也就是說,保存時候,要把GB2312轉成UTF8,而讀出時候需要把UTF8在轉成GB2312。網上有源程序可用,叫做CCodingConv的類,你搜一個源碼,在每次執行SQL語句之前,將其轉換一下即可。將整個SQL語句進行轉換,E文的會保持不變,而中文的會自動轉換成合適的編碼,執行即可實現要求內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • android開發之sqlite的使用方法
  • sqlite中的b-tree實現細節分析
  • sqlite中文亂碼問題原因分析及解決
  • sqlite3中的日期時間函數使用小結
  • sqlite3 top的查詢及limit語法介紹
  • sqlite優化方法
  • sqlite 常用函數 推薦
  • sqlite 錯誤碼整理
  • sqlite常用語句以及sqlite developer的使用與注冊
  • sqlite中的b-tree實現細節分析
  • 數據庫連接方式匯總
  • @@identity與scope_identity()
  • 比較sql server與oracle、db2
  • sqlite 中文指南之faq
  • SQlite中文問題!誰有完美解決方案?
  • 怎樣破解sqlite數據庫的密碼?
  • eclipse顯示SQLite數據庫中文問題
  • 如何是使用firefox sqlite
  • eclipse如何顯示SQLite數據庫中文問題
  • sqlite的幾個常用方法
  • 如何創建sqlite數據庫
  • 如何使用SQLite
  • sqlite between 和 in 的區別
  • SQLite數據庫優缺點分析你會不?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁數據庫文摘android開發之sqlite的使用方法sqlite中的b-tree實現細節分析sqlite中文亂碼問題原因分析及解決sqlite3中的日期時間函數使用小結sqlite3 top的查詢及limit語法介紹sqlite優化方法sqlite 常用函數 推薦sqlite 錯誤碼整理sqlite常用語句以及sqlite developer的使用與注冊sqlite中的b-tree實現細節分析數據庫連接方式匯總@@identity與scope_identity()比較sql server與oracle、db2sqlite 中文指南之faqsqlite 中文指南之faq數據庫連接方式匯總比較sql server與oracle、db2sqlite中的b-tree實現細節分析@@identity與scope_identity()比較sql server與oracle、db2數據庫連接方式匯總@@identity與scope_identity()sqlite 中文指南之faqsqlite中的b-tree實現細節分析
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载