期末复习总结!!【MySQL】库和表的基本操作 + 增删改查CURD
文章目录
- 前言
- 一、数据库的基本操作
- 1, 查看库
- 2, 创建库
- 3, 使用库
- 4, 删除库
- 二、表的基本操作
- 1, 创建表
- 2, 查看表
- 3, 查看表结构
- 4, 删除表
- 三、增加(Create)
- 四、查询(Retrieve) (重点)
- 1, 全列查询
- 2, 指定列查询
- 3, 查询字段为表达式
- 4, 指定别名
- 5, 去重
- 6, 排序
- 7, 条件查询
- 7.1, 基本查询
- 7.2, 且(and)与或(or)
- 7.3, 范围查询
- 7.4, 模糊查询
- 8, 分页查询
- 五、更新(Update)
- 六、删除(Delete)
- 总结
前言
各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你:
📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等
📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等
📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)
从本篇开始介绍 MySQL 数据库的相关知识

提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!
一、数据库的基本操作
首先要明确MySQL这个数据库软件, 是一个客户端服务器程序, 所有的数据都存放在数据库中, 其中库与表的关系 :

所以在进行表的操作之前, 先得有数据库, 下面简单介绍数据库的基本操作
1, 查看库
sql 语句 : show databases; 查看服务器中已有的数据库

这些数据库都是本机自带的数据库, 不要乱删!!!
2, 创建库
sql 语句 : create database 数据库名; 创建新的数据库

更完整的 sql 语句为 : create database if not exists 数据库名 charset 字符集;
3, 使用库
sql 语句: use 数据库名; 选中数据库

在对表中的数据进行增删改查之前必须要先选中数据库
4, 删除库
sql 语句: drop database 数据库名; 所谓的"程序员删库跑路"就是这个操作

注意, 删库是非常危险的行为!!! 一旦删除,数据库里的表也都没了, 数据极有可能就无法恢复了,尤其是公司中的一些重要的数据(生产环境的数据)
由于真实的数据库中的数据可能是时刻变化的, 即便是有办法备份, 也会造成严重损失


二、表的基本操作
在进行表操作之前, 要先选中数据库 : use 数据库名;
1, 创建表
sql 语句 : create table 表名 (列名 类型, 列名 类型....); 注意列名在前, 类型在后

- 姓名是字符串类型 在 MySQL 中的数据类型是 varchar(长度), 表示可边长字符串类型, 括号中可以指定字符串长度, 一般姓名, 性别什么的无脑指定 50 就够用
2, 查看表
sql 语句 : show tables; 显示(已选中的)数据库中所有的表

3, 查看表结构
sql 语句 : desc 表名; 这个 desc 是 describe(描述) 的意思

现在只需要关心前两个, 后面的字段是什么意思在后续的文章中介绍
4, 删除表
sql 语句 : drop table if exists 表名; (if exists 可以省略) 和删库一样, 危险操作 (if exists 可以省略)

简单认识了上述库和表的基本操作后, 接下来介绍基础的增删改查
CURD 分别是 : 增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)
在增删改查之前, 先准备一张学生表(id, 学号, 姓名)

三、增加(Create)
sql 语句 : insert into 表名 values(字段, 字段...);往表中插入数据
-
单行, 全列插入(一次插入一行数据)

-
多行, 全列插入(一次插入多行数据)
用逗号把各行的数据分开, 换行显得更加美观

-
单行, 指定列插入
表名后面指定要插入的列名, values 后面的字段类型必须一一对应

-
多行, 指定列插入

先来查询一下刚才插入的数据是否都成功了(查询语句下面详细介绍)

通过对比得知, 全部都插入对了, 但是下面三行数据的 sn(学号) 显示为 NULL , 是因为我们使用的是指定列插入的方式, 没有给这一列插入数据, 所以为 NULL

接下来介绍查询语句, 也是平常用的最多, 最重要的部分
先准备一张表, 形如"成绩单"

插入以下成绩

