MySQL基础入门
MySQL 基础入门笔记涵盖 DDL 数据定义、DML 数据操纵与 DQL 数据查询三大核心板块。一、连接 MySQL安装好 MySQL 后打开命令行终端输入以下命令连接数据库mysql-u root-p-u指定用户名root 是超级管理员-p表示需要输入密码连接成功后会出现mysql提示符。退出输入exit;二、数据库与表的基本操作DDLDDLData Definition Language用于定义和管理数据库结构库、表、字段。2.1 数据库操作操作SQL 语句说明查看所有库show databases;列出当前 MySQL 中所有数据库进入库use 数据库名;切换到指定数据库创建库create database 数据库名;新建一个数据库删除库drop database 数据库名;危险操作删除整个库2.2 表操作操作SQL 语句说明查看当前库所有表show tables;列出当前库下的所有表创建表create table 表名 (字段定义...);必须定义字段结构删除表drop table 表名;危险操作表和数据一起删除2.3 常用数据类型类型说明示例int整数int,int unsignedvarchar(n)变长字符串最多 n 个字符varchar(40)decimal(m,n)定点小数m 总长度n 小数位decimal(10,2)float/double浮点数不精确float2.4 字段约束约束说明primary key主键唯一标识一条记录unsigned无符号非负auto_increment自动递增常用于主键not null不允许为空default默认值2.5 建表综合示例createtabletest1(pidintunsignedprimarykeyauto_increment,pnamevarchar(40),pricedecimal(10,2),numint);字段说明字段含义类型与约束pid商品主键 id无符号整数自动递增pname商品名称最长 40 个字符price商品价格总长 10 位小数保留 2 位num商品库存数量整数三、数据增删改DMLDMLData Manipulation Language用于操作表中的数据插入、更新、删除。3.1 插入数据 insert向表中添加新记录insertinto表名(字段1,字段2,...)values(值1,值2,...);示例insertintoproducts(name,price,stock)values(平板电脑,2999.00,50);insertintocustomers(name,phone,city)values(小红,13999999999,杭州);3.2 更新数据 update修改表中已有的记录。一定要加 where 条件否则会更新整张表。update表名set字段1新值1,字段2新值2where条件;示例-- 将 id1 的商品价格改为 5499updateproductssetprice5499whereid1;-- 将无线鼠标的库存增加 50updateproductssetstockstock50wherename无线鼠标;危险操作提醒如果update不加where条件会修改表中所有行的该字段值3.3 删除数据 delete从表中删除记录。同样一定要加 where 条件deletefrom表名where条件;示例-- 删除 id10 的商品name 为 null 的那条deletefromproductswhereid10;-- 删除所有库存为 0 的商品谨慎deletefromproductswherestock0;** 危险操作提醒**delete from 表名不加 where 会清空整张表delete vs drop 区别delete删除数据表结构还在drop删除整张表结构和数据都没了四、数据查询DQLDQLData Query Language用于从表中查询数据核心是select语句。4.1 比较运算符运算符含义示例大于where num 10小于where num 10大于等于where num 10小于等于where num 10等于where num 10!或不等于where num ! 10select*fromtest.test1wherenum10;select*fromtest.test1wherenum!10;4.2 null 值判断注意null 不能使用或!判断必须用is null/is not null。select*fromtest.test1wherepnameisnull;select*fromtest.test1wherepnameisnotnull;4.3 范围查找运算符含义示例between x and y在[x, y]闭区间内where pid between 2 and 8not between x and y不在[x, y]区间内where pid not between 2 and 8select*fromtest.test1wherepidbetween2and8;select*fromtest.test1wherepidnotbetween2and8;4.4 集合查询-- 匹配集合内任意一个值select*fromtest.test1wherepidin(1,3,9);-- 不在集合内select*fromtest.test1wherepidnotin(1,3,9);4.5 模糊查询like通配符%代表任意数量的任意字符。模式含义示例x%以 x 开头where pname like 苹%%x以 x 结尾where pname like %机%x%包含 xwhere pname like %手%select*fromtest.test1wherepnamelike%手%;4.6 排序对查询结果按指定字段排序-- 升序asc 可省略默认升序select*fromtest.test2orderbynumasc;-- 降序desc 不可省略select*fromtest.test2orderbynumdesc;4.7 聚合函数对整张表的数据做统计计算每类只返回一条统计结果。函数作用示例max(字段)获取最大值select max(num) from test.test2;min(字段)获取最小值select min(num) from test.test2;avg(字段)计算平均值忽略 nullselect avg(num) from test.test2;sum(字段)计算总和select sum(num) from test.test2;count(字段)统计非空行数select count(num) from test.test2;count(*)统计总行数含 nullselect count(*) from test.test2;selectmax(num)as最大值fromtest.test2;selectmin(num)as最小值fromtest.test2;selectavg(num)as平均值fromtest.test2;selectsum(num)as总和fromtest.test2;selectcount(num)as非空数量fromtest.test2;selectcount(*)as总行数fromtest.test2;count(字段)vscount(*)区别count(字段)— 只统计该字段有值非 null的行count(*)— 统计全部行数哪怕某字段为 null 也会计入4.8 多表关联join关联两张及以上数据表通过匹配条件合并多表数据。三种关联方式对比关联类型关键字行为内关联inner join只保留匹配成功的数据两边不匹配的全部舍弃左关联left join左表数据全部保留右表无匹配补 null右关联right join右表数据全部保留左表无匹配补 null-- 内关联只展示能匹配上的数据select*fromtest.test1asainnerjointest.test2asbona.pidb.pid;-- 左关联左表 test1 全部保留select*fromtest.test1asaleftjointest.test2asbona.pidb.pid;-- 右关联右表 test2 全部保留select*fromtest.test1asarightjointest.test2asbona.pidb.pid;小提示as关键字用于给表起别名可以省略直接写test1 a。4.9 分组与过滤group by / having将查询数据按指定字段归类相同字段值的行合并为同一组。常搭配聚合函数实现分组维度的统计。group by— 按指定字段分组-- 统计每个城市的顾客数selectcity,count(*)as人数fromcustomersgroupbycity;having— 对分组后的结果做条件过滤。where在分组前筛选行having在分组后筛选组where无法替代having关键字过滤时机能否用聚合函数where分组前过滤行不能having分组后过滤组可以-- 筛选顾客数大于 1 的城市having 过滤组selectcity,count(*)as人数fromcustomersgroupbycityhavingcount(*)1;执行顺序where→group by→having→order by4.10 时间函数用于处理日期、时间类型的数据支持时间获取、字段提取、日期运算、差值计算等。常用时间数据类型类型说明示例date年月日2002-12-17time时分秒12:30:45datetime年月日时分秒2002-12-17 12:30:45获取当前时间selectnow();-- 当前日期时间2002-12-17 12:30:45selectsysdate();-- 当前日期时间同 nowselectcurdate();-- 当前日期2002-12-17selectcurrent_date;-- 同上selectcurtime();-- 当前时间12:30:45selectcurrent_time;-- 同上时间提取函数函数作用示例year(日期)提取年year(2002-12-17)→ 2002month(日期)提取月month(2002-12-17)→ 12day(日期)提取日day(2002-12-17)→ 17hour(时间)提取小时hour(12:30:45)→ 12minute(时间)提取分钟minute(12:30:45)→ 30second(时间)提取秒second(12:30:45)→ 45quarter(日期)提取季度1-4quarter(2002-12-17)→ 4week(日期)当年第几周week(2002-12-17)dayofyear(日期)当年第几天dayofyear(2002-12-17)selectyear(2002-12-17),month(2002-12-17),day(2002-12-17);selecthour(12:30:45),minute(12:30:45),second(12:30:45);selectquarter(2002-12-17),week(2002-12-17),dayofyear(2002-12-17);-- 业务示例查询订单的下单月份selectid,total,month(order_date)as下单月份fromorders;日期加减-- 增加date_add(基准日期, interval 数值 单位)selectdate_add(2002-12-17,interval1day);-- 2002-12-18selectdate_add(2002-12-17,interval1month);-- 2003-01-17selectdate_add(2002-12-17,interval1year);-- 2003-12-17-- 减少date_sub(基准日期, interval 数值 单位)selectdate_sub(2002-12-17,interval1day);-- 2002-12-16selectdate_sub(2002-12-17,interval1month);-- 2002-11-17selectdate_sub(2002-12-17,interval1year);-- 2001-12-17时间差计算-- 天数差datediff(前日期, 后日期)selectdatediff(2006-12-17,2002-12-17);-- 1461天-- 单位时间差timestampdiff(单位, 后日期, 前日期)selecttimestampdiff(year,2002-12-17,2006-12-17);-- 4年selecttimestampdiff(month,2002-12-17,2006-12-17);-- 48月selecttimestampdiff(day,2002-12-17,2006-12-17);-- 1461天格式化日期-- date_format(日期, 格式)%Y四位年 %m两位月 %d两位日selectdate_format(order_date,%Y年%m月%d日)as下单日期fromorders;4.11 子查询子查询是嵌套在 SQL 语句中的查询先执行内层结果给外层用-- 标量子查询查询价格高于平均价的商品select*fromproductswhereprice(selectavg(price)fromproducts);-- 子查询 in有下过单的顾客select*fromcustomerswhereidin(selectdistinctcustomer_idfromorders);五、总结分类核心操作关键字/语法连接登录/退出mysql -u root -p/exit;DDL库操作create database/drop database/use/show databasesDDL表操作create table/drop table/show tablesDML插入insert into ... values ...DML更新update ... set ... where ...DML删除delete from ... where ...DQL基础查询select ... from ... where ...DQL条件!is nullbetweeninlikeDQL排序order by ... asc/descDQL分组过滤group by ... having ...DQL聚合max()min()avg()sum()count()DQL日期时间函数now()year()month()date_add()datediff()等DQL子查询嵌套selectDQL多表inner joinleft joinright join ... on ...此为MySQL 基础篇适合零基础入门和基础复习。

