QT操作sqlite概念
SQLite數據庫 '增、刪、改、查'
1. 數據庫簡介
?數據庫指的是以一定方式存儲在一起,能為多個用戶共享,具有盡可能小的冗余度的特點,是與應用程序彼此獨立的數據集合。
?// 一定方式:可以理解為策略、算法
?// 網盤相同的文件是以 MD5 碼的形式標記相同的文件,以網絡共享。
2. 和數據相關的術語
?DBMS?'數據庫管理系統'
?DBA??'數據庫管理員'
?DB??'數據庫'
?RDB??'關系型數據庫'
?RDBMS?'關系型數據庫管理系統'
3. 數據分類
?層次型數據庫 - 有序二叉樹,現在用的少
?網絡型數據庫 - 網狀結構,用的也少
?關系型數據庫 - '二維表格形式',現在普遍使用的。
4. 常見數據庫
?商業數據庫:
??- 甲骨文?Oracle?, 市場占有率 50%
??-?IBM?DB2 , 市場占有率 20%
??- 微軟?Sqlserver?, 市場占有率 15%
?非商業數據庫:
??- Sun Mysql ---> 被Oracle收購,甲骨文旗下產品
??- 開源SQLite,輕量級嵌入式領域關系型數據庫
5. 數據庫的操作語言
?'SQL'? 結構化查詢語言
?是一種特殊目的的編程語言,實現數據庫的查詢和程序設計,常用于關系型數據庫系統,實現數據增、刪、改、查等操作。
三、SQLite 數據庫的操作
1. 安裝
?在線安裝?$:?sudo apt-get install sqlite3
?離線安裝
?$:?sudo dpkg -i /home/tarena/Downloads/sqlite3/sqlite3_3.7.9-2ubuntu1.2_amd64.deb
2. 在終端輸入?sqlite3?,進入sqlite命令行操作界面
?$:?sqlite3
?SQLite version 3.7.9 2011-11-01 00:52:41
?Enter ".help" for instructions
?Enter SQL statements terminated with a ";"
?sqlite>
?sqlite>
?...
3. sqlite指令?instructions?指令
?.help??// 幫助手冊,列出所有sqlite所有幫助信息
?.quit??// .e 或 .exit 退出
?Ctrl + L?// 實現清理屏幕
?;???// 英文分號代表sqlite語句命令結束,回到正常sqlite命令行
四、在命令行使用SQL語句操作sqlite數據庫
1. 創建數據庫文件(DB)
?$:?sqlite3 DatabaseName.db
?創建成功后,會自動進入sqlite命令行的界面"?sqlite>?"
?eg:
?$: sqlite3 testDB.db? // 打開名為testDB的數據文件,不存在則創建
2. 輸入"?.database?" 查看數據庫文件信息
?seq?// 序號
?name?// 數據庫名
?file?// 數據庫文件名
?文件權限:- rw- r-- r--
3. 創建數據表? ?'語法'
?CREATE TABLE table_name (
?????列名1? 類型1? [約束],
?????列名2? 類型2? [約束],
?????...);
?【注】sql語句中不區分大小寫,習慣把'關鍵字'(create table)寫成大寫
?eg:
??創建一個公司員工信息表company,
??列包含:ID、姓名、年齡、地址、薪資
?sqlite>?CREATE TABLE company(
?...> id INT PRIMARY KEY NOT NULL,
?...> name TEXT NOT NULL,
?...> age INT NOT NULL,
?...> address TEXT,
?...> salary REAL NOT NULL);
?sqlite>?.table???????---> '? .table? '?// 查看表的名字?.ta
?company
?sqlite>?.schema??????---> '? .schema? '?// 查看創建表詳細信息?.sc
?CREATE TABLE company(
?id INT PRIMARY KEY NOT NULL,
?name TEXT NOT NULL,
?age INT NOT NULL,
?address TEXT,
?salary REAL NOT NULL);
?'[約束]':
??PRIMARY KEY???// 主鍵約束,數據唯一,并且可以加快數據訪問
??NOT NULL????// 非空,限制插入數據不能為空
?'類型關鍵字':
??INT??整型
??TEXT?文本字符串
??REAL?浮點數
練習:
?創建學生成績的數據表
?表名:Student
?列名:ID(INT)? NAME(TEXT)? SCORE(REAL)
?要求ID唯一,每一列的數據非空。
?sqlite>?create table Student(
?? ...> ID INT PRIMARY KEY NOT NULL,
?? ...> NAME TEXT NOT NULL,
?? ...> SCORE REAL NOT NULL);
4. 刪除數據庫表? '語法'
?DROP? TABLE? 表名;
?eg:
?DROP TABLE Student;
?將Student表刪除,里面的數據也會被刪除,且數據恢復比較困難。
5. 插入數據 '語法'
?INSERT? INTO?? 表名
????(列名1, 列名2, 列名3...)
????VALUES(數據1, 數據2, 數據3...);
?eg:向company表中插入數據
??10086?"張飛"?30歲??"四川"? 800.5
??10011?"關羽"?31歲??801.5
?INSERT INTO company
????(id, name, age, address, salary)
????VALUES(10086, "張飛", 30, "四川", 800.5);
?INSERT INTO company
????(id, name, age, salary)
????VALUES(10011, "關羽", 31, 800.5);
6. 查詢數據 '語法'
?select * from company;
?eg:
?sqlite>?select * from company?;
?10011|關羽|31|成都|801.5
?10011|關羽|31|成都|801.5
?10086|張飛|30|四川|800.5
?10000|曹操|35||999.9
?10002|劉備|34|河南|855.5
?10013|關興|28|湖南|600.5
?10015|劉禪|18|北京|300.0
?10014|曹植|16|廣東|1200.5
?10008|趙云|26|上海|888.8
7. 刪除數據 '語法'
?DELETE FROM?表名?WHERE?[條件]??// 一般使用唯一屬性進行匹配刪除
?eg:// 比如 id
?DELETE FROM company WHERE id = 10000; ?
8. 修改數據 '語法'
?UPDATE?表名?SET?列名1 = 數值1, 列名2 = 數值2...??WHERE [條件];??
?// 一般使用唯一屬性進行匹配修改單條信息
?eg:
?UPDATE company SET age= 26 WHERE id= 10014;
?UPDATE company SET address= "上海" WHERE id < 10014;????
?// 算數:+ - * / %?? 比較:==? =? !=? <> >? <? >=? <=? !<? !>
?// 邏輯:AND? BETWEEN? EXISTS? IN? LIKE
?// 邏輯:GLOB? NOT? OR? IS? UNIQUE
9. 查詢數據 '語法'
?// 所有列,可以用 * 替換
?SELECT? 列名1, 列名2, 列名3...??FROM?? 表名;
?SELECT? 列名1, 列名2, 列名3...??FROM?? 表名 WHERE [條件];
?SELECT? 列名1, 列名2, 列名3...??FROM?? 表名 WHERE [條件]
????ORDER BY?列名??ASC/DESC?;??? // ASC 升序,DESC 降序
?eg:
?SELECT id, name FROM company;
?SELECT id, name FROM company WHERE id > 10014;
?SELECT * FROM company WHERE salary < 1000;
?SELECT id,name FROM company ORDER BY id ASC;
10. 擴充SQLite數據庫操作,了解命令:?LIKE? /?LIMIT? /??DISTINCT
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的QT操作sqlite概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt中数据库操作总结
- 下一篇: Mybatis 中更新方法: updat