数据库——数据库本质、数据库分类、SQL与NoSQL、MySQL基础使用(一)


一、数据演变史

1.单独的文本文件

没有固定的存放位置
没有固定的数据格式
程序彼此无法兼容,没有统一的标准

2.软件开发目录规范

按照文件功能的不同规定了相应的位置
文件查找变得统一 但是没有解决格式问题(核心问题)

3.数据库应用

解决了存放位置和数据格式问题
将数据操作、储存都统一化


二、数据库应用发展史

1.单机阶段

数据各自保存在各自的计算机上 无法实现远程共享
此时只能实现自身的数据交互使用

2.多机阶段

数据统一基于网络保存到某个固定的服务器上 实现数据共享
通过互联网实现了多台计算机之间的数据交互使用

集群:

如果所有的数据全部存储到一台远程服务器上
那么数据的安全性降低 服务器的压力上升
所以增加远程服务器的数量 数据同步保存 任务均匀分担
具有相同功能的多个服务器组合到一起 就可以称之为是集群


三、数据库本质

数据库在微观层面上来说:
运行在计算机上专门处理数据的进程(程序)
eg:内存中的typora代码
数据库在宏观层面上来说:
提供给操作者一个简单快捷的操作进程的软件
eg:屏幕上typora界面
我们平时在说数据库的时候大部分指的是操作数据库的应用软件

数据库软件的本质其实也是一款CS架构的软件
既然数据库本质是一款CS架构的软件 也就意味着我们每个会网络编程的程序员理论上来说都可以编写出一款数据库软件
在目前世界上有很多程序员 他们都具备编写数据库软件的能力 所以现在市面上其实存在很多数据库软件


四、数据库分类

1.关系型数据库

关系型:

  1. 有固定的表结构(最主要的特征)
    eg:有固定字段的excel表格
    id name gender
  2. 并且表与表之间可以建立代码层面的关系
    eg:用户表与房屋表
    用户买房 那么用户数据和房屋数据就应该有关系

常见关系型数据库:
MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server
MySQL:关系型数据库的代表 开源免费 使用频率极高
Oracle:安全性极高 但是使用和维护收费 使用成本高
PostgreSQL:支持二次开发(自己嫁接、扩展功能)
MariaDB:与MySQL是同一个作者 开发的初衷是作为MySQL的替代品
sqlite:小型数据库 携带方便但功能较少 主要用于本地测试使用
sql server:老牌数据库软件 目前主流不用

2.非关系型数据库

非关系型:

  1. 没有固定的表结构 数据存取采用K:V键值对的形式(最主要的特征)
    {‘name’:‘jason’} {‘username’:‘jason’,‘pwd’:123}
  2. 并且表与表之间无法建立代码层面的关系

常见非关系型数据库:
Redis、MongoDB、Memcache
Redis:目前最火的非关系型数据库 数据类型丰富 功能强大
MongoDB:最像关系型数据库的非关系型数据库 主要用于爬虫和大数据
Memcache:被redis取代了!!!


五、SQL与NoSQL

数据库服务端支持很多客户端来链接使用
数据库自带的客户端有python、java、c++等语言编写的

如何让服务端兼容诸多客户端 实现正常交互

方式1:让服务端识别并自动切换对应语言
方式2:统一沟通标准
相较之下方式2更加合理>>>:SQL语句与NoSQL语句

SQL语句:
与关系型数据库交互的语言

NoSQL语句:
与非关系型数据库交互的语言

SQL有时候用来标识关系型数据库 有时候表示SQL语句
NoSQL有时候用来标识非关系型数据库 有时候表示NoSQL语句

六、 MySQL基础使用(一)

1.版本问题

5.6X:使用最为广泛的稳定版本
5.7X:目前正在逐步过渡使用的版本
8.0X:最新版本 暂时不投入正常生产环境使用(其实很好用)

2.下载使用

mysql官网

下载步骤:

1.List item
2. downloads
3. (GPL) Downloads
4. MySQL Community Server
5. Archives(可以查找所有版本mysql)
6. 选择版本和系统
7. 点击下载对应的zip压缩包即可
8. 解压压缩包,安装
9. 安装时注意3306端口是否被占用,安装时会设置管理员用户和密码,以及mysql服务的名字
10. 安装完成后需要设置环境变量,将mysql的bin目录添加进去
11. 使用mysql之前要先启动mysql服务可以在服务中启动,也可以在命令指示符中使用net start mysql服务名 来启动。(此处以windows为例)
12. 使用完成后可以关闭mysql服务可以在服务中关闭,也可以在命令指示符中使用net stop mysql服务名 来关闭。

3. 目录结构

bin文件夹

mysqld.exe 服务端
mysql.exe 客户端

data文件夹

存放数据

my-default.ini文件

默认配置文件

README文件

说明书

4.进入mysql

必须要先启动服务端 再启动客户端链接
在命令指示符中输入mysqld开启服务器
在新的命令指示符中使用mysql可以进入游客模式

使用mysql -u 用户名 -p然后回车需要输入密码,也可以在-p之后输入密码,但一般不建议,因为这样会暴露密码。

实际上登录指令的完整版是 mysql -h 数据库地址 -u 用户名 -p然后回车输入密码

5.修改密码

  1. 未登陆时,直接输入指令:mysqladmin -u用户名 -p原密码 password 新密码
  2. 登录后,输入set password for 用户名@localhost = password(‘新密码’);

6.重要概念

一个mysql中有多个库,每个库中有多张表,每张表有多条记录,
库就相当于文件夹、表相当于文件、记录相当于数据
使用mysql可以

7.操作库的基本SQL语句

use database_name; 使用database_name库,必须先使用库,该指令可以不用;结尾
show databases; 查看所有库名
show create database database_name;查看database_name库的创建信息
create database database_name; 创建database_name库
alter database database_name charset=‘gbk’; 修改库的编码
drop database database_name; 删除库
select database(); 查看当前在使用哪个库

8.操作表的基本SQL语句

进行表操作前要先使用库
show tables; # 查看当前库下所有的表名称
show crate table 表名; # 指定查看某个表的信息
describe 表名; # 指定查看表的字段信息 简写 desc 表名;

创建表

create table 表名(
字段名称1 字段类型1,
字段名称2 字段类型2
);

修改表信息

alter table 表名 rename 新表名; 修改表名

删除表

drop table 表名;

9.操作表记录

查询记录

select * from 表名; # 查看表里面所有的数据
select * from 库名.表名; # 查看指定库下面的指定表里面的
select Host,User from mysql.user # 查看指定字段

增加记录

insert into 表名 values(值1,值2); # 单条数据
insert into 表名 values(值1,值2),(值3,值4); # 多条数据

修改记录

update 表名 set 字段=新值 where 筛选条件;

删除记录

delete from 表名 where 筛选条件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值