相关新闻

安全笔记系统开发:登录验证与数据加密实践

安全笔记系统开发:登录验证与数据加密实践

1. 项目背景与核心价值"验证登陆.笔记"这个项目名称乍看简单,实则蕴含了现代互联网应用的两个关键要素:用户身份验证(验证登陆)与信息记录(笔记)。作为从业十余年的全栈开发者,我见过…

2026/8/17 13:03:16 阅读更多 →
多维聚合中的数据操纵:从SQL阀门到实时流的工程化实践

多维聚合中的数据操纵:从SQL阀门到实时流的工程化实践

1. 这不是简单的“GROUP BY”——多维聚合中的数据变形术到底在解决什么问题?如果你正在处理销售报表、用户行为分析、IoT设备时序汇总,或者哪怕只是整理一份带地区、季度、产品线、渠道四个维度的Excel透视表,那你一定遇到过这种场景&#x…

2026/8/17 14:15:17 阅读更多 →
Python条件控制语句详解与应用实践

Python条件控制语句详解与应用实践

1. Python条件控制语句基础概念在Python编程中,条件控制语句是程序流程控制的核心组成部分。它们允许程序根据不同的条件执行不同的代码块,实现分支逻辑。Python中的条件控制主要通过if、elif和else关键字实现,这些语句构成了程序决策的基础框…

