MySQL数据库精研之旅第五期:CRUD的趣味探索(上)

news2025/5/20 8:10:17

专栏:MySQL数据库成长记

个人主页:手握风云

目录

一、CRUD简介

二、Create新增

2.1. 语法

2.2. 示例

三、Retrieve检索

3.1. 语法

3.2. 示例


一、CRUD简介

        CURD是对数据库中的记录进行基本的增删改查操作:Create(创建)、Retrieve(检索)、Update(更新)、Delete(删除)。

二、Create新增

2.1. 语法

INSERT [INTO] 表名 [(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...

value_list: value, [, value] ...

        定义表列名时,可以是一个也可以是多个;VALUES表示当前要插入的值,可以是多个,值的个数要与列的个数对应;多个值之间要用逗号隔开。

2.2. 示例

-- 设计一张商品表
/*
 商品名称
 商品价格
 商品库存
 商品描述
*/

create table if not exists goods(
  `name` varchar(30) comment '商品名称',
  price bigint comment '商品价格',
  inventory bigint comment '商品库存',
  description varchar(100) comment '商品描述'
);
  • 单行数据全列插入与指定列插入
-- value_list 中值的数量必须和定义表的列的数量及顺序⼀致
insert into goods values('可乐',3,100,'瓶装');

-- 指定列插入
-- value_list 中值的数量必须和定义表的列的数量及顺序⼀致
insert into goods values('可乐',3,100,'瓶装');
insert into goods(price,`name`,description,inventory) values(4,'面包','吐司',50);

        运行与查询结果:

  • 多行数据指定列插⼊
insert into goods(`name`,price,inventory,description) values('方便面',5,60,'红烧牛肉味'),('铅笔',2,40,'HD');

        在我们平时使用SQL语句去操作数据库的时候,每一个SQL语句都会和服务器建立联系,一次性插入多行数据就可以减少客户端服务器与数据库之间的连接次数。

        如果说某个字段没有写入数据,那就会默认为空。

insert into goods (name,price,inventory) values ('鸡蛋',1,75);

| 鸡蛋   |     1 |        75 | NULL        |
+--------+-------+-----------+-------------+

三、Retrieve检索

3.1. 语法

SELECT
 [DISTINCT]
 select_expr [, select_expr] ...
 [FROM table_references]
 [WHERE where_condition]
 [GROUP BY {col_name | expr}, ...]
 [HAVING where_condition]
 [ORDER BY {col_name | expr } [ASC | DESC], ... ]
 [LIMIT {[offset,] row_count | row_count OFFSET offset}]

3.2. 示例

  • 全列查询
-- 构造数据
create table exam (
  id bigint,
  `name` varchar(30) comment '姓名',
  chinese float comment '语文成绩',
  math float comment '数学成绩',
  English float comment '英语成绩'
);

-- 插入数据
insert into exam (id,`name`,chinese,math,English) values
(1,'张三',68,84,79),
(2,'李四',76,81,80),
(3,'王五',89,66,73),
(4,'赵六',74,85,86);

select * from exam;

  • 指定列查询
-- 查询所有人的学号、姓名、语文成绩
select id,`name`,chinese from exam;

        在select后⾯的查询列表中指定希望查询的列,可以是⼀个也可以是多个,中间⽤逗号隔开指定列的顺序与表结构中的列的顺序无关。

  • 查询字段为表达式
-- 表达式为一个常量
select id,`name`,10,'查看详情' from exam;

        查询列表中的表达式可以是表中不存在的值或列,如果时字符串常量要用单引号引起。返回的结果集是一个临时表中的数据,并不一定数据表中的数据相同。只是列中的值从物理表中获取,结果集放在临时表中。

-- 把所有学⽣的语⽂成绩加10分
select `name`,chinese,chinese + 10 from exam;

        “chinese + 10”表示对“chinese”这个列进行加10的计算,最终返回一个运算结果。

-- 计算总分
select `name`,chinese + math + English from exam;

  • 为查询结果指定别名

        返回结果中的表头不太符合我们的要求,我们也是可以进行修改的。

select `name`,chinese + math + English as '总分' from exam;

        别名中的引号可以省略,但如果别名中有空格则单引号不能省略。

  • 结果去重查询
-- 去重查询
insert into exam (id,`name`,chinese,math,English) values(5,'钱七',71,84,66);
select distinct math from exam;

        去重时,要求所有列的值都必须相同,MySQL才会判定为重复记录。

        注意:查询时不加限制条件会返回表中所有结果,如果表中的数据量过大,会把服务器的资源消耗殆尽;在生产环境不要使不加限制条件的查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2325044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【文件上传】✈️大文件的上传服务器的简单实现

💥💥✈️✈️欢迎阅读本文章❤️❤️💥💥 🏆本篇文章阅读大约耗时五分钟。 ⛳️motto:不积跬步、无以千里 📋📋📋本文目录如下:🎁🎁&a…

Windows DOS窗口12个命令

DOS 命令是指在 Windows 命令提示符(CMD)中使用的命令行工具,源于早期的 Disk Operating System。虽然现代 Windows 系统更多使用图形界面,但命令提示符仍然是测试人员的重要工具。测试人员通常需要执行文件操作、测试网络连接、监…

AI加Python的文本数据情感分析流程效果展示与代码实现

本文所使用数据来自于梯田景区评价数据。 一、数据预处理 数据清洗 去除重复值、空值及无关字符(如表情符号、特殊符号等)。 提取中文文本,过滤非中文字符。 统一文本格式(如全角转半角、繁体转简体)。 中文分词与去停用词 使用 jieba 分词工具进行分词。 加载自定义词…

docker启动nacos+redis+seata

docker启动nacos 最新版本的nacos需要再启动的时候设置mysql的一些属性,【也可以先启动nacos,再到配置文件中找到application.yml设置mysql的一些属性】。 1.如果直接启动nacos设置的mysql我们需要确定两个容器的ip都是一样的。 查看mysql容器中的ip命令…

从 select 到 epoll:拆解 I/O 多路复用的演进与实战

目录 一、引言:为什么需要 I/O 多路复用? 二、select 1.函数介绍 2.原理 3.样例代码 4.优缺点总结 三、poll 1.函数介绍 2.样例代码 3.优缺点总结 四、epoll 1.函数介绍 2.原理 3.LT和ET两种工作模式 4.优缺点总结 五、核心机制对比&…

【力扣hot100题】(017)矩阵置零

还是挺简单的&#xff0c;使用哈希表记录需要置换的行列即可&#xff0c;这样就可以避免重复节省时间。 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {unordered_set<int> row;unordered_set<int> line;for(int i0;i&l…

One Commander 3,文件管理新体验

One Commander 3 是一款集多功能于一体 Windows 10/11的文件管理工具&#xff0c;其设计目的在于为用户带来多元化的操作体验。这款工具通过支持多栏界面布局&#xff0c;让用户能够迅速且高效地组织和管理文件。此外&#xff0c;它还提供了多主题选项和多种图标集&#xff0c;…

非手性分子发光有妙招:借液晶之力,实现高不对称圆偏振发光

*本文只做阅读笔记分享* 一、圆偏振发光研究背景与挑战 圆偏振发光&#xff08;CPL&#xff09;材料在3D显示、光电器件等领域大有用处&#xff0c;衡量它的一个重要指标是不对称发光因子&#xff08;glum&#xff09;。早期CPL材料的glum值低&#xff0c;限制了实际应用。为…

YOLOv8+ Deepsort+Pyqt5车速检测系统

该系统通过YOLOv8进行高效的目标检测与分割&#xff0c;结合DeepSORT算法完成目标的实时跟踪&#xff0c;并利用GPU加速技术提升处理速度。系统支持模块化设计&#xff0c;可导入其他权重文件以适应不同场景需求&#xff0c;同时提供自定义配置选项&#xff0c;如显示标签和保存…

【干货】前端实现文件保存总结

⚠️⚠️文前推荐一下&#x1f449; 前端必备工具推荐网站(图床、API和ChatAI、智能AI简历、AI思维导图神器等实用工具): 站点入口&#xff1a;http://luckycola.com.cn/ 前端实现文件保存实现总结 在Web开发中&#xff0c;文件下载是常见的交互需求。本文将系统总结前端实现文…

并发编程之FutureTask.get()阻塞陷阱:深度解析线程池CPU飚高问题排查与解决方案

FutureTask.get方法阻塞陷阱&#xff1a;深度解析线程池CPU飚高问题排查与解决方法 FutureTask.get()方法阻塞陷阱&#xff1a;深度解析线程池CPU飚高问题排查与解决方法1、情景复现1.1 线程池工作原理1.2 业务场景模拟1.3 运行结果1.4 发现问题&#xff1a;线程池没有被关闭1.…

在Ubuntu中固定USB设备的串口号

获取设备信息 lsusb # 记录设备的Vendor ID和Product ID&#xff08;例如&#xff1a;ID 0403:6001&#xff09;# 获取详细属性&#xff08;替换X和Y为实际设备号&#xff09; udevadm info -a /dev/ttyUSBX 结果一般如下 创建udev规则文件 sudo gedit /etc/udev/rules.d/us…

javaSE————文件IO(2)、

文件内容的读写——数据流 我们对于文件操作使用流对象Stream来操作&#xff0c;什么是流对象呢&#xff0c;水流是什么样的&#xff0c;想象一下&#xff0c;水流的流量是多种的&#xff0c;可以流100ml&#xff0c;也可以流1ml&#xff0c;流对象就和水流很像&#xff0c;我…

前端常问的宏观“大”问题详解(二)

JS与TS选型 一、为什么选择 TypeScript 而不是 JavaScript&#xff1f; 1. 静态类型系统&#xff1a;核心优势 TypeScript 的静态类型检查能在 编译阶段 捕获类型错误&#xff08;如变量类型不匹配、未定义属性等&#xff09;&#xff0c;显著减少运行时错误风险。例如&…

智慧电力:点亮未来能源世界的钥匙

在科技日新月异的今天&#xff0c;电力行业正经历着前所未有的变革。智慧电力&#xff0c;作为这一变革的核心驱动力&#xff0c;正逐步改变着我们对电力的认知和使用方式。它不仅是电力行业的一次技术革新&#xff0c;更是推动社会可持续发展、实现能源高效利用的重要途径。 智…

架构师面试(二十三):负载均衡

问题 今天我们聊微服务相关的话题。 大中型微服务系统中&#xff0c;【负载均衡】是一个非常核心的组件&#xff1b;在微服务系统的不同位置对【负载均衡】进行了实现&#xff0c;下面说法正确的有哪几项&#xff1f; A. LVS 的负载均衡一般通过前置 F5 或是通过 VIP keepa…

NSSCTF(MISC)—[justCTF 2020]pdf

相应的做题地址&#xff1a;https://www.nssctf.cn/problem/920 binwalk分离 解压文件2AE59A.zip mutool 得到一张图片 B5F31内容 B5FFD内容 转换成图片 justCTF{BytesAreNotRealWakeUpSheeple}

坚持“大客户战略”,昂瑞微深耕全球射频市场

北京昂瑞微电子技术股份有限公司&#xff08;简称“昂瑞微”&#xff09;是一家聚焦射频与模拟芯片设计的高新技术企业。随着5G时代的全面到来&#xff0c;智能手机、智能汽车等终端设备对射频前端器件在通信频率、多频段支持、信道带宽及载波聚合等方面提出了更高需求&#xf…

LiteDB 数据库优缺点分析与C#代码示例

LiteDB 是一个轻量级的 .NET NoSQL 嵌入式数据库,完全用 C# 开发,支持跨平台(Windows、Linux、MacOS),并提供类似于 MongoDB 的简单 API。它以单文件形式存储数据,类似于 SQLite,支持事务和 ACID 特性,确保数据的一致性和可靠性。 优缺点分析 优点: 轻量级与嵌入式:…

Linux系统中快速安装docker

1 查看是否安装docker 要检查Ubuntu是否安装了Docker&#xff0c;可以使用以下几种方法&#xff1a; 方法1&#xff1a;使用 docker --version 命令 docker --version如果Docker已安装&#xff0c;输出会显示Docker的版本信息&#xff0c;例如&#xff1a; Docker version …