数据库介绍

数据库介绍

计算机工作原理:硬盘 ➡️ 内存 ➡️ cpu
内存:快,但是断电消失信息。 平时run code 中的变量。
硬盘:慢,断电后数据不消失。长久存储数据。
持久化:让数据持久存储的过程,俗称存到硬盘、存到数据库。

常见数据库

关系型数据库

历史悠久,上世纪六十年代开始出现,也是当前市场的统治者。

  1. sqlite。 轻量级数据库,纯文本,不需安装,几万行数据量以下速度不慢。场景,手机📱应用。
  2. microsoft office access。 微软office套件中的轻量级数据库,定位高不成低不就,不太流行。
  3. mysql。 几乎最流行的数据库。开源免费,15年左右随php捆绑包流行。现在被oracle公司收购。
  4. oracle。 java语言,oracle。场景,商用,2000年后就稳居国内大型公司市场。稳定、强大、授权费贵。盗版多。
  5. db2。 IBM公司出品,重型数据库。场景,银行业。
  6. postgresql。 大象数据库, 诞生于一所大学的开源项目。竞争对手mysql。号技术最牛的数据库。相同服务器资源下,
    性能明显超过mysql。一些开源web项目也推荐这个数据库。 国外开始流行,国内几乎没人用。

特点:
库 ,表, 一行数据。 多张表靠外键关系关联。类似日常的excel表格。

假设一张表student。
主键:primary key 唯一确立一行数据。一般是自增的整数序列。
id name age classname classSeats classLocation
1 小明 13 一班 40 教学楼A
2 小红 10 一班 40 教学楼A
3 小青 10 二班 20 教学楼B
缺点:信息增加有重复,修改越来越麻烦。
改进,把不同纬度的信息放到多张表各自维护。
sutdnet表
id name age phone
1 小明 13
2 小红 10
3 小青 10
class表
id name seats location
1 一班 40 教学楼A
2 二班 20 教学楼B
把两张表关联起来
外键:foriegn key 用来关联两张表。
id name age class_id
1 小明 13 1
2 小红 10 1
3 小青 10 2

SQL:structure query language结构化查询语言。专门对表增删改查。
基础语法:
0. 创建表 CREATE TABLE student(
INT id primary key;
VARCHAR(10) name,
int age,
);

  1. 查询 SELECT (id,name,age) FROM student; SELECT * FROM student;
  2. 插入 INSERT INTO student (id,name,age) VALUES (2, ‘小明’, 13);
  3. 更新 UPDATE FROM student SET name=‘大明’ WHERE name=‘小明’ and id=1;
  4. 删除 DELETE FROM student; 注意如果不加where条件会删除全部内容。
    进阶语法:
  5. 外键关联 SELECT s.name,c.name FROM student AS s JOIN class AS c
    s.class_id=c.id WHERE s.class_id=1;
  6. 聚合函数

非关系型

nosql: no only sql, 并不是完全抛弃关系型数据库,而是用其它算法思想做补充。
关系型数据库有点:分表维护逻辑清晰,强事务确保结构一致。
关系型数据库的缺点:数据存储硬盘上,多张表外键关联,导致查询性能有上限。
非关系型优点:有一类把查询频繁的表,例如用户表,缓存到内存中(固态硬盘500MB/s,内存4000MB/s),查询效率提高;
往往存储键值对对象结构,跟编程语言的对象结构一样,不用转换,易于理解。
非关系型缺点:内存贵;数据一致性不高。

  1. mongodb 。 例子,物流港(整个数据库)有一些仓库厂房(库database/schema), 厂房有一排排货架(表table),货架上有产品(存放的信息)。 mongodb新增一套术语(表=集合collection,表中数据=文档document )。
  2. redis 。 存储的结构更为简单。 {username:‘小明’}

相関概念

索引:
事务:transaction 假设需求‘用户存钱到支付宝余额,余额自动转到余额宝。’这个过程经历两三条数据语句。可能存在,第一句执行成功,第二句失败。导致逻辑错误,对于要求数据一致性,把这几句数据域语句阔住,如果任一一局失败,那么已执行的语句会还原(回滚rollback)
结果集:查询数据库表返回的结果集合。转成js对象。

我们主要学习mongodb,存储跟js对象几乎一致。 mysql,最流行。

mongodb

下载

  1. mongodb官网
  2. 右上角try-free 或 products-mongodbServer ,进入到下载页。
  3. 版本选择 community社区免费版、版本最新稳定版4.2.1(201911)、OS windowsx64、msi(exe会自动添加环境变量)。

安装

  1. 基本一路next
  2. 注意, 不要勾选 安装mongo compress 图形化客户端工具,因为是在线安装,网速不好会卡住。
    !()[1-1.jpg] !()[1-2.jpg]

验证

  1. 会在安装目录c:\Program Files\mongodb\server\ 看到文件。
  2. 关注 bin文件夹下有mongod.exe(服务端,提供数据库服务) mongo.exe(客户端,命令行)
  3. 关注 data文件夹,数据存放文件夹。有的安装程序不会自动创建,需要手动创建。有的版本要求在C:/data/db;

运行数据库服务

服务:比如 别人的电脑运行网站服务,我 你们的客户端浏览器请求数据并看到效果。windows的蓝牙可以发现蓝牙耳机,因为开启了蓝牙发现服务。

  1. windows终端cmd/powershell下
    cd C:Program Files\Mongodb\bin
    ./mongod (cmd下mongod)
    注意安装程序没有自动添加环境变量。 直接mongod找不到,即使cd到所在文件夹,必需先cd到所在文件夹再写标准的相对路径,./不能省略 。

成功的话显示 ‘server listing on ip 127.0.0.1 port 27017’ 控制台程序处于一直运行。
可能的报错 server shutdown 。原因一般有
1)找不到data路径。 默认C:\data\db ,解决1>手动创建文件夹。 2>指定其它路径 ./mongod --dbpath C:\Program Files\MongoDB\Server\4.2\data
2)服务器端口占用、服务已经正常开启。
3)环境变量可能需要自己配。
4) 需要安装ssl。 点击允许
5)无权限注册windows服务,安装程序终止。 解决:关闭360等工具;windows用户账户调为最低安全;右键管理员运行exe安装程序。
6)media.cab受损。 解决,cab是一种压缩文件,原因因为安装包由于网络问题下载部分失败。

  1. (可选) 每次运行命令太麻烦。注册为windows服务让每次开机自动启动mongodb服务。
    注册windows服务需要shell语言,我们不会, ./mongod --install
    我的电脑-右键管理-服务 中看到MongoDB的服务。
    如果是.exe自动安装,这一步已经被自动做过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值