数据库SQL及其终端命令

来源:互联网 发布:歌曲改编软件 编辑:程序博客网 时间:2024/04/29 06:38

数据库(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

0 0