《MySQL 表基础语法:从入门到熟练的核心技巧》

《MySQL 表基础语法:从入门到熟练的核心技巧》
前引:MySQL 表的增删查是数据库操作的基础,也是日常开发、数据分析中最高频的需求。很多初学者会卡在语法细节、场景适配或效率优化上,明明掌握了基础命令,实际应用中却频频出错。本文聚焦 “实用 + 避坑”,从核心语法到高频场景,再到优化技巧,帮你彻底吃透 MySQL 表增删查,告别 “只会用不会用对” 的尴尬
SQL查询中各个关键字的执行先后顺序:

from > on> join > where > group by > with > having > select > distinct > order by > limit

目录

【一】增

(1)基本创建

(2)单行数据+全列插入

(3)多行数据+指定列插入

(4)插入更新

【二】查

(1)全列查询

(2)指定列查询

(3)按表达式查询

(4)给查询结果跟换别名

【三】where条件

(1)比较运算符

(2)逻辑运算符

(3)举例:比较+逻辑运算符

(4)举例:数据匹配

【四】结果排序

(1)单字段排序

(2)多字段排序

【五】聚合函数

(1)返回查询数据数量

(2)返回查询的数据总和

(3)查平均值

(4)查最大/小值

【六】日期函数

(1)接口

举例:

【七】字符串函数

(1)接口

举例:

【八】数学函数


【一】增

(1)基本创建

创建一张表:create table语法

create table 表名( 字段名1 字段类型, 字段名2 字段类型 );

比如创建一个学生信息,需要有学生名、学号(主键)、电话号码(唯一键):都不能为空

首先我们创建一个数据库:message

现在创建表:字段+数据类型+约束

(2)单行数据+全列插入

插入核心语法:insert into 表名(数据字段) values(插入数据)

insert into 表名(字段名称(逗号区分)) values (插入的数据(逗号区分));

例如:如果不填数据字段,默认是全列插入

显示:

(3)多行数据+指定列插入

填充表名后面的数据字段即可,例如:

(4)插入更新
insert into student(id,name,phone) values(12321,'王五','15098706751') on duplicate key update 指定字段更新,例如: insert into student(id,name,phone) values(12321,'王五','15098706751') on duplicate key update id = 09089, phone = '18927390098';

如果因为主键或者唯一键的冲突导致插入失败,可以更新数据再进行插入:

现在更新:

【二】查

现在为了方便演示我们创建数据:

-- 创建表结构 CREATE TABLE exam_result ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL COMMENT '同学姓名', chinese float DEFAULT 0.0 COMMENT '语文成绩', math float DEFAULT 0.0 COMMENT '数学成绩', english float DEFAULT 0.0 COMMENT '英语成绩' ); -- 插入测试数据 INSERT INTO exam_result (name, chinese, math, english) VALUES ('唐三藏', 67, 98, 56), ('孙悟空', 87, 78, 77), ('猪悟能', 88, 98, 90), ('曹孟德', 82, 84, 67), ('刘玄德', 55, 85, 45), ('孙权', 70, 73, 78), ('宋公明', 75, 65, 30); 
(1)全列查询

通常 select 后面直接使用 * 代表全列查询,例如:

(2)指定列查询
注意:指定列的查询顺序可以不按表的定义顺序来

在 select 后面增加要查询的字段,如果有多个用逗号分开即可查询指定的字段,例如:

其中 select 与 from 大家应该很好理解,这属于固定指令,查什么从哪里查

(3)按表达式查询

select 后面的查询字段可以带表达式,依然用逗号区分(后面会介绍有哪些表达式),例如:

(4)给查询结果跟换别名

上面 name 这些属于已有别名,如何更换为其它的别名?在表达式后面用空格分开,直接写别名

【三】where条件

select 后面的语句是用来指定查找的内容,比较运算符就是对内容增加比较逻辑,语法为:

select ...... from ..... where......

快速上手:where之后空行,再按照语言的表达输出表达式即可

(1)比较运算符
(2)逻辑运算符
(3)举例:比较+逻辑运算符

例如:对下面的表完成数据指定查询

查找英语高于60分的同学:
查找数学和英语成绩之和超过120的同学:
语文和数学成绩之和,在【120~150】的同学:
(4)举例:数据匹配

例如:查找姓孙的同学:

例如:找孙某同学:

【四】结果排序

语法:(注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序)

where 是用来增加筛选条件的,这里的排序不属于筛选!

-- ASC 为升序(从小到大) -- DESC 为降序(从大到小) -- 默认为 ASC select ... from .... order by .......
(1)单字段排序

例如:查英语降序:

