数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据;
(1)所谓有结构的,指的是数据是按一定的模型组织起来的。数据模型可用数据结构来描述。数据模型决定数据的组织方式、操作方法。现在的数据库多数是以关系模型来组织数据的。可以简单地把关系模型的数据结构-关系理解成为一张二维表。
(2)所谓集成的,是指数据库中集中存放着企业各种各样的数据。
集中存放的好处是:一个数据只需一个备份,重复存储少,即消除了数据的冗余。没有数据冗余,也就能保证数据的一致。
(3)所谓共享,指的是数据库中的数据可以被不同的用户使用。也就是说,每一个用户可以按自己的要求访问相同的数据库。
(4)所谓统一管理的,指的是数据库由DBMS统一管理,任何数据访问都是通过DBMS来完成的。
数据库管理系统的层次结构:
根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。
数据模型的组成要素:数据结构;数据操作; 数据的完整性约束.
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成。
数据库的关系术语及定义:
关系(Relation):一个关系就是一张二维表,每一个关系有一个关系名,可以存储为一个文件。其定义可以描述为的子集叫做域 , ,…, 上的关系,表示为 ,R表示关系的名称,n表示关系的目或度(Degree)。
元组:表中的行称为元组,一行就是一个元组,对应存储文件中的一个记录。
属性:关系中的一列称为一个属性。一个属性必须有唯一的属性名,一个关系可以有若干个属性值。
域(Domain):属性的取值范围,是一组具有相同数据类型的值的集合。
关系的候选键与主键
表中某一列(或若干列的最小组合)的值能惟一标识一个行,称该列或列组为候选键。如Students表的学号列,就是一个候选键。
对于一个表,可能有多个候选键 。
候选键取决于应用范围,如给定条件,没有重复的学生姓名,则姓名是学生基本情况表的一个候选键。
对于数据库SQL:
一、创建数据库
1.数据库文件格式:test.db
sqlite> sqlite3 test.db
sqlite> create table test (id integer primary key, value text);
名为id的主键列:该列默认具备自动增长的属性;
名为value的简单文本域;
二、插入
插入操作:
sqlite> insert into test (id,value) values(1,’zhang’);
sqlite> insert into test (id,value) values(2,’wang’);
sqlite> insert intotest (value) values(‘liang’);
sqlite> insert intotest (value) values(‘liang’);
三、查看数据
sqlite> select * from test;
1)查询指定列
SELECT Sno,Sname FROM Student
2)查询全部列
SELECT * FROM Student
3)有条件的查询(比如说性别女的信息或者年龄大于20的人)
SELECT Sname FROM Student WHERE Sdept=’CS’
4)有范围的查询
BETWEEN … AND … 包括临界值
NOT BETWEEN… AND …不包括临界值
BETWEEN后是范围的下限(低值)
AND后是范围的上限(高值)
查找属性值在或不在指定范围内的元组
例:
SELECT Sname, Sdept, Sage FROM Student WHERE Sage >=20 AND Sage<=23
SELECT Sname, Sdept, Sage FROM Student WHERE Sage <20 OR Sage>23
5)字符匹配
一般形式为: 列名 [NOT ] LIKE 匹配串
作用:查找指定列名与匹配串常量匹配的元组。
%(百分号):匹配0个或多个字符。
_(下划线):匹配一个字符。
[ ]:匹配括号中的字符
[∧ ]:不匹配括号中的字符
四、更新
修改数据
Update <表名>
Set <列名>=<表达式>[{,<列名>=<表达式>}] Set 列名 表达式 [{, 列名 表达式 }] [Where <条件>]
如:将学生95001的年龄改为22岁
Update Student Set Sage =22 Where Sno=95001
五、删除数据
Delete From <表名>[Where <条件>]
„ 删除学号为95019的学生的记录
Delete From Student Where Sno=95019
六、退出:
sqlite> .exit