数据库初识与Sqlite3在linux虚拟机里的使用

数据库基本概念

数据库系统和数据库管理系统

数据库(DATABASE)和表(TABLE)

数据模型:      概念模型      关系模型      网状模型      层次模型

商业应用中主要是关系数据库,比如Oracle、MS SQL Server、MySQL等。

数据库完整性约束

完整性约束:数据完整性(Data Integrity)是指 数据的精确性(Accuracy)和可靠性(Reliability)。

数据完整性分为四类:

1.实体完整性(Entity Integrity)

2.域完整性(Domain Integrity)

3.参照完整性(Referential Integrity)

4.用户定义的完整性(User-definedIntegrity)

实体完整性

实体完整性(Entity Integrity):实体完整性规定表的每一行在表中是唯一的实体。     

在数据表中可以对相应字段进行如下约束来实现实体完整性:

UNIQUE(唯一约束) PRIMARY KEY(主键约束) IDENTITY(标识列)

域完整性

域完整性(Domain Integrity):是指数据库表中的列必须满足某种特定的数据类型或约束。     

域完整性有以下几种约束:

CHECK(检查约束) FOREIGN KEY(外键约束) DEFAULT(默认值约束) NOT NULL(不为空值约束) 

参照完整性

参照完整性(Referential Integrity):是指两个表的主关键字和外关键字的数据应对应一致。  

参照完整性作用表现在如下几个方面:

1.禁止在从表中插入包含主表中不存在的关键字的数据行

2.禁止会导致从表中的相应值孤立的主表中的外关键字值改变

3.禁止删除在从表中的有对应记录的主表记录

用户定义的完整性

用户定义的完整性(User-defined Integrity): 个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。     

数据库系统提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其它的完整性类型都支持用户定义的完整性。

数据库三大范式

第一范式:每一列属性都是不可再分属性,确保每一列原子性。

第二范式:每一行数据只能与其中一列相关,即一行数据只做一件事。只要数列中出现数据重复,就要把表拆分开来。

第三范式:数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。

数据类型

NULL        空置类型

TEXT        按照字符串来存储        varchar(20)'lily'实际占4字节    char(20)'lily'实际占20字节

REAL         IEEE浮点数

INTEGER   用来存储一个整数,根据大小可以使用1,2,3,4,6,8位来存储

BLOB        按照二进制值存储

Sqlite3在linux虚拟机下操作

sqlite3简介

SQLite是一款轻型的数据库,是遵守ACID的关系式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

安装sqlite3命令:     sudo apt-get install sqlite3

这里我是已经安装过sqlite3的

sqlite3的点命令

命令

命令说明

备注

.database

查看数据库

.tables

查看数据库表有哪些?

.schema [表名]

查看所有或单表的结构

.output [file|stdout]

将结果输出到文件或标准屏幕

.output file1.txt

.mode

改变输出格式

.mode insert tab

.mode column

.help

帮助

.quit

退出sqlite3命令行

.read

读取脚本

.read  mysql.sql

注意:SQLite3 命令以”.”号开始,而SQL操作语句以”;”结束

补充:

1.创建数据库

.open dbname 不存在就创建,存在就打开

2.创建表

create table if not exists tbl_name

(字段名称 类型 约束,

 字段名称 类型 约束....);

eg:这里if not exists是为了防止存在同名表不会报错

3.修改表

alter table tb_name add column score int(11) default 0;

4.删除表

drop table if exists tbl_name;

演示

1.采用在windows界面创建一个后缀为sql的文件方式

2.进入sqlite3

3.创建一个名为user.db的数据库

通过.open+tb_name.db;来创建table

通过.databases命令查看已建立的tables

4. 将写好的user.sql文件拖入MobXterm,进行查询

 

.schema可查看进行的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值