(2)多字段排序
注意:只有前一个字段的值相同时,才会执行后一个字段的排序

【五】聚合函数

这些聚合函数是支持将 字段名组合 进行参数传递的,具体如下参考:

(1)返回查询数据数量
count(字段);

例如:查有几个人

(2)返回查询的数据总和
sum(字段);

例如:查语文和数学成绩总和

(3)查平均值
avg(字段);

例子:查语文平均成绩

(4)查最大/小值
max/min(字段);

例如:查数学最高分

【六】日期函数

(1)接口

下面是日期函数调用,使用方法和聚合函数一样:

举例:
获取当前日期:
获取当前时间:
获取当前日期的时间:

创建一个留言表:记录人留的字段,自动记录时间(可以用current_timestamp作为缺省值)

自动补充时间:

形成留言的效果:

【七】字符串函数

(1)接口
举例:
连接字符串:
查询:instr 是由1开始计算下标,不是从0开始
搭配字段使用:

【八】数学函数

Read more

哈希表里的“垃圾元素”,为什么有时必须删除?

哈希表里的“垃圾元素”,为什么有时必须删除?

◆ 博主名称: 晓此方-ZEEKLOG博客 大家好,欢迎来到晓此方的博客。 ⭐️C++系列个人专栏: Re:从零开始的C++_晓此方的博客-ZEEKLOG博客  ⭐️踏破千山志未空,拨开云雾见晴虹。 人生何必叹萧瑟,心在凌霄第一峰 目录 一、什么是哈希表中的垃圾元素 二、什么时候必须清理垃圾元素 2.1情况1:需要比较两个哈希表是否相等 2.2情况2:算法依赖 map.size() 三、什么时候不需要清理 四、从刷题中总结出来的实战经验 一、什么是哈希表中的垃圾元素         在做滑动窗口 + 哈希统计时,经常会出现一种现象:哈希表中存在 value = 0 的键值对。这些元素通常被称为 “垃圾元素”。         当我们做频率统计时,经常写这样的代码: mp[x]--;         如果x原来是1,执行后变成了0但在map / unordered_map中:

By Ne0inhk
从算法到落地:DeepSeek如何突破AI工具的同质化竞争困局

从算法到落地:DeepSeek如何突破AI工具的同质化竞争困局

🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux网络编程笔记: https://blog.ZEEKLOG.net/djdjiejsn/category_12885098.html 前言: 在大模型技术爆发式迭代的今天,ChatGPT、Claude等通用型AI工具已逐渐渗透到日常生活与工作中。然而,当企业及开发者面对具体场景需求时,往往会陷入“功能看似全能,落地难掩局限”的困境。 DeepSeek 作为AI赛道的新锐力量,凭借垂直深耕的技术路线与场景化思维,正在打破同质化竞争格局。本文将从技术架构、应用效能与商业化逻辑三大维度,解析其差异化竞争力。 目录 一、技术架构:从“通用底座”到“垂直穿透” DeepSeek的破局之道: 动态参数激活技术:  二、应用效能:从“能力展示”到“

By Ne0inhk
【数据结构入坑指南(三.2)】--《剑指Offer:单链表操作入门——从“头删”开始破解面试》

【数据结构入坑指南(三.2)】--《剑指Offer:单链表操作入门——从“头删”开始破解面试》

🔥@晨非辰Tong:个人主页  👀专栏:《C语言》、《数据结构与算法》 💪学习阶段:C语言、数据结构与算法初学者 ⏳“人理解迭代,神理解递归。” 引言:上篇我们初探了单链表的“不连续”之美,并实现了部分基础操作。本篇将作为单链表的终极篇章,彻底攻克其余核心功能,助你构建完整知识体系。 目录 二、单链表的实现(续) 2.5  单链表的头删 三、何时用顺序表,何时用单链表? 3.1  顺序表功能的复杂度 3.2  单链表功能的复杂度 四、链表其余功能 4.1  查找 4.2  在指定位置之前插入 4.3  在指定位置之后插入 4.4  删除pos节点 4.5

By Ne0inhk
数据结构之图论详解

数据结构之图论详解

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-ZEEKLOG博客 所属专栏:数据结构(Java版) 目录 图的基本概念 图的存储结构 邻接矩阵 邻接表 图的遍历 广度优先遍历(BFS) 深度优先遍历(DFS)  最小生成树 Kruskal算法(克鲁斯卡尔算法) Prim算法(普利姆算法) 最短路径 单源最短路径 — Dijkstra算法 单源最短路径—Bellman-Ford算法 多源最短路径—Floyd-Warshall算法  图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构:G=(V,E),其中顶点集合V={x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {<x, y>

By Ne0inhk