MySQL数据库基础

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 把相同列的分为一组,如果不使用聚合函数的话,数据可能可以会产生不想要的结果。。。group by 可以搭配条件 :1. where 一般写在前面,先执行where,再执行group by,最后执行聚合。2. having 一般写在后面,先执行group by 再执行聚合,最后执行having。

目录


数据库约束


null


unique


default


primary key


外键约束


聚合查询


聚合函数


group by


联合查询


理解笛卡尔积


内连接


外连接


自连接


子查询


合并查询


目标:


1. 数据库约束


2. 聚合查询


3. 联合查询


数据库约束

对数据库中的数据来说,有的是合法的,有的是非法的,我们为了使数据库中的数据为合法的进而引入了 “约束 ”。


约束类型 说明

null 值不能为空

unique 值不能重复

default 没有赋值时的默认值

primary key 使某列有位移标识

外键约束 使一个表与另一个表匹配完整

null

使插入的值不能为空,为空的话,就不能插入。


unique

不能插入原来已有的值


注意:


unique 约束会让后续插入数据 / 修改数据 的时候,都先进行一次 查询 操作。


default

没有赋值时的默认值(默认情况下为空)


primary key

1. 一个表中只能有一个primary key


2. 设置为priamry的列,具有唯一性,并且不能为空


3. 带有主键的表 / 列,每次插入也都进行查询(影响不大,通过索引查)


如何保证主键唯一 ???


mysql 提供了 " 自增主键" ,主键一般为 int / bigint 的类型,在插入数据的时候,不必手动指定主键值,由服务器自动分配(从 1 开始递增),当然也可以自己插入,但是插入的值必须比上一个值大(系统插入的时候会按照当前最大值进行分配)。


外键约束

foreign key (当前表中被约束的列) references class (根据这个列约束);


1. 使两个表存在关系


2. 子表中的数据在对应的父表的列中要存在


3. 想删除父表的的时候,先删除子表


3. 父表中必须有主键(primary kay)


聚合查询

聚合函数

表达式查询是针对 列 和 列 之间的进行运算的,聚合查询相当于 行 和 行 之间的查询。因此 sql 中提供了 聚合函数。


1. count(...) 查询出来结果集的行数(“...” 为 “ * ” 的时候null也能算入)


2. sum(...) 把这一列的行求和(自动把null排除)


3. avg(...) 求平均值


4.max(...) 求最大值 min(求最小值)


eg:


select count(*) from 表名;


select sum / avg / max (列名) from 表名;


group by

select 列名, 聚合函数 from 表名 group by 列名;


把相同列的分为一组,如果不使用聚合函数的话,数据可能可以会产生不想要的结果。。。


group by 可以搭配条件 :


1. where 一般写在前面,先执行where,再执行group by,最后执行聚合。


2. having 一般写在后面,先执行group by 再执行聚合,最后执行having。


联合查询

理解笛卡尔积

在sql中,笛卡尔积的应用用于两个表求笛卡尔积,求后成为一个表。


假如有两个表,表1(2行,2列),表2(3行,3列)


求完笛卡尔积是将第一个表中的行和第二个表中的每一行进行结合,最终形成一个 6 行,5 列的表

e8d99119aacf2a73bea55e51c18f0f2d_47ab853cd7084651823d24ac00ad7924.png



内连接

select 列名, 列名... from 表1, 表2 where 条件 gruop by 列;


select 列名, 列名... from 表1 (inner)join 表2 on 条件;


1. 先将两个表进行笛卡尔积


select * from 表1, 表2;


2. 加上连接条件,筛选出有效数据


select * from 表1, 表2 where ... ;


3. 针对列进行精简


select 列名, 列名... from 表1, 表2 where ... ;


4. 针对上述结果进行聚合查询


select 列名, 列名... from 表1, 表2 where ... gruop by 列;


外连接

左外连接:select 列名, 列名... from 表1 left join 表2 on 条件;


右外连接:select 列名, 列名... from 表1 right join 表2 on 条件;


左外连接:以左侧表为基准,保证左侧表的数据都存在,如果对应列右侧不存在,填为空


右外连接:以右侧表为基准,保证右侧表的数据都存在,如果对应列左侧不存在,填为空


自连接

select 列名, 列名... from 表1,表1 where 条件;


sql中一张表只能进行列和列的比较,但是同一个表进行笛卡尔积就能将行的关系转换为列的关系。


子查询

select ... from 表1 where 字段 = (select ... from ...);


select ... from 表1 where 字段1 in (select ... from ...);


select ... from 表1 where exists (select ... from ... where 条件);


select ... from 表1, (select ... from ...) as tmp where 条件;


合并查询

-- UNION:去除重复数据


select ... from ... where 条件 union select ... from ... where 条件


-- UNION ALL:不去重


select ... from ... where 条件 union all select ... from ... where 条件


相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
6天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34429 17
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
18天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45259 142
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
8天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4770 20
|
1天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
1189 5
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
6天前
|
人工智能 API 开发者
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案
阿里云百炼Coding Plan Lite已停售,Pro版每日9:30限量抢购难度大。本文解析原因,并提供两大方案:①掌握技巧抢购Pro版;②直接使用百炼平台按量付费——新用户赠100万Tokens,支持Qwen3.5-Max等满血模型,灵活低成本。
1673 5
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案

热门文章

最新文章