当前位置: 首页 > news >正文

数据库介绍

数据库

1、什么是数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

2、RDBMS 术语

数据库(Database):存储关联数据的容器,一个 RDBMS 可管理多个数据库
表(Table):数据库的基本存储单元,由行和列组成,用于存储同一类实体数据
行(Row):表中的一条数据记录,代表一个实体的完整信息
列(Column):表中的一个属性字段,所有行共享相同的列定义
字段类型(Data Type):列的数据类型约束,限制存储的数据格式
主键(Primary Key, PK):唯一标识表中每行的列 / 列组合,非空且唯一
外键(Foreign Key, FK):表中指向另一张表主键的列,用于维护表间关联关系
索引(Index):对表中一列 / 多列的值进行排序的结构,加速查询

3、数据库分类

3.1 关系型数据库
mysql (主从) sql server oracle prostql

关系型数据库
关系数据库的存储结构是二维(平面)表格
表里边存放的是一行一行的记录
行:一条记录(信息)
列:一个字段(属性)
mysql(小型) oracle(大型) sql server(微软)
场景:银行 淘宝 12306 大麦 美团

事务四大特性:ACID
1)持久性: 永久性
2)一致性: 事务执行前后,数据是一直
3)原子性:要么都成功,要么都失败
4)隔离性:并发多个事务之间互不干扰
几乎所有面向用户、有业务交互、需要持久化结构化存储数据的应用(app)都回产生数据。

** 3.2 非关系型数据库**
redis mongDB
3.3 键值对数据库
etcd json es(elk)
3.4 缓存数据库

4.数据类型

*1)数值型
int 整数类型 1.1.1
float 浮点数

2)字符串
char 英文
varchar 可变长英文
nchar 中文
nvarchar 可变长中文
text 文本

3)日期和时间
date 日期:年月日
time 时间:时 分 秒
datetime:年月日时 分 秒
year 年

4)特殊
json 存储json格式的数据

5.MYSQL

MySQL 是一款开源的关系型数据库管理系统(RDBMS),基于 SQL(结构化查询语言)实现数据的存储、管理和查询,由瑞典 MySQL AB 公司开发,现归 Oracle 公司所有,是目前全球最流行的开源数据库之一,广泛应用于 Web 应用、中小企业系统、云原生场景等。
开源 免费的 多线程 多用户 可靠 c/s 保证数据的一致性
information_schema 信息查询数据库
提供mysql服务器元数据 表的存储引擎 数据量
mysql
存放服务器的核心系统信息
用户账号、密码、权限、存储引擎、事件、函数
performance_schema 性能监控库
监控服务器的运行性能、资源使用情况、事件执行情况,用于调优、故障排查
sys
视图 select * from sys.slow.log

SQL语言 T-sql
DCL数据库控制语言grant 授权 revoke撤销 commit提交 rollback回滚
DDL数据库定义语言create创建 drop删除 alter 修改表的结构 数据定义语言
DQL数据库查询语言select查找
DML数据库操纵语言insert插入 update更新 delete删除

create database qq;
create table 表名(name char(20) not null ,id int(48),age int(16),专业 nvarchar(50),primary key (name))
drop table 表名;
alter table 表名 add column 列名 char(10);
insert into 表名 values(‘xl’,‘1234’,‘18’,‘云计算’);
update 表名 set age=16 where name=‘xl’;
select * from 表名 where name=xl;
select 班级,avg(成绩) from qq group by 班级 having avg(成绩) >90;

delete from 表名 where name=‘xl’;
group by 分组
order by 排序 desc降序 asc升序

聚合函数
sum avg count()统计
select distinct 专业 from qq; 去重
模糊查询:
find / -name *.conf
select * from qq where 成绩 like ‘8%’; 模糊
select * from qq where 年龄 in (16,18); 范围

权限管理
grant 权限 on 数据库.表名 to 用户 grant…to
revoke 权限 on 数据库.表名 from 用户 revoke…from
show grants for ‘用户名’@‘IP/网段/localhost’

where与having的区别
where group by having

索引:目录
作用:加快对表中记录的查找或排序(优化查询速度)
主键(不能为空,唯一性) 外键 (多表链接)
功能逻辑分类
1.主键索引
2.唯一索引(null)unique (0-100)约束 int()
3.普通索引
4.组合索引
数据结构分类
1.B+树索引
2.哈斯索引
3.全文索引
4.R树索引

