数据库

数据库—小菜菜初整

分类

  • 关系型数据库(MySQL、Oracle、Sqlite3)
  • 非关系型数据库(NoSQL)

管理数据的历史

  • 人工管理
  • 文件管理阶段
  • 数据库管理阶段

构成

有一张张数据表构成。

  • 表名称
  • 字段名称(命名规范)
  • 关系约束

关系约束

  • 主键(Primary key)、主属性、主码,有一个或多个字段组成,逐渐必须唯一的表示一行数据。在开发过程中,通常主属性是从1自增的整数。
  • 外键(Foreign key)、由一张表的非主属性关联到另一张表的字段。

数据完整性约束

数据库范式

第一范式(1NF)

陕西省 咸阳市 秦都区:数据是非原子性的。(原子:不可再分)
原子操作、原子数据…
第一范式是消除了每个字段中数据的非原子性,如果一个数据库中任何一张表出现了非原子性的数据,那么这个数据库不能被称为是 关系型数据库,也就是这个数据库 1NF 都不满足。

第二范式(2NF)

在前面所有范式的基础上(基于1NF)
消除非主属性对主属性的部份依赖
除了主键,仍然存在一个非主键的字段,其仍然可以作为主键(或者只靠其就以决定这一整行) 使用。

第三范式(3NF)

在前面所有范式的基础上(基于1NF、2NF)
消除传递依赖
A->B B->C A->C

数据完整性

  • primary key:主键
  • unique:唯一
  • check:选择
  • default:默认

数据类型

  • NULL:空
  • INTEGER:整数
  • REAL:实数
  • TEXT:文本
  • BLOB:blob

INTEGER

  • INT
  • TINYINT
  • SMALLIMT
  • BEGINT

SQLITE 3 命令

格式化输出

.header on
.mode column
.timer on
.table

创建数据库

create table 表名称(
	字段1 类型 [约束],
	字段2 类型 [约束],
	字段3 类型 [约束],
	字段4 类型 [约束]
);

create table class(
	class_id INTEGER PRIMARY KEY AUTOINCREMENT,
	name VARCAHR(32) unique,
	college_name varchr(32)
);

create table student(
	student_id char(11) primary key,
	name varchar(32),
	age int,
	gender char(2),
	class_id integer,
	foreign key(class_id) reference class(class_id)
);
	

CURD (增删改查)

插入
insert into 表名(要插入的字段名1, 要插入的字段名2values(
	数据1, 数据2;

insert into student values("12312312332", "小明", 2, "男", 1);
insert into student values("12312312332", "小明", 2, "男", 1);
insert into student values("12312312332", "小明", 2, "男", 1);
insert into student values("12312312332", "小明", 2, "男", 1);

查找语句
  • 代表全部字段
select * from 表名;
  • 查找特定字段
select 字段1, 字段2 from 表名;
  • 去重查找、使用 distinct 关键字
select distinct college_name from class;
where 子句
select * from 表名 where 子句

sqlite3 链接

(个人认为这个写的很好,暂做推荐,之后等学习这块后,在进行自己的整理完善)
sqlite3

来源于听课整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值