目录
数据库基础
DB和DBMS
什么是DB
将大量的数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合就成为数据库(Database),也称为DB
什么是DBMS
用来管理数据库的计算机系统就称为DBMS
为什么要专门使用DBMS来管理数据库呢
- 可以提供操作大量数据所需要的格式
- 可以实现读写自动化需要的变成能力
- 可以应对突发事故(例如:当误删、硬盘故障等情况,DBMS可以解决或避免这些情况)
数据库的类型
关系型数据库(RDB Relational Database)
建立在关系模型基础上,由行和列组成的二维表来管理数据,并使用专门的SQL(结构化查询语句)对数据进行操作
特点:
- 使用表存储数据,格式统一,便于维护
- 关系型数据库都可以使用SQL语言操作,标准统一,使用方便
此类型数据库对应的DBMS称为RDBMS,具有代表性的RDBMS如下
MySQL 开源的RDBMS
Oracle 甲骨文公司的RDBMS
DB2 IBM公司的RDBMS
SQL Server 微软的RDBMS
Postgre SQL 开源的RDBMS
非关系型数据库(统称为NoSQL 不仅仅是SQL)
非关系型数据库存储格式支持文档、图片等;而关系型数据库只支持基础类型
- 键值存储系统(KVS Key-Value Store)
使用键值对来存储数据(主键Key和值Value的组合),不用表来存储数据的数据库
常见此类数据库管理系统有:Redis、MemcacheDB等
- 面向对象数据库(OODB Object Oriented Database)
编程语言中有一种被称为面向对象的语言(Java、C++等),面向对象数据库就是用来保存这些对象的数据库
常见此类数据库管理系统有:ObjectDB(java数据库)等
- 面向文档数据库
存放并获取文档,包括XML、JSON、BSON等格式
常见此类数据库管理系统有:MongoDB、ClouchDB等
- 图形数据库
允许将数据以图的方式存储
常见此类数据库管理系统有:Neo4j、JanusGraph等
RDBMS的结构
使用RDBMS时的系统结构
RDBMS数据库和表的关系
表存储在数据库中,一个数据库可以存储多个表
RDBMS的数据结构(表结构)
表的列称为字段,代表了保存在列表中不同的数据项目列
表的行称为记录,相当于一条数据
注意事项
关系型数据库必须以行为单位进行数据的读写
一个单元格只能够输入一个数据
列就是一个表中的特定字段相关联的所有信息的垂直实体
Windows系统下MySQL的服务启动与连接
Windows下的MySQL安装不做介绍
服务启动
win+r
services.msc 找到mysql80(关闭和启动mysql服务)
或者cmd下
net start mysql80 打开mysql服务
net stop mysql80 关闭mysql服务
客户端连接
方式一:
方式二:(需要先配置环境变量)
cmd下配置 :
mysql -h 【sql的IP地址】 -P 【sql的端口号】 -u 【登录所使用的用户名】 -p
-p 表示输入密码
例如: mysql -h 127.0.0.1 -P 3306 -u root -p
可以简写为 : mysql -u root -p
Linux下MySQL的安装和配置
安装MySQL并启动服务
配置好yum仓库,然后安装mysql
yum -y install mysql-community-server
启动mysql服务(Mysql安装后会自动生成名为mysqld的服务)
systemctl start mysqld #启动MySQL服务
systemctl restart mysqld #重启MySQL服务
systemctl stop mysqld #停止MySQL服务
systemctl enable mysqld #配置MySQL开机自启动
systemctl status mysqld #查看MySQL服务状态
配置MySQL的Root密码
查询mysql的日志文件,来获取mysql的初始密码
cat /var/log/mysqld.log #在此文件下查找 temporary password 就有默认的root密码
或者 grep 'temporary password' /var/log/mysqld.log 直接查找
通过此默认密码登录MySQL系统
mysql -u root -p
输入默认密码
修改root密码
alter user 'root'@'localhost' identified by '修改后的密码' #密码必须有大写字母和特殊符号,并且大于8位
如果要修改为简单的密码,需要将musql密码级别修改为低级
set global validate_password_policy = 0; #密码等级为0
set global validate_password_length= 4; #密码长度为4位
通过远程连接此数据库
在linux上先通过防火墙放通3306端口
firewall-cmd --permanent --add-port=3306/udp
firewall-cmd --permanent --add-port=3306/tcp
systemctl restart firewalld.service
配置root用户可以通过其它远程地址登录到mysql
新增root用户,主机名为全部
create user 'root'@'%' identified by '123456';
为此用户配置权限
grant all on *.* to 'root'@'%';
删除本地的root用户
drop user 'root'@'localhost';
通过DataGrip连接此数据库