四、查询(Retrieve) (重点)
1, 全列查询
sql 语句 : select * from 表名; , 星号是一个通配符, 表示查询表中所有的列

注意, 由于现在查询出来的只是一张临时表, 也就是从硬盘中把数据读到内存, 在当前页面显示, 如果表中的数据本身非常庞大, 使用全列查询会非常非常吃网卡的带宽
现在我们的数据量少, 可以随便使用, 一旦数据量大, 就几乎不能使用这条 sql 语句, 而是使用以下 sql 语句来减少临时表中的数据
2, 指定列查询
既有指定列插入, 也有指定列查询
例如, 我要查询每个学生的语文成绩
sql 语句 : select 列名, 列名... from 表名;

3, 查询字段为表达式
例如, 要查询每个同学的总成绩
sql 语句 : select 列名/表达式 , 列名/ 表达式... fron 表名;

4, 指定别名
由于是查询出来的只是临时表, 不会改变原来表中的数据, 可以在查询时指定别名
例如刚刚查询总成绩, 临时表显示出来的 chinese + math + english 可以改成 total
sql 语句 : select 列名/表达式 as 别名... from 表名;

5, 去重

这张表中, 喜羊羊和灰太狼的英语成绩都是 56, 沸羊羊和小灰灰的英语成绩都是 90, 在查询时可以进行去重
sql 语句 : select distinct 列名, 列名.. from 表名;

去重失败的原因是, distinct 选择了多个列, 只有这两个列的数据都相同才能去重
如果只选择一个列, 就可以去重了

6, 排序
sql 语句 : select 列名, 列名... from 表名 order by 列名 asc/desc;
1, asc 是 ascend 的缩写, 表示升序 desc 是 descend 的缩写
2, 注意这里的 desc 和查询表结构的 desc 虽然关键字一样, 但是作用和场景都不同
3, 如果不指定排列方式, 默认升序
4, 如果列中的值是 NULL,则表示最小值
-
对数学成绩进行降序排列

-
对总分进行升序排列

-
对多个字段排序, 按照书写优先级
按照英语优先, 数学其次, 语文最次的优先级进行降序排列

7, 条件查询
sql 语句 : select 列名 from 表名 where 条件语句;
条件查询的作用时, 查询之前就过滤掉不符合条件的数据记录
7.1, 基本查询
- 查询数学成绩不及格的同学

- 查询英语成绩比数学成绩高的同学

- 查询总分小于100分的同学

7.2, 且(and)与或(or)
-
表示且, sql 语句 :
select 列名, 列名... from 表名 where 条件语句 and 条件语句;
查询各科成绩都在 90 以上的同学

-
表示或, sql 语句 :
select 列名, 列名... from 表名 where 条件语句 or 条件语句;
查询有一科成绩在 90 以上的同学

7.3, 范围查询
- 表示在范围内, sql 语句 :
select 列名, 列名 from 表名 where 值 between...and...;
查询数学成绩在 80~90 之间的同学

- 表示在选项之内, sql 语句 :
select 列名, 列名 from 表名 where 值 in (A,B,C,D...);
查询数学成绩是 58, 59, 98, 99 的同学

7.4, 模糊查询
sql 语句 : select 列名 from 表名 where 字段 like...;
例如我要查询名字最后一个字是"狼" 可以使用 name like “_狼” 或"%狼"
_ 和 % 都是通配符, _ 只能占用一个字符, % 可以占用多个字符

或者查询名字最后一个字是"羊"

8, 分页查询
如果表中数据量太大, 会排列在一页显示, 这不方便我们观察数据, 可以使用分页查询
sql 语句 : select 列名 from 表名(where 条件语句) limit n offset s ; 表示从第 s 条数据开始 查询 n 条

还有两种形式 :
select 列名 from 表名(where 条件语句) limit n ; 从 0 开始查询 n 条
select 列名 from 表名(where 条件语句) limit s, n ; 从 s 开始查询 n 条
都不够明确, 所以不推荐这样写
五、更新(Update)
sql 语句 : update 表名 set...
- 把喜羊羊的数学成绩改成 0 分

- 把数学成绩不及格的都改成 61 分

六、删除(Delete)
sql 语句 : delete from 表名 (条件语句) 同样是危险操作, 使用前要慎重
- 要删除某一行数据, 必须要加条件语句, 比如删掉"沸羊羊"的数据记录

- 如果不加 where 条件语句, 就会删掉表中所有的数据

数据都没了, 但是表还在, 要想把表删掉, 需要使用 drop 关键字, 不要弄混了
总结
以上就是本篇的全部内容, 主要介绍了 数据库的基本操作, 表的基本操作, 还有对表中数据的增删改查
其中"查"的这部分尤为重要, 其中重点掌握条件查询, 另外, 任何与删除相关的操作都需要慎重
如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~
上山总比下山辛苦
下篇文章见

相关文章:
期末复习总结!!【MySQL】库和表的基本操作 + 增删改查CURD
文章目录 前言一、数据库的基本操作1, 查看库2, 创建库3, 使用库4, 删除库 二、表的基本操作1, 创建表2, 查看表3, 查看表结构4, 删除表 三、增加(Create)四、查询(Retrieve) (重点)1, 全列查询2, 指定列查询3, 查询字段为表达式4, 指定别名5, 去重6, 排序7, 条件查询7.1, 基本…...
线上问题处理案例:出乎意料的数据库连接池 | 京东云技术团队
导读 本文是线上问题处理案例系列之一,旨在通过真实案例向读者介绍发现问题、定位问题、解决问题的方法。本文讲述了从垃圾回收耗时过长的表象,逐步定位到数据库连接池保活问题的全过程,并对其中用到的一些知识点进行了总结。 一、问题描述…...
有了 IP 地址,为什么还要用 MAC 地址?
MAC地址等价于快递包裹上的收件人姓名。 MAC地址更多是用于确认对方信息而存在的。就如同快递跨越几个城市来到你面前,快递员需要和你确认一下收件人是否正确,才会把包裹交给你一样。 IP66在线查IP地址位置:https://www.ip66.net/?utm-sour…...
ChatGPT 推出 iOS 应用,支持语音输入,使用体验如何?
最近,OpenAI 宣布推出官方 iOS 应用,允许用户随时随地访问其高人气 AI 聊天机器人,此举也打破了近几个月内苹果 App Store 上充斥似是而非的山寨服务的窘境。 该应用程序是 ChatGPT 的首个官方移动应用程序。ChatGPT 软件程序在去年推出后迅速…...
【科普】干货!带你从0了解移动机器人(二)—— 移动机器人硬件组成
移动机器人是一个多功能于一体的综合系统,内容涵盖了传感器技术、自动化技术、信息处理、电子工程等,它集环境感知、动态决策与规划于一体,是目前科学技术发展最活跃的领域之一。移动机器人的各种组件之间需要协同工作才能实现机器人的自主移…...
WIN提权 令牌窃取进程注入
令牌窃取(鸡肋玩意 2008包括2008以下) 令牌,又叫token,是系统临时产生的秘钥,相当于账号密码,用来决定是否允许此次请求和判断此次请求是属于哪一个用户。 win7一下的版本可以尝试 这里使用msf上自带的令…...
CSS 提高性能的方法,并提供一些实用的技巧和代码示例
CSS 是前端开发中不可或缺的一部分,它负责网页的样式和布局。随着网站规模和复杂度的增加,CSS 的性能也变得越来越重要。本文将介绍 CSS 提高性能的方法,并提供一些实用的技巧和代码示例。 使用压缩后的 CSS 文件 压缩 CSS 文件可以减小文件…...
程序员:面试造火箭,入职拧螺丝?太难了···
刚开始工作的时候,我也想不通这个问题,甚至很鄙视这种现象。后面当了面试官,做到了公司中层管理,也会站在公司以及行业角度去重新思考这个问题。 为什么这种现象会越来越普遍呢?尤其在 IT 行业愈加明显。 面试看的是…...
pg事务:隔离级别历史与SSI
事务隔离级别的历史 ANSI SQL-92定义的隔离级别和异常现象确实对数据库行业影响深远,甚至30年后的今天,绝大部分工程师对事务隔离级别的概念还停留在此,甚至很多真实的数据库隔离级别实现也停留在此。但后ANSI92时代对事物隔离有许多讨论甚至…...
【滑动窗口】【单调队列】个人练习-Leetcode-2373. Largest Local Values in a Matrix
题目链接:https://leetcode.cn/problems/largest-local-values-in-a-matrix/ 题目大意:给出一个N*N矩阵,要求做池化操作,选出每个3*3矩阵的最大值,返回一个(N-2)*(N-2)矩阵 思路:这是个简单题,…...
工厂蓝牙定位技术的原理、应用场景、优势及潜在问题
蓝牙定位技术是近年来在工业领域中得到广泛应用的一项技术。随着工业自动化的快速发展和物联网技术的普及,工厂蓝牙定位成为了提高生产效率、优化生产流程和管理的重要工具。本文将详细介绍工厂蓝牙定位技术的原理、应用场景以及其在工业生产中的优势。 首先&#x…...
Linux内核模块编程
访问【WRITE-BUG数字空间】_[内附完整源码和文档] 1 总体设计思路 Linux内核是单体式结构,相对于微内核结构而言,其运行效率高,但是系统的可维护性和可扩展性较差。为此,Linux提供了内核模块(module)机制&…...
每日一练 | 网络工程师软考真题 Day8
1、某客户端采用ping命令检测网络连接故障时,发现可以ping通127.0.0.1及本机的IP地址,但无法ping通同一网段内其他工作正常的计算机的IP地址。该客户端的故障可能是 。 A.TCP/IP协议不能正常工作 B.本机网卡不能正常工作 …...
springBoot如何【禁用Swagger】
需求: 生产环境下,需要关闭swagger配置,避免接口暴露。 方法: 1、使用注解Value() 2、使用注解Profile({“dev”,“test”}) 表示在开发或测试环境开启,而在生产关闭。 3、使用注解ConditionalOnProperty(name “s…...
数据库原理及应用上机(实验四 SQL连接查询)
✨作者:命运之光 ✨专栏:数据库原理及应用上机实验 目录 ✨一、实验目的和要求 ✨二、实验内容及步骤 ✨三.实验结果 ✨四、实验总结 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不…...
linux上使用系统安装和Docker安装mysql的两种方式
一、安装到linux 1、安装mysql-server 1、在安装之前查看下系统是否已经安装了mysql ls /usr/share2、安装mysql-server sudo apt-get install mysql-server3、再次查看,发现多了个mysql ls /usr/share | grep mysql //在ls打印结果中搜索mysql关键字4、登陆 在…...
解决Mac下载官网JDK速度过慢的问题
换了新电脑,用mac完去官网下载jdk,发现速度过于慢,要等非常久,为了解决这个问题,提供一个方法:将mac的网络换成手机热点,接着再去官网下载jdk1.8,速度快的飞起。 jdk1.8下载的链接&a…...
笔记本wifi与台式机、内网服务器共网、共享wifi详细教程
内容包括两个部分: 笔记本、台式机共网,笔记本连接WiFi,台式机通过网线连接笔记本电脑;笔记本、服务器共网,笔记本连接WiFi,服务器通过网线连接笔记本电脑。 1)稍微简单易操作,2&am…...
纵观人类发展史,我发现了一个秘密!
文 / 高扬(微信公众号:量子论) 纵观人类的历史,就是工具化日益增强的历史。通过创新工具、解放生产力,人类从茹毛饮血到现在设计模型驾驭人工智能,一路从刀耕火种走到信息时代。 远古时期,人们偶…...
HDFS的数据流
1.HDFS写数据流程 (1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 (2)NameNode返回是否可以上传。 (3)客户端…...
Matlab串口通信上位机开发:从零搭建实时数据采集系统(附完整代码)
Matlab串口通信上位机开发实战:从零构建工业级数据采集系统 在工业自动化、物联网设备调试和科研实验数据采集领域,串口通信作为最基础也最可靠的数据传输方式,至今仍发挥着不可替代的作用。Matlab凭借其强大的数值计算能力和丰富的可视化工具…...
CD44(分化簇44)靶点机制与抗体药物研发:从信号通路到临床转化
在细胞生物学与免疫治疗领域,CD44(分化簇44) 作为细胞黏附分子家族的核心成员,始终是科研关注的焦点。作为一种广泛表达于细胞表面的单跨膜糖蛋白,CD44不仅在细胞与细胞外基质的相互作用中扮演关键角色,更通…...
JIT缓存命中率低于41%?Python 3.14三大隐式开销源深度溯源,立即修复可提升吞吐量2.1倍
第一章:Python 3.14 JIT 编译器性能调优概览Python 3.14 引入了实验性内置 JIT(Just-In-Time)编译器,基于 LLVM 后端实现,旨在对热点函数进行动态编译优化,显著提升数值计算、循环密集型及递归场景的执行效…...
Linux设备驱动 -- RTC驱动移植DS1339
查看原理图RTC芯片采用的是DS1339芯片,这是达拉斯半导体公司的一款RTC芯片,使用I2C接口。 芯片接在RK3568的I2C5。 Linux内核支持DS1339 检索linux内核是否支持DS1339芯片驱动。 通过搜索可知到,Linux系统内核中已有达拉斯DS1339的驱动&#…...
保姆级教程:用海康VM搞定机械臂90度旋转放置的坐标纠偏(附旋转计算模块配置)
工业视觉实战:海康VM在机械臂90度旋转放置中的坐标纠偏全解析 当机械臂在放置前需要旋转90度时,视觉引导系统输出的坐标往往会出现偏差。这个问题困扰着不少自动化工程师——明明标定做得一丝不苟,为什么实际放置时还是会出现偏移?…...
MVN--07
一、MyBatis 参数封装规则MyBatis 会根据接口方法的参数类型,自动进行不同的封装处理,核心由 ParamNameResolver 类实现。1. 单个参数的封装规则表格参数类型封装规则XML 中取值方式POJO 实体类直接使用,无需额外处理#{属性名}(属…...
金融系统的测试特殊性:安全、合规与性能
对于软件测试从业者而言,金融系统的测试是一个充满独特挑战与高度专业要求的领域。这并非简单的功能验证,而是一项直接关乎资金安全、市场稳定与公众信心的系统性保障工程。其特殊性根植于金融业务本身的严肃性、高价值属性及严密的监管环境,…...
CppJieba中文分词架构深度解析与实战指南
CppJieba中文分词架构深度解析与实战指南 【免费下载链接】cppjieba "结巴"中文分词的C版本 项目地址: https://gitcode.com/gh_mirrors/cp/cppjieba CppJieba作为"结巴"中文分词的C高性能实现,为C开发者提供了工业级的中文分词解决方案…...
# 拍摄剪辑文案公司哪个技术强?专业视角解析行业标杆在数
拍摄剪辑文案公司哪个技术强?专业视角解析行业标杆在当今数字内容爆炸式增长的时代,优质视频内容已成为品牌营销的核心竞争力。"拍摄剪辑文案策划"的一站式服务模式,正在取代传统的分散作业方式,为各类企业提供更高效的…...
windows安装达梦数据库
在官网下载对应需要的安装包: https://www.dameng.com/download/index.html 下载后解压: 点击镜像开始安装: 这里没有key先不填直接下一步: 根据需要安装,这里默认全部安装: 指定安装目录地址࿱…...
