一、常用的數據庫
ORACLE(大型)、Mysal(開源常用)、SQL server、Access、Sybse、Windows NT
二、sqlite3
(一)特性:
????????<1>零配置,無需安裝和配置
<2>儲存在單一磁盤文件中的一個完整的數據庫
<3>數據庫文件可以在不同字節順序的機器間自由共享
<4>支持數據庫大小之2TB
<5>足夠小,全部源代碼大致3萬行C代碼,250KB
<6>比目前流行的大多數數據庫對數據的操作要快
(二)基礎命令
? ? ? ? 1.??.help ---查看 sqlite3的支持的相關命令?
.quit ---退出sqlite3 軟件?
.databases --- 查看當前關聯的數據庫文件 是哪個?
? ? ? ? 2.增
? ? ? ? ? ? ? ? 創建表:create table <表名> (字段1 數據類型,字段2,.....);?
??????????????????????????????create table user (name,sex,age,tel);
? ? ? ? ? ? ? ? ?命令: sqlite3> .tables ?//查看數據庫中表有哪些
sqlite3> .schema ? //查看表的結構
?????????????????????????????PRIMARY KEY ?//主鍵 ? ---- ?唯一來區分一個數據
? ? ? ? ? ? ? ? 插入:insert into 表名 values ("tom","male",19,99.5);
???????????????????????????insert into stu (name,sex) values ("jack","male");
? ? ? ? ? ? ? ? 時間列:CREATE TABLE user1(id int,name char,age int,dt datetime);
insert into user1 values (2,'張三',23,datetime('now','+8 hours'));
? ? ? ? ? ? ? ? 自動增長列:?? ?asc ?-- 升序?????????desc -- 降序?
?????????????????? ?????????????????create table user5 (id INTEGER PRIMARY KEY ASC,name char, age int);?
PRIMARY KEY //主鍵?
ASC ? ? ? ? //自動增長的順序?
//int 需要寫成 INTEGER 才能實現自動增長?
create table user4 (id int ? PRIMARY KEY ASC,name char, age int);
? ? ? ? 3.刪
?????????????????刪除記錄:delete from 表名 where 條件;
刪除表:drop table 表名稱;
????????????????? 條件語句:where 列名 操作符 列值
update stu set sno=110 where name="tom";
? ? ? ? 4.改
? ? ? ? ? ? ? ? ? 添加字段:alter table 表名 add 列名????????alter table stu add sno;
????????????????? 修改表中的數據:update 表名 set 列1=值1 [, 列2 = 值2, ...] [匹配條件];
? ? ? ? 5.查
????????????????? ?select 列名1,列名2,... from 表名;?
select * from stu; //表示查看 stu表中所有列的信息?
sqlite3 命令:
.headers on //打開表頭?
.mode column //指定查詢的輸出格式 以列對齊的方式
????????????????? 查詢:
1.查詢部分字段?
select name from stu where score>80;
2.in語句?
select * from stu where age in(18,19);
3.and語句 //多個條件 ?
select * from stu where age > 18 and score > 80;
4.or語句?
select * from stu where age > 18 or score > 80;
5. 范圍 ?between ... and ...?
select * from stu where age between 19 and 20;
6. like?
select * from stu where name like "tom";
select * from stu where name like "%tom%"; ?//% 表示匹配任意多個字符?
select * from stu where name like "_tom_"; ?//_ 表示匹配任意一個字符
7. order by
select * from user where age >= 18 order by age; ?
select * from user where age >= 18 order by age limit 2;?
三、sqlite編程
(一)打開:sqlite3_open
(二)讀寫:sqlite3_exec
(三)關閉:? ?sqlite3_close