计算机网络:数据库(sqlite3)

一、常用的数据库

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;

  1. 范围 between ... and ...

select * from stu where age between 19 and 20;

  1. like

select * from stu where name like "tom";

select * from stu where name like "%tom%"; //% 表示匹配任意多个字符

select * from stu where name like "tom"; //_ 表示匹配任意一个字符

  1. 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