数据库基本概念
数据库系统和数据库管理系统
数据库(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可查看进行的操作