Linux学习笔记——数据库
一、數(shù)據(jù)庫簡介
1.數(shù)據(jù)data
????????能夠輸入計算機并能被計算機程序識別和處理的信息集合
2.數(shù)據(jù)庫Database
? ? ? ? 數(shù)據(jù)庫是在數(shù)據(jù)庫管理系統(tǒng)管理和控制之下,存放在存儲介質上的數(shù)據(jù)集合
3.文件管理和數(shù)據(jù)庫管理的區(qū)別
文件優(yōu)點:
? ? ? ? 數(shù)據(jù)可長期保存
? ? ? ? 能大量存儲數(shù)據(jù)
文件缺點:
? ? ? ? 數(shù)據(jù)冗余度大,數(shù)據(jù)一致性、完整性難以維持
? ? ? ? 數(shù)據(jù)與程序缺乏高度獨立性
數(shù)據(jù)庫:
? ? ? ? 數(shù)據(jù)組織結構化
? ? ? ? 數(shù)據(jù)冗余度小,易擴充
? ? ? ? 具有較高的數(shù)據(jù)與程序之間的獨立性
? ? ? ? 統(tǒng)一的數(shù)據(jù)控制
二、SQLite3
安裝數(shù)據(jù)庫
? ? ? ? sudo apt-get install sqlite3
打開數(shù)據(jù)庫
????????sqlite3
數(shù)據(jù)庫命令
? ? ? ? .help:打開數(shù)據(jù)庫幫助文檔
? ? ? ? .databases:列出數(shù)據(jù)庫名稱及其依附文件
? ? ? ? .tables:顯示數(shù)據(jù)庫有哪些表
? ? ? ? .schema:顯示數(shù)據(jù)庫中表具體結構
? ? ? ? .quit:退出數(shù)據(jù)庫
SQLite3語法
SQLite3數(shù)據(jù)類型
????????SQLite 數(shù)據(jù)類型是一個用來指定任何對象的數(shù)據(jù)類型的屬性。SQLite 中的每一列,每個變量和表達式都有相關的數(shù)據(jù)類型。
您可以在創(chuàng)建表的同時使用這些數(shù)據(jù)類型。SQLite 使用一個更普遍的動態(tài)類型系統(tǒng)。在 SQLite 中,值的數(shù)據(jù)類型與值本身是相關的,而不是與它的容器相關。
| NULL | 值是一個 NULL 值。 |
| INTEGER | 值是一個帶符號的整數(shù),根據(jù)值的大小存儲在 1、2、3、4、6 或 8 字節(jié)中。 |
| REAL | 值是一個浮點值,存儲為 8 字節(jié)的 IEEE 浮點數(shù)字。 |
| TEXT | 值是一個文本字符串,使用數(shù)據(jù)庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲。 |
| BLOB | 值是一個 blob 數(shù)據(jù),完全根據(jù)它的輸入存儲。 |
SQLite 的存儲類稍微比數(shù)據(jù)類型更普遍。INTEGER 存儲類,例如,包含 6 種不同的不同長度的整數(shù)數(shù)據(jù)類型。
?SQLite3創(chuàng)建表
例:CREATE TABLE database_name.table_name(column1 datatype PRIMARY KEY(one or more columns),column2 datatype,column3 datatype,.....columnN datatype, );?創(chuàng)建操作: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?語句用于向數(shù)據(jù)庫的某個表中添加新的數(shù)據(jù)行
????????全部插入:sqlite> insert into stu values(1,'zhangsan',78);
????????部分插入:sqlite> insert into stu (id,name)要插入的列名??values(2,'lisi')對應列的數(shù)據(jù);
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
打開數(shù)據(jù)庫函數(shù)
????????sqlite3_open(const char *filename, sqlite3 **ppDb)
? ? ? ? //參數(shù)1:數(shù)據(jù)庫名
????//sqlite3_exec(sqlite3 *db),
?? ?//參數(shù)1:句柄的指針
?? ?//參數(shù)2:sql語句
?? ?//參數(shù)3:回調函數(shù) ? 函數(shù)指針 ? //參數(shù)3.4 查詢的時候用,其他時候可以忽略
?? ?//參數(shù)4:給回調函數(shù)傳參
?? ?//參數(shù)5:存儲錯誤信息,不存則NULL
?? ?//返回值:失敗返回0,成功返回
Select
3.sqlite3_get_table
4.sqlite_close
????????
總結
以上是生活随笔為你收集整理的Linux学习笔记——数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PS教程---如何绘制噪点插画
- 下一篇: 网站配色,CSS主色调配色方案