Linux学习笔记——数据库
一、數據庫簡介
1.數據data
????????能夠輸入計算機并能被計算機程序識別和處理的信息集合
2.數據庫Database
? ? ? ? 數據庫是在數據庫管理系統管理和控制之下,存放在存儲介質上的數據集合
3.文件管理和數據庫管理的區別
文件優點:
? ? ? ? 數據可長期保存
? ? ? ? 能大量存儲數據
文件缺點:
? ? ? ? 數據冗余度大,數據一致性、完整性難以維持
? ? ? ? 數據與程序缺乏高度獨立性
數據庫:
? ? ? ? 數據組織結構化
? ? ? ? 數據冗余度小,易擴充
? ? ? ? 具有較高的數據與程序之間的獨立性
? ? ? ? 統一的數據控制
二、SQLite3
安裝數據庫
? ? ? ? sudo apt-get install sqlite3
打開數據庫
????????sqlite3
數據庫命令
? ? ? ? .help:打開數據庫幫助文檔
? ? ? ? .databases:列出數據庫名稱及其依附文件
? ? ? ? .tables:顯示數據庫有哪些表
? ? ? ? .schema:顯示數據庫中表具體結構
? ? ? ? .quit:退出數據庫
SQLite3語法
SQLite3數據類型
????????SQLite 數據類型是一個用來指定任何對象的數據類型的屬性。SQLite 中的每一列,每個變量和表達式都有相關的數據類型。
您可以在創建表的同時使用這些數據類型。SQLite 使用一個更普遍的動態類型系統。在 SQLite 中,值的數據類型與值本身是相關的,而不是與它的容器相關。
| NULL | 值是一個 NULL 值。 |
| INTEGER | 值是一個帶符號的整數,根據值的大小存儲在 1、2、3、4、6 或 8 字節中。 |
| REAL | 值是一個浮點值,存儲為 8 字節的 IEEE 浮點數字。 |
| TEXT | 值是一個文本字符串,使用數據庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲。 |
| BLOB | 值是一個 blob 數據,完全根據它的輸入存儲。 |
SQLite 的存儲類稍微比數據類型更普遍。INTEGER 存儲類,例如,包含 6 種不同的不同長度的整數數據類型。
?SQLite3創建表
例:CREATE TABLE database_name.table_name(column1 datatype PRIMARY KEY(one or more columns),column2 datatype,column3 datatype,.....columnN datatype, );?創建操作:create table stu (id int primary key not null,name text,score real);
主鍵(primary key not null)必須唯一,不能重復,并且不能為空
SQLite3刪除表
? ? ? ? 刪除操作:drop table stu;
????????
SQL語句(增刪查改)
insert
????????SQLite 的?INSERT INTO?語句用于向數據庫的某個表中添加新的數據行
????????全部插入:sqlite> insert into stu values(1,'zhangsan',78);
????????部分插入:sqlite> insert into stu (id,name)要插入的列名??values(2,'lisi')對應列的數據;
select
? ? ? ? 查詢表:select * from stu;//表名:stu
? ? ? ? 精準查詢:select * from stu where name = 'zhangsan';//查詢名字為張三的
? ? ? ? 模糊查詢:select * from stu where score >?75;//查詢成績大于75的
? ? ? ? 多條件查詢:select * from stu where score > 60 and name = 'zhangsan';
? ? ? ? 升序查詢:select * from stu order by score asc;//asc升序
? ? ? ? 降序查詢:select * from stu order by score desc;//desc降序
update
? ? ? ? 修改:update stu set score = 66 where name = 'wang';//將姓名為wang的成員成績改為66;where后的內容為要修改的對象,where前表示要修改的內容
? ? ? ? 修改:update stu set name = 'wang',score = 69 where id = 4;//將id為4的成員的name和score的內容修改;
delete
????????SQLite 的?DELETE?查詢用于刪除表中已有的記錄。可以使用帶有 WHERE 子句的 DELETE 查詢來刪除選定行,否則所有的記錄都會被刪除。
? ? ? ? ?刪除單行:delete from stu where id = 5;//刪除id為5的整行
? ? ? ? 刪除多行:delete from stu where id = 5 and name = 'zhangsan';
alter
????????用來在已有的表中添加一個新的列
? ? ? ? 添加一列:alter table stu add column address text;//添加一列名為address,屬性為text的列
????????
c接口SQLite3
打開數據庫函數
????????sqlite3_open(const char *filename, sqlite3 **ppDb)
? ? ? ? //參數1:數據庫名
????//sqlite3_exec(sqlite3 *db),
?? ?//參數1:句柄的指針
?? ?//參數2:sql語句
?? ?//參數3:回調函數 ? 函數指針 ? //參數3.4 查詢的時候用,其他時候可以忽略
?? ?//參數4:給回調函數傳參
?? ?//參數5:存儲錯誤信息,不存則NULL
?? ?//返回值:失敗返回0,成功返回
Select
3.sqlite3_get_table
4.sqlite_close
????????
總結
以上是生活随笔為你收集整理的Linux学习笔记——数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PS教程---如何绘制噪点插画
- 下一篇: linux 导出数据库数据或者表结构