事务的特性:AICD
原子性
持久性
一致性
隔离性
锁机制(Locking)和多版本并发控制(MVCC)
隔离的核心:避免 脏读 幻读 不可重复读
事务隔离级别的实现机制:
锁的类型
共享锁(S锁,Shared Lock):
用于读操作(SELECT),多个事务可以同时持有同一数据的共享锁。
防止其他事务获取排他锁(写锁),从而避免脏读。
排他锁(X锁,Exclusive Lock):
用于写操作(INSERT、UPDATE、DELETE),一个事务持有排他锁时,其他事务不能获取任何锁(共享锁或排他锁)。
防止其他事务读取或修改数据,避免并发冲突。
意向锁(Intention Lock):
表级锁,表示事务打算在表中的行上获取什么类型的锁(意向共享锁 IS 或意向排他锁 IX)。
提高锁的兼容性检查效率。

锁的粒度(细粒度、颗粒度)
行级锁(Row-level Locking):
锁的粒度最小,并发度高,但开销大(如 InnoDB)。
表级锁(Table-level Locking):
锁的粒度最大,并发度低,但开销小(如 MyISAM)。

多版本并发控制(MVCC,Multi-Version Concurrency Control)
MVCC 是一种通过维护数据的多个版本来实现并发控制的机制,避免了读写冲突,提高了并发性能。

MVCC 的优势
读不加锁:读操作不会阻塞写操作,写操作也不会阻塞读操作(读写不冲突)。
提高并发性:避免了锁的开销,适合高并发场景。
实现不同隔离级别:通过调整 ReadView 的生成时机,实现不同的隔离级别。

存储引擎:
innoDB
iMsam
Memory

http://www.gsyq.cn/news/148949.html

相关文章:

  • 【毕业设计】基于Java的停车场管理系统(源码+文档+远程调试,全bao定制等)
  • Java毕设项目:基于springboot的户外救援系统(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目推荐-基于springBool+Vue美食分享平台的设计与实现基于网络平台的美食分享【附源码+文档,调试定制服务】
  • vue基于python的企业人事绩效考核综合管理系统_z006916a(pycharm django flask)
  • 事后诸葛亮会议报告 - Nyanya-
  • 一文搞懂单点登录系统:架构、原理与实战案例
  • springboot-vue基于大数据的学习视频资源推送系统的设计与实现vue
  • 【课程设计/毕业设计】基于springboot+vue技术的在线二手车交易管理系统的设计与实现【附源码、数据库、万字文档】
  • vue基于python的校园个人资料管理系统设计与实现_s31nzb5k(pycharm django flask)
  • LLM Weekly(2025.12.15-12.21)
  • ant design pro不安装第三方库,如何实现多标签页面(带源码)
  • 基于Springboot+Vue的社区老年医疗服务系统设计与实现
  • 建议收藏!2025最新论文降AI率保姆级攻略,学生党必看。
  • Anthropic 开源 Bloom:基于 LLM 的自动化行为评估框架
  • 基于深度学习的淘宝用户购物可视化与行为预测系统设计(源代码+文档+PPT+调试+讲解)
  • 2025最新!10个AI论文网站测评:本科生写论文救星大公开
  • 完整教程:学算法总换设备?Hello-Algo+cpolar 让学习进度随身带
  • 敏捷咨询:从落地到深耕的全流程赋能之路
  • 基于深度学习的蘑菇种类识别系统的设计与实现(源代码+文档+PPT+调试+讲解)
  • Redis 集群模式Redis Cluster
  • Alpha 阶段项目复审报告
  • 中文编程语言“华文 (HuaWen)”综合设计方案框架
  • 读人机沟通法则:理解数字世界的设计与形成05机器可以被测量
  • 2025最新!专科生必备8个AI论文工具:开题报告写作全测评
  • 【机器学习】-超参数(模型“调音师”的魔法)
  • virtualbox键盘多个按键同时按下失灵,打字难受
  • 共享指针——弱引用
  • Hugging Face smolagents曝高危漏洞:反序列化缺陷可致远程代码执行
  • 自考必备!8个AI论文软件推荐,轻松搞定毕业论文格式规范!
  • Bootstrap5 按钮组