当前位置: 首页 > article >正文

MySQL数据表操作与CRUD详解:从建表、插入到查询的全流程

哈喽大家好我是你们的大二学长。最近在复习《数据库原理》这门课刚好把老师上课讲的内容整理成了笔记想着发到博客上和大家分享一下希望能帮到同样在学 SQL 的同学们。今天的博客主要分为两部分前一课的复习​和新增Insert操作和查询Retrieve的详解。一、 前一课复习MySQL 数据表操作首先我们来快速回顾一下上一节课关于数据表的基础操作。这部分主要是掌握如何对“表”这个层面进行管理而不是表里的具体数据。1. 查看所有表如果你已经选中了当前的数据库记得先用use 数据库名;指定哦可以使用这条命令来查看里面所有的表show tables2. 创建表创建表的时候需要指定表名以及每一列的名字和数据类型。语法很简单create table 表名 (列名 类型, 列名 类型, 列名 类型....)这里要注意的是数据类型。常用的类型有int,bigint,double,decimal,varchar,text,datetime等等。不同的业务场景要选对合适的类型比如存年龄用int存名字用varchar。3. 查看表结构建完表或者想看表里有哪些字段可以用这个命令desc 表名;4. 修改表如果表建错了需要改表结构比如加一列、删一列可以用alter table 表名 选项5. 删除表如果不需要这个表了直接删掉注意删表是不可逆的要小心使用drop table 表名;二、 核心内容增删改查CRUD接下来就是今天的重点啦作为 Java 后端开发以后工作中最核心的任务之一就是进行CRUD​ 操作。CRUD 是对数据库记录的基本操作分别是Create (创建) —— 也就是我们这节课要讲的INSERTRetrieve (读取) —— 也就是SELECTUpdate (更新) —— 也就是UPDATEDelete (删除) —— 也就是DELETE今天我们重点攻克第一步Create插入数据。三、 Insert 语句进行新增1. 基本语法与示例插入数据的基本语法是这样的INSERT [INTO] table_name [(column_list)] VALUES (value_list), (value_list) ...举一个非常经典的例子我们先创建一个student表create table student( id int, name varchar(20), gender int); -- 可以使用 1 表示男性 0 表示女性然后插入一条数据insert into student values (1, 张三, 1);这里有几个点需要注意这一行数据里的三个值(1, 张三, 1)分别对应表里的id,name,gender。值的数量和顺序必须跟表的列数匹配。关于引号SQL 里表示字符串常量可以用单引号张三也可以用双引号张三。这和 C/Java 不一样它们区分字符和字符串但在 SQL 里单双引号都表示字符串。2. 指定列插入有时候我们可能不想一次性把所有列的数据都插进去或者想调整插入的顺序就可以指定列来插入-- 指定列插入 insert into student (id, name) values(1, 张三); insert into student (name, id) values(张三, 1);注意虽然我们可以调整列的顺序但括号里写的列名必须是表里真实存在的而且后面给的值要和前面的列一一对应。3. 命名规范的小提示在创建表指定列名时如果列名有多个单词该怎么写呢studentName(驼峰命名Java 里很普遍)student_name(蛇形命名C/Python 里很普遍)在数据库里蛇形命名是更常见的习惯。而且后续我们学 JavaEE 进阶讲到 MyBatis 这样的框架时它默认就会把数据库表的蛇形命名和 Java 代码的驼峰命名自动关联起来所以养成用student_name的习惯会更好。4. 一次插入多行数据如果我们要插入很多条数据一条条写是不是太累了其实可以一次插入多行-- 一次插入多行数据 insert into student values(5, 赵六, 0), (6, 田七, 1), (7, 周八, 0);或者分开写三条insert into student values(5, 赵六, 0); insert into student values(6, 田七, 1); insert into student values(7, 周八, 0);为什么推荐第一种一次插入多行的方式呢因为数据库是客户端-服务器结构的程序。你每发一条 SQL 命令客户端都要和服务器通信一次。一次插入多行只需要通信一次速度更快而且数据库服务器有一个非常重要的功能叫“事务”每个 SQL 也会开启一个事务本身也是有开销的合并操作能减少这种开销。最后我们怎么确认数据插进去了呢当然是用查询语句-- 通过 select 语句查询表的内容。 select * from student;四、Retrieve 检索查询操作作为 CRUD 里的 “R”查询Retrieve​ 是我们从数据库里“拿数据”的核心操作。老师课上重点讲了select语句的几种用法1. 全列查询最基础的查询方式就是把一张表的所有行、所有列都查出来select * from 表名;这里的*叫做通配符代指“所有列”。比如查询student表的所有内容select * from student;⚠️危险操作警告“这也是数据库的危险操作”。为啥呢因为数据库是客户端-服务器结构的程序就像你用电脑连公司服务器办公一样。如果是自己学习用的小表select *无所谓但在公司的生产环境线上环境用户正在用的那种里表可能非常大比如百万级数据select *会一次性把所有数据从服务器传到客户端直接把服务器的硬盘、网卡带宽“吃满”导致系统卡顿甚至崩溃2. 指定列查询实际工作中一张表可能有十几列、几十列但我们往往只需要关注某几列。这时候就可以指定列名来查询能大幅降低硬盘和网卡的 IO 开销就像走“高速公路”只取需要的车道select 列名, 列名..... from 表名比如我们只查student表的name和idselect name, id from student;3. 带有表达式的查询select不仅能查原始列还能根据列进行计算比如成绩求和、数值运算等。语法是select 表达式 from 表名;举个例子用一个exam表存了语文、数学、英语成绩先建表插数据CREATE TABLE exam ( id BIGINT, name VARCHAR(20) COMMENT 同学姓名, chinese float COMMENT 语文成绩, math float COMMENT 数学成绩, english float COMMENT 英语成绩 ); -- 插入测试数据 INSERT INTO exam (id, name, chinese, math, english) VALUES (1, 唐三藏, 67, 98, 56), (2, 孙悟空, 87, 78, 77), (3, 猪悟能, 88, 98, 90), (4, 曹孟德, 82, 84, 67), (5, 刘玄德, 55, 85, 45), (6, 孙权, 70, 73, 78), (7, 宋公明, 75, 65, 30);现在我们想给每个同学的语文成绩 10就可以用表达式查询select name, chinese 10 from exam;再比如查询每个同学的总成绩语文数学英语select name, chinese math english from exam;⚠️ 注意这种“复杂表达式”作为列名时可读性会比较差比如chinese math english看起来不够直观。4. 表达式查询时指定别名为了解决“表达式列名可读性差”的问题我们可以给表达式起一个别名外号语法select 表达式 as 别名 from 表名;as可以省略但不建议省略写上能提高代码可读性。比如给总成绩列起别名totalselect name, chinese math english as total from exam;或者省略as但不推荐容易看错select name, chinese math english total from exam; 额外小技巧表也可以起别名尤其是多表查询时表别名很重要。比如select name, chinese math english from exam as e;老师强调写代码的核心原则是可读性“可读性 代码执行效率”只要不是特别夸张的低效优先让代码好懂。最后碎碎念今天复习了数据表操作学习了insert插入又学了select查询的几种操作。感觉 SQL 真的是“细节决定成败”比如select *的危险、别名的必要性这些都是实际工作中踩过坑才明白的点。后续还要学update更新、delete删除以及多表查询、聚合函数这些进阶内容。慢慢来吧先把基础打扎实加油

