《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

【数据库】浙人医携手金仓数据库,打造全国首个多院区异构多活容灾架构

【数据库】浙人医携手金仓数据库,打造全国首个多院区异构多活容灾架构

KingbaseES数据库:首个多院区异构多活容灾架构,浙人医创新开新篇 2025 年 10 月 23 日消息,浙江省人民医院(浙人医)作为省内卫健系统信创 “领头雁”,依托金仓数据库搭建异构多院区多活数据底座,成为国内首个 LIS 国产化异构数据多院区多活改造案例。浙人医拥有多院区及托管分院,此前面临核心系统依赖国外数据库、多院区数据互通难等问题,遂选择 LIS 系统为信创突破口,联合电科金仓实现四大技术创新,达成 RTO≤10min、RPO=0 的 6 级灾容标准,业务连续性达 99.99%。目前 4 大院区数据双向同步,数据调用效率提升 60%,富阳院区还实现全栈信创与业务系统云化部署,为医疗信创提供可复制样本。 作为浙江省卫健系统信创“领头雁”,浙江省人民医院(下称“浙人医”)从LIS系统切入,实现从单系统突破到全栈国产化的跨越式发展。依托金仓数据库搭建的异构多院区多活数据底座,

By Ne0inhk
【MYSQL】MYSQL学习的一大重点:MYSQL数据类型

【MYSQL】MYSQL学习的一大重点:MYSQL数据类型

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 文章目录 * 0 ~> int:最佳实践 * 1 ~> 数据类型分类 * 1.1 数值类型 * 1.2 文本、二进制类型 * 1.3 时间日期 * 1.4 String类型 * 2 ~> 数值类型 * 2.1 TINYINT 类型 * 2.2

By Ne0inhk
一、Scala 基础语法、变量与数据类型

一、Scala 基础语法、变量与数据类型

欢迎来到 Scala 的世界!Scala 是一门强大、简洁且富有表现力的多范式编程语言,它无缝集成了面向对象和函数式编程的特点。由于其在大数据领域 (尤其是 Apache Spark) 的核心地位,掌握 Scala 已成为许多开发者的必备技能。本节,我们将从最基础的语法开始,为你揭开Scala 的神秘面纱。 思维导图 一、基础语法与环境 输出语句: 学习如何向控制台打印信息。 * println():打印内容并自动换行。 * print():打印内容但不换行。 代码案例: // 使用 println 换行输出 println("Hello, Scala!") println("This is a new line.")// 使用 print 不换行输出 print("

By Ne0inhk
Flutter 三方库 objectbox_generator — 自动化构建鸿蒙极速 NoSQL 数据库映射(适配鸿蒙 HarmonyOS Next ohos)

Flutter 三方库 objectbox_generator — 自动化构建鸿蒙极速 NoSQL 数据库映射(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter 三方库 objectbox_generator — 自动化构建鸿蒙极速 NoSQL 数据库映射(适配鸿蒙 HarmonyOS Next ohos) 在高性能移动应用开发中,本地数据的持久化存储效率往往是决定用户感知流畅度的木桶短板。传统的 SQLite 虽然结构化程度高,但在处理大规模对象关系映射(ORM)时,复杂的 SQL 拼接和反射解析往往会成为性能瓶颈。 ObjectBox 作为一个专为移动设备打造的、跨平台的超高速 NoSQL 数据库,已经成为了许多追求极致体验开发者的首选。而在 Flutter for OpenHarmony 开发中,配合 objectbox_generator,我们可以通过注解驱动的自动化流程,掌握这套高性能数据库的核心用法。 ⚠️ 鸿蒙适配现状提示:截至本文撰写时,ObjectBox 的 Dart 插件尚未提供官方的 OpenHarmony

By Ne0inhk