零基础学AI人工智能:7.2 算法和数据结构之数据库
上一篇我们完成了 Linux 系统的系统学习掌握了数据项目的服务器环境基础本篇我们聚焦数据持久化存储的核心载体 —— 数据库它是结构化业务数据、算法训练元数据最主流的存储方案熟练掌握数据库概念与 SQL 逻辑是开展统计分析、数据挖掘工作的必备能力。一、数据库相关概述1.1 数据库基础定义数据库是长期存储在计算机内、有组织、可实现多用户共享的数据集合。 和传统文件存储相比文件形式的数据很难支持多用户精细化协同管理而数据库可以实现结构化的数据规整存放支持多人同时访问读写还能维护多张数据表之间的关联约束保障数据的一致性、安全性适配规模化的数据处理需求。1.2 数据库两大主流分类关系型数据库 特征是采用二维行列表格的形式存储数据表与表之间可以建立严谨的关联关系技术体系成熟稳定适合结构化业务数据存储常见产品有 MySQL、Oracle、DB2、SQL Server 等。非关系型数据库 不局限于二维表格结构以键值对、文档等更灵活的形式存储数据横向拓展能力更强适配高并发、海量非结构化数据场景常见产品有 Redis、MongoDB 等。1.3 业务实体的三类关联关系现实业务场景里数据实体之间存在固定的对应模式一对一两个实体严格一一绑定例如一家企业仅对应一位法定代表人一对多一个主实体可以对应多条子实体数据例如一个班级包含多名学生、一个部门下辖多名员工多对多两个实体可以互相匹配多条数据例如学生和选修课一名学生能选多门课程一门课程也能被多名学生选修。二、MySQL 数据库环境搭建2.1 服务端安装的两种方案官方安装包手动部署可以自主调整服务各项配置参数适合有运维基础、需要精细化定制环境的场景集成化面板一键安装自动化完成基础配置环节降低新手的部署门槛快速搭建可用的数据库服务。2.2 命令行访问登录方式本地环境可以采用明文填写身份信息、隐藏密码密文填写两种方式登录本地 MySQL 服务如果要访问远程服务器上的数据库需要补充填写远程主机地址、开放端口、合法账号信息完成远程登录日常运维也可以通过系统进程工具查看 MySQL 服务的运行状态判断服务是否正常启动。2.3 可视化管理工具除了原生命令行操作还可以使用带图形界面的可视化工具管理数据库比如 DataGrip、PyCharm 内置的数据库面板这类工具可以通过点击操作完成建库、建表、数据查询、结构修改全流程工作大幅降低日常操作的学习成本。三、SQL 语句基础规范与四大分类3.1 SQL 四大功能划分SQL 是操作关系型数据库的标准化语言按照职能分为四大类别DDL 数据定义语言负责数据库、数据表的结构管控完成创建、删除、修改库表架构这类底层结构操作DML 数据操纵语言直接管控表内存储的业务数据实现数据新增、删除、内容更新DQL 数据查询语言从数据表中提取目标数据是数据统计、分析环节使用频率最高的分类DCL 数据控制语言负责账号权限管控完成权限授予、权限回收这类运维安全操作。3.2 SQL 通用编写特性语句既可以单行写完也可以拆分多行排布提升复杂语句的可读性语句关键字大小写不敏感大写、小写写法的执行效果完全一致支持单行、多行两种注释格式用来标注逻辑说明、备注内容可以合理使用缩进、换行优化排版让多层嵌套的逻辑更易阅读维护。四、细分场景 SQL 操作逻辑详解4.1 数据库库级全生命周期管理针对数据库本身可以完成全套管理操作创建全新的数据库、删除闲置废弃的数据库、修改已有数据库的配置参数、查看当前服务器内所有已创建的数据库同时可以切换指定数据库将它设置为后续所有操作的默认操作对象。4.2 数据表表级结构管理针对库内的数据表支持灵活的结构调整能力创建符合业务字段规则的新数据表、删除不再使用的数据表、对已有数据表重命名还能精细化调整表结构比如新增数据列、移除冗余列、修改已有列的名称、数据类型、约束规则等。4.3 表内数据增删改管理对表内业务数据可完成三类基础变更向表内单条或批量新增数据、按精准条件删除无效数据、按限定范围更新已有数据内容其中删除、更新操作必须严格设置筛选边界避免误操作改动整张表的全部数据。4.4 数据查询核心体系数据分析重点4.4.1 单表查询技巧可以完成基础字段筛选、重复结果去重搭配聚合统计函数实现计数、求和、最大值、最小值、平均值这类常规统计计算区分两类筛选逻辑先按条件过滤原始明细数据再分组统计、先完成分组统计再对分组结果做二次筛选同时支持分页设置控制单次接口返回的数据行数适配大批量数据分批读取的场景。4.4.2 多表关联查询方案针对存在关联关系的多张数据表有多种连接模式适配不同统计需求交叉连接返回两张表所有数据两两组合的笛卡尔积结果内连接仅返回两张表能匹配上关联条件的交集数据左外连接以左表的全部数据为基准匹配右表符合条件的内容左表无匹配项的字段会保留空值右外连接以右表的全部数据为基准匹配左表符合条件的内容右表无匹配项的字段会保留空值全外连接合并两张表所有匹配、不匹配的全部数据一般可以通过两次左右连接的结果合并去重实现效果。4.4.3 窗口函数进阶统计能力普通分组统计会把同组多行数据合并为单行输出而窗口函数可以在完成数据分组划分的同时保留原始明细的每一行记录在每行数据后同步输出分组统计、组内排序的结果适配复杂的精细化统计场景。 窗口函数分为两大方向聚合类窗口函数复用计数、求和、最值这类常规聚合能力配合分组规则在分组内完成统计计算排序类窗口函数实现分组内的名次排序支持生成连续行号、跳跃排名、连续排名等多种排序逻辑 还可以搭配分区划分、排序规则实现多层级的精细化统计拆分。五、逻辑图