相关文章:

MySQL数据表操作与CRUD详解:从建表、插入到查询的全流程

哈喽大家好!我是你们的大二学长。最近在复习《数据库原理》这门课,刚好把老师上课讲的内容整理成了笔记,想着发到博客上和大家分享一下,希望能帮到同样在学 SQL 的同学们。今天的博客主要分为两部分:前一课的复习​ 和…...

三步构建个人漫画图书馆:picacomic下载器的终极指南 [特殊字符]

三步构建个人漫画图书馆:picacomic下载器的终极指南 🚀 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://git…...

AutoRAG:基于AutoML的RAG流水线自动化优化实战指南

1. 项目概述:当RAG遇上AutoML,如何为你的数据找到“最优解”? 如果你正在构建或优化一个基于检索增强生成(RAG)的系统,那么下面这个场景你一定不陌生:面对海量的开源RAG模块——从五花八门的文本…...

Monet框架:多模态大模型在潜在视觉空间的突破

1. Monet框架概述:当多模态大模型遇见潜在视觉空间 第一次看到Monet这个名称时,我下意识联想到印象派画家的光影魔术。而实际上,这个框架在AI领域的表现同样充满艺术感——它让多模态大模型在潜在视觉空间(Latent Visual Space&am…...

MPM边界条件与G2P传输优化技术详解

1. 项目背景与核心价值在计算力学领域,物质点法(Material Point Method, MPM)因其在处理大变形、多相耦合等复杂问题时的独特优势,近年来在工程仿真中获得了广泛应用。但实际应用中,边界条件的精确施加和粒子-网格&…...

Go语言轻量级系统监控工具indicator:JSON输出与自动化集成指南

1. 项目概述:一个现代化的系统状态指示器最近在折腾一个后台服务监控面板,需要实时展示CPU、内存、网络这些关键指标。市面上的老牌工具像conky、htop虽然功能强大,但要么配置复杂得像天书,要么界面风格停留在上个世纪&#xff0c…...

【RISC-V商用落地实战指南】:20个真实芯片/OS/中间件适配案例,覆盖龙芯、平头哥、赛昉全生态(2024最新版)

更多请点击: https://intelliparadigm.com 第一章:RISC-V商用落地全景图谱与生态演进(2024最新综述) 2024年,RISC-V已从学术探索与原型验证阶段全面迈入规模化商用快车道。全球超50家芯片企业发布量产RISC-V SoC&…...

为Claude Code编程助手配置Taotoken作为后端API服务

为Claude Code编程助手配置Taotoken作为后端API服务 1. 理解配置原理 Claude Code作为基于Anthropic协议的编程助手工具,允许开发者自定义后端API服务地址。通过将其指向Taotoken平台,可以实现对平台所聚合的多模型资源的统一调用。这种配置方式特别适…...

从32s到1.8s:Python跨端二进制冷启动优化全流程,含CI/CD嵌入式Checklist

更多请点击: https://intelliparadigm.com 第一章:从32s到1.8s:Python跨端二进制冷启动优化全流程,含CI/CD嵌入式Checklist 问题定位与量化基线 冷启动耗时飙升至32秒,源于多平台(Windows/macOS/Linux/AR…...

Homarr:基于React与Docker的自托管服务统一仪表盘部署指南

1. 项目概述与定位如果你和我一样,家里或者公司里跑着一堆自托管服务,从媒体库的Plex、Jellyfin,到自动化下载的Sonarr、Radarr,再到网络管理的Pi-hole,那么你肯定也面临过同一个烦恼:管理入口太分散了。每…...

从零到一:手把手教你用Docker在Ubuntu 22.04上部署Open5GS 5G核心网

从零到一:手把手教你用Docker在Ubuntu 22.04上部署Open5GS 5G核心网 1. 环境准备与基础配置 在开始部署Open5GS之前,我们需要确保基础环境满足要求。Ubuntu 22.04 LTS作为长期支持版本,提供了稳定的运行基础。以下是详细的准备工作&#xff1…...

远程手术技术解析:5G与AI如何重塑医疗未来

1. 医疗远程手术的现状与技术挑战 远程手术已经从科幻概念转变为医疗领域的迫切需求。根据世界卫生组织预测,到2030年全球外科医生缺口将达到450万,而偏远地区医疗机构获取专家资源的难度更是雪上加霜。传统解决方案如患者转运不仅成本高昂,…...

多智能体系统架构解析:从模块化设计到Python实践

1. 项目概述与核心价值 最近在开源社区里,一个名为 Mohammadibrahim55/agents 的项目引起了我的注意。乍一看,这只是一个以“agents”命名的仓库,但当你深入进去,会发现它远不止一个简单的代码集合。它实际上是一个围绕“智能体…...

RISC-V向量扩展(V Extension)在AI推理场景适配翻车实录:为何你的ResNet50推理速度反降40%?

更多请点击: https://intelliparadigm.com 第一章:RISC-V向量扩展(V Extension)在AI推理场景适配翻车实录:为何你的ResNet50推理速度反降40%? 当团队将 ResNet50 从 x86 AVX-512 迁移至 RISC-V V Extensio…...

多模态文档检索系统:从原理到工程实践

1. 项目背景与核心价值文档检索系统正在经历从传统关键词匹配到语义理解的范式转变。我在过去三年参与的企业知识库升级项目中,深刻体会到单纯依赖文本嵌入的局限性——当用户用"那个蓝色封面的操作手册"或"去年会上展示的柱状图报告"进行搜索时…...

12.人工智能实战:RAG 检索命中了但回答仍然错误?上下文压缩、引用约束与反幻觉 Prompt 的工程实践

人工智能实战:RAG 检索命中了但回答仍然错误?上下文压缩、引用约束与反幻觉 Prompt 的工程实践 一、问题场景:资料明明找到了,模型还是胡说 上一篇我们解决了 RAG 系统里最常见的问题: 召回不准通过: 结…...

别再乱用uni.navigateTo了!uni-app五种路由跳转API的保姆级选择指南

别再乱用uni.navigateTo了!uni-app五种路由跳转API的保姆级选择指南 在uni-app开发中,路由跳转是构建应用导航的基础能力,但很多开发者往往只停留在"能用"层面,对五种核心API的区别和适用场景缺乏深度理解。你是否遇到过…...

Arm Fast Models硬件追踪组件在嵌入式调试中的应用

1. Arm Fast Models追踪组件概述在嵌入式系统开发领域,硬件行为追踪是调试和验证的关键手段。Arm Fast Models提供的trace组件系统能够实时捕获硬件模块的寄存器访问、状态转换和中断信号等关键事件。这套系统特别适用于以下场景:驱动开发阶段的寄存器操…...

11.人工智能实战:RAG 问答总是“答非所问”?从召回失败到重排优化的完整工程排查与解决方案

人工智能实战:RAG 问答总是“答非所问”?从召回失败到重排优化的完整工程排查与解决方案一、问题场景:模型不傻,但它拿到的上下文是错的 在做企业知识库问答系统时,很多人第一版架构通常是这样: 用户问题↓…...

用贪心算法搞定多机调度:一个Python实现带你理解最长处理时间优先策略

用贪心算法实现高效多机调度:Python实战与策略优化 在分布式计算和任务调度领域,如何合理分配有限的计算资源以最小化总完成时间是一个经典难题。想象一下这样的场景:你手头有数十个数据处理任务,每项任务耗时不同,而可…...

猫抓Cat-Catch资源嗅探工具终极实战指南:3步轻松捕获网页多媒体资源

猫抓Cat-Catch资源嗅探工具终极实战指南:3步轻松捕获网页多媒体资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到这样…...

核心组件大换血:Backbone与Neck魔改篇:YOLO26缝合FasterNet主干:基于PConv(部分卷积)的延迟与算力双优化

一、为什么你的“轻量级”YOLO跑不快?——问题的根源 很多做目标检测落地的开发者都有这样的困惑:用了各种“轻量级”骨干网络替换YOLO原生Backbone,FLOPs(浮点运算次数)确实降了,但实际跑起来延迟还是高、吞吐上不去,尤其在边缘设备和CPU上更加明显。这就好比你买了一…...

核心组件大换血:Backbone与Neck魔改篇:YOLO26引入VanillaNet基础极简架构:反直觉的无跳连接也能涨点?

导语:一个违反“深度学习常识”的实验 2026年1月,Ultralytics正式发布了YOLO26——一个从底层重新设计、专为边缘和低功耗环境打造的统一检测架构。根据Ultralytics官方在2026年1月发布的介绍,YOLO26并非一次渐进式升级,而是代表了生产级视觉AI在训练、部署和扩展方式上的…...

为什么你的Windows资源管理器需要QTTabBar?3个理由告诉你答案

为什么你的Windows资源管理器需要QTTabBar?3个理由告诉你答案 【免费下载链接】qttabbar QTTabBar is a small tool that allows you to use tab multi label function in Windows Explorer. https://www.yuque.com/indiff/qttabbar 项目地址: https://gitcode.co…...

Java代码优化技巧:循环展开与内存访问优化

循环展开优化循环展开&#xff08;Loop Unrolling&#xff09;是一种减少循环控制开销的技术&#xff0c;通过减少循环次数、增加每次迭代的工作量来提升性能。适用于循环体简单且迭代次数固定的场景。示例代码&#xff1a;未展开的循环for (int i 0; i < 100; i) {sum ar…...

Docker容器化部署OpenClaw AI智能体:安全隔离与自动化实践指南

1. 项目概述&#xff1a;在Docker中安全运行OpenClaw如果你和我一样&#xff0c;对AI智能体&#xff08;Agent&#xff09;的潜力感到兴奋&#xff0c;但又对让它直接在你的开发机上“为所欲为”心存顾虑&#xff0c;那么今天分享的这个项目绝对值得你花时间了解一下。我最近在…...

第五部分-后期特效与着色器——24. 后期特效基础

24. 后期特效基础 1. 概述 后期特效&#xff08;Post-Processing&#xff09;是在场景渲染完成后&#xff0c;对渲染结果进行额外处理的技术。通过 EffectComposer 合成器&#xff0c;可以叠加多种特效&#xff0c;如泛光、景深、颜色校正等。 ┌───────────────…...

云原生部署技能包:为智能体与自动化工作流提供多云一键部署能力

1. 项目概述&#xff1a;一个云原生部署的智能“副驾驶”最近在折腾一个挺有意思的开源项目&#xff0c;叫cloud-deploy-skill。简单来说&#xff0c;它不是一个独立的部署工具&#xff0c;而是一个可以被集成到智能体&#xff08;Agent&#xff09;或自动化工作流中的“技能包…...

Bonsai:为Cursor AI瘦身的本地化规则集,节省65% Token

1. 项目概述&#xff1a;Bonsai - 为 Cursor AI 瘦身的本地化规则集如果你和我一样&#xff0c;日常重度依赖 Cursor 这类 AI 编程助手&#xff0c;那你肯定也经历过那种“话痨式”的回复。每次问一个简单的技术问题&#xff0c;它总会先来一段“当然可以&#xff01;”&#x…...

5个实战技巧:用VinXiangQi深度AI分析突破象棋对弈瓶颈

5个实战技巧&#xff1a;用VinXiangQi深度AI分析突破象棋对弈瓶颈 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 你是否经常在象棋对弈中陷入开局被动、中…...