2026/8/18 18:16:51 阅读更多 →

最新新闻

从窗口管理到效率革命:第三方工具与自动化工作流实战

从窗口管理到效率革命:第三方工具与自动化工作流实战

1. 从“窗口”到“窗口”:一个被忽视的桌面效率革命 如果你和我一样,每天要在电脑前处理十几个甚至几十个任务,那你一定对“窗口”这个概念又爱又恨。爱的是,它让我们可以同时处理多个任务,恨的是,当窗口多…

2026/8/19 6:18:52 阅读更多 →
GAMBIT基准:多智能体LLM系统对抗鲁棒性评测实战指南

GAMBIT基准:多智能体LLM系统对抗鲁棒性评测实战指南

1. 项目概述:为什么我们需要一个全新的多智能体对抗基准?最近在跟几个做多智能体LLM系统的朋友聊天,大家普遍反映一个头疼的问题:单个大语言模型(LLM)的对抗鲁棒性评测已经有不少基准了,比如Adv…

2026/8/19 6:18:52 阅读更多 →
深入解析Python动态特性:从核心机制到工程实践

深入解析Python动态特性:从核心机制到工程实践

1. 项目概述:从“Rubber Python”说起最近在社区里看到“Rubber Python”这个说法,乍一看有点摸不着头脑,以为是某个新的Python库或者框架。但结合上下文和大家的讨论,我意识到这其实是一个很形象的比喻,用来形容Pytho…

2026/8/19 6:18:52 阅读更多 →
AI编程智能体配置数据集:构建高效人机协作开发工作流

AI编程智能体配置数据集:构建高效人机协作开发工作流

1. 项目概述:为什么我们需要一个“智能体编码工具配置”数据集?最近在折腾各种AI编程工具,从Cursor到Claude Code,再到VSCode里五花八门的插件,我估计很多同行跟我一样,感觉既兴奋又头疼。兴奋的是&#xf…

2026/8/19 6:18:52 阅读更多 →
从零构建智能家居:基于Home Assistant与Zigbee的本地自动化实战指南

从零构建智能家居:基于Home Assistant与Zigbee的本地自动化实战指南

1. 项目概述:从“遥控灯”到“会思考的家”几年前,我理解的智能家居,大概就是下班前用手机远程打开空调,或者对着音箱喊一声“开灯”。但当我真正把家里的几十个设备串联起来,让它们根据我的生活习惯、环境变化甚至天气…

2026/8/19 6:18:52 阅读更多 →
NL668 OpenLinux SysVinit服务部署实战:从原理到故障排查

NL668 OpenLinux SysVinit服务部署实战:从原理到故障排查

1. 项目概述:在NL668 OpenLinux上运行服务的核心挑战如果你手头有一台基于NL668芯片的嵌入式设备,并且它运行的是OpenLinux系统,那么你很可能正面临一个经典且关键的挑战:如何让自定义的服务程序在系统启动时自动、稳定地运行。这…

2026/8/19 6:17:52 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/19 5:04:55 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →