数据库 -- sqlite3
一、数据库的定义
数据库是一个有结构、有集合、可共享的统一管理的数据集合。DataBase:简称DB。
二、数据库的特点
1. 实现数据共享
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
2. 减少数据的冗余度
减少了数据冗余,保持了数据的一致性。
3. 保持数据的独立性
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
4. 故障恢复
可以及时发现故障和修复故障,从而防止数据被破坏。
三、数据库的分类
数据库一般分为4类,包括层次式数据库、网络式数据库、关系式数据库和面对对象数据库。
1. 层次数据模型
层次结构模型实质上是一种有根结点的定向有序树。它是以记录类型为结点,以结点间联系为边的有序树,数据结构为有序树或森林。
2. 网状数据模型
网状模型用网状结构表示实体及其之间的联系,网中结点之间的联系不受层次限制,可以任意发生联系。
3. 关系数据模型
关系数据模型是按二维表格形式结构来表示实体。
4. 面向对象模型
面向对象数据库模型使用面向对象技术来表示信息世界的实体类型及实体之间联系。
四、数据库产品
数据库的产品包括Oracle、SQL Server、DB2、Access、MySQL 、SQLite3等。
五、sqlite3数据库的使用
这里用的是Linux平台下的数据库 -- sqlite3。
1. 进入数据库
命令:sqlite3 test.db
首先这里创建了一个名为test.db的数据库,并进入数据库。
2. 创建表
命令:create table student(ID integer, name text, sex text, primary key (ID));
创建了一个名为student的表,主键为ID,候选键有name、sex。
创建表的时候不想重复,则在table后面加上if not exists。
主键:用于区分对象,不能重复。
3. 删除表
命令:drop table student;
4. 插入数据
命令:insert into student values (1 , ‘zheng’ , ‘man’);
如果要插入其中一些信息,则改为insert into student (name) values (‘zheng’);
5. 查询表
命令:select * from student; 查询所有记录
select ID from student where name = ‘zheng’; 查询单条信息
如果要排序的话,order by score asc -> 升序,order by score desc -> 降序。
6. 修改记录
命令:update student set age = 20 where name = ‘zhang’;
其中where代表修改的条件。
7. 删除记录
命令:delete from student where ID = 1;
8. 退出数据库
.q 或者 .exit 都可以退出数据库。
9. 其它命令
.head on 显示候选键
.mode column 分开列
.schema student 查看状态
以上命令是在sqlite3数据库里直接进行操作的。