持久化: 把内存中的数据存储到可掉电式存储设备(eg: 硬盘)中加以固化。持久化的过程大都是通过关系型数据库实现的。也可以存储到磁盘文件、xml文件中。
DBMS: 数据库管理系统(Database Management System),数据库管理软件;
SQL:结构化查询语言(Structured Query Language);
常见的DBMS:
- Oracle:甲骨文公司,已通过收购SUN公司收购了MySQL;
- MySQL: 开源No1;
- SQL Server:微软公司;
- DB2:IBM公司;
- PostgreSQL: 最标准,稳定、开源、具备商业级质量;
- SQLite: 小型数据库,适用于手机;
- Redis:key-value型数据库;
RDBMS 与 非RDBMS
非关系型数据库
是关系型数据库的阉割版本,通过键值对存储数据,性能高,成本低。有NoSQL语言支持。非关系型数据库有:
键值型数据库: 作为内存缓存,eg:redis;
文档型数据库:特殊的键值型数据库,值是json等文档,eg:MongoDB;
搜索引擎数据库:应用在搜索引擎领域的数据库,将全文搜索的数据存储,保证检索效率, “倒排索引”,eg:Elastucsearch;
-
列式数据库:Oracle、MySQL等采用的都是行式存储,列式存储是一列列存储,可以降低系统的I/O;
图形数据库
针对没有明确关系的数据,用图形存储更清晰。
关系型数据库结构
行=>列=>表=>库;
表名具有唯一性;
ORM思想(Object Relational Mapping);
表的关联关系
一对一(one-to-one)
在实际应用中不多,因为一对一可以做成一张表。
eg:学生信息表中,有一部分是常用信息,一部分不常用。如果写在一张表中,冗余字段比较多。所以拆分成两张表。
建表原则有两种:
(1)外键唯一:主表的主键和从表的外键形成主外键关系,外键唯一;
(2)外键是主键:主表的主键和从表的主键形成主外键关系。一对多(one-to-many)
eg: 部门表对员工表;客户表对订单表;
建表原则:
从表的外键指向主表的主键。-
多对多(many-to-many)
eg: 学生选课程信息表,一个学生对应多门课,一门课对应多个学生;产品 - 订单表。
-
自我引用(self-reference)
同一个表中存在主外键的对应关系。
MySQL的安装
MySQL启动和停止服务
-
图形化页面:点击我的电脑——>管理——>服务——>找到MySQL80,点击按钮选择停止或启动;
- 以管理员身份运行命令行窗口,通过指令
net start | stop mysql80
控制启动关闭;
-
使用win10自带的小型命令行窗口,直接输入密码,默认登录root账户;
登录和退出登录
-
登录: mysql -u 用户名 -P 端口号(3306可省略) -h 主机名(本机可省略) -p密码(不可加空格,直接写是明码,回车写是暗码)
[图片上传中...(image.png-4f4278-1661692241827-0)]
h 主机名,本机可省略 -p密码,直接写是明码,回车之后再写就看不到了,中间不可加空格。
- 退出登录,使用指令
quit
。
图形化工具
主要有Navicat,SQLyog,dbeaver等。