SQLITE(數據庫)
數據庫
簡介
數據庫(Database)按照數據結構來組織、存儲和管理數據的倉庫,目前市面上常有的數據庫有:SQL Server、Oracle、MySQL(小型數據庫)、DB2(大型數據庫)。
而我們的SQLITE它是一款非常輕量級別的關系數據庫系統,SQLite在使用前不需要安裝設置,不需要進程來啟動、停止或者配置。主要使用于手機應用的數據庫以及小型桌面軟件的數據庫。
SQLITE下載
SQLite命令功能簡介
命令 | 作用 |
---|---|
.database | 列出數據庫文件名 |
.tsbles %PATTERN% | 列出?PATTERN?匹配的表名 |
.import FILE TABLE | 將文件中的數據導入的文件中 |
.dump 需要被生成腳本的表名 | 生成形成數據庫表的sql腳本 |
.output FILENAME | 將輸出導入指定的文件中 |
.output stdout | 將輸出打印到屏幕 |
.mode MODE 表名 | 設置數據輸出模式(csv,html,tcl…) |
.nullvalue STRING | 用指定的字符串代替NULL串 |
.read FILENAME | 執行指定文件中的SQL語句 |
.schema 表名 | 打印創建數據庫表的SQL語句 |
.separator STRING | 用指定的字符串代替字段分隔符 |
.show | 打印所有的SQLite環境變量的設置 |
.quit | 退出命令行接口 |
實際操作
- 數據庫的建立
- 數據庫進入
SQLite數據類型
數據類型 | 作用 | 例子 |
---|---|---|
NULL | 表示值為NULL | NULL |
INTEGER | 整型值 | 1或者300之類的 |
REAL | 浮點值 | 23.3之類 |
TEXT | 文本字符串,默認編碼格式為:UTF-8、UTF-16BE、UTF-16LE | 23.3之類 |
布爾類型 | SQLite并沒有提供專門的布爾存儲類型,取而代之的是存儲整型1表示true,0表示false | |
日期和時間 | 和布爾類型一樣,SQLite也同樣沒有提供專門存儲日期或者時間類型,而是以TEXT、REAL和INTEGER類型分別不同格式表示該類型,如:1、TEXT:”YYYY-MM-DD HH:MM:SS.SSS” 2、REAL 以Julian日期格式存儲 3、INTEGER:以Unix時間形式保存數據值,即從1900-01-01 00:00:00到當前時間所流經的秒。 |
語法使用##
ALERT 不支持列的重命名,刪除和修改
作用 | 語法 |
---|---|
增加列 | ALERT TABLE 表名 ADD column 列名 列的數據類型 |
修改表名 | ALERT TABLE 表名 RENAME TO 新表名 |
刪除表 | DROP TABLE 表名 |
創建表 | CREATE TABLE 表名(列名1 數據類型,列明2 數據類); |
插入數據 | INSERT INTO TABLE 表名(列名1 數據類型,列明2 數據類) VALUESE(值1 數據類型符合列,’值2 字符串使用’); |
查詢數據 | SELECT * FROM 表名 可追加條件查詢,不帶就是查所有 |
修改數據 | UPDATE 表名 SET 要修改的列名1=修改后的值 可加條件,不加修改所有 |
刪除數據 | DELETE FROM 表名 可追加條件,不追加,刪除全部 |
模糊查詢 | SELECT * FROM 表名 WHERE 需要模糊查詢的列 LIKE ‘e%’; 這里舉例e字符打頭的 |
刪除列
本數據庫沒有,提供此方法。但是可以自己寫代碼刪除。
- 建立一個新的表中的列和你要刪除的表相同,但不包含要刪除的列!!
- 把要刪除的表中的數據復制到新表中,但是不包含要刪除的表
刪除老表,把新表的名字改成老表
代碼實現
CREATE TABLE USETWO AS SELECT 要不復制的列 FROM 舊表名(
NUMBER INTEGER,
.............
);
DROP TABLE 舊表名;
ALERT TABLE USETWO RENAME TO 新表名
系統函數
函數 | 語法 |
---|---|
order by 被排序的列名 asc(默認降序)或者desc(升序) | SELECT * FROM 表名 order by 被排序的列 desc 根據需求升降 |
》 < 、 <= 、 >=、 = 、 <> | 大于、 小于 、大于(小于)等于 、不等于 |
BETWEEN 條件1 AND 條件二 | 取值這二個條件中的值,包含頭尾 |
IN(值) | 匹配符合,括號里面的值 例:IN(200,100); |
LIKE ‘張%’ | 模糊查詢 匹配此列第一個字符是張的 |
IS NULL | 判斷是否為空 |
AND | 多個條件同時成立 |
OR | 多個條件,任意成立 |
NOT | 取不成立的 例子:WHERE NOT (0>100); |
表約束
一般約束
作用 | 約束 |
---|---|
定義唯一約束 | unique 唯一,只能有一個 |
定義非空約束 | not null 不能為空 |
定義范圍約束 | check |
定義默認約束 | default 默認有值 |
其他約束
作用 | 約束 |
---|---|
主鍵約束 | PRIMARY KEY 加在那列,此列中的值就只能是唯一的 |
外鍵約束 | sqlite 默認關閉了外鍵,可通過PRAGMA foreign_keys=ON; 開啟 |
外鍵,在建表時創建 | CREATE TABLE 從表名(列名 數據類型,FOREIGN KEY(從表的列)REFERENCES 主表(主標列) ); |
智能推薦
數據庫SQLite<一>
一、SQLite數據庫簡介 SQLite第一個Alpha版本誕生于2000年5月,它是一款輕量級數據庫,它的設計目標是嵌入式的,占用資源非常的低,只需要幾百K的內存就夠了。SQLite已經被多種軟件和產品使用,Mozilla FireFox就是使用SQLite來存儲配置數據的,Android和iPhone都是使用SQLite來存儲數據的。 二、Android中如何使用SQLite 1. 使用SQL...
《Python》《SQLite》Python連接SQLite數據庫,讀表
配置Python環境的方法在我的博客中已經詳細介紹。 一、SQLite和PySQLite 在最近的Python版本中(從2.5開始),SQLite的優勢在于它的一個包裝(PySQLite)已經被包括在標準庫內。SQLite在Python中的模塊名稱為“sqlite3”,我們可以在...
《SQLite》最輕巧的數據庫SQLite——初探
文章目錄 一、SQLite概念及優點 二、SQLite圖形化管理工具——SQLite Expert Professional 三、SQLite基礎語言 1、創建數據庫 2、刪除數據庫 3、創建表 4、刪除表 5、表操作語句 一、SQLite概念及優點 概念: SQLite是一款嵌入式數據庫,和Oracle、Mysql、DB2等數據庫不同,比如Oracle它是與程序分離的,而...
Android數據庫 之 SQLite數據庫
2019獨角獸企業重金招聘Python工程師標準>>> 每個應用程序都要使用數據,Android應用程序也不例外,Android使用開源的、與操作系統無關的SQL數據庫—SQLite。 SQLite第一個Alpha版本誕生于2000年5月,它是一款輕量級數據庫,它的設計目標是嵌入式的,占用資源非常的低,只需要幾百K的內存就夠了。 SQLite已經被多種軟件和產品使用,...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...