MySQL秘籍:让你的表操作炉火纯青

news2024/11/27 14:35:01

💕每个人都有自己的一生,不要和别人去比较。比较只会让你感到沮丧和不满足。关注自己的成长和进步,并享受属于自己的旅程。 💕
🐼作者:不能再留遗憾了🐼
🎆专栏:MySQL学习🎆
🚗本文章主要内容:学习MySQL的对表操作。查看表、创建表、删除表,对表进行增删改查🚗
在这里插入图片描述

文章目录

  • 前言
  • 显示数据库里的所有表
  • 创建表
  • 查看指定表结构
  • 删除表
  • 注释
  • 对表进行增删改查
    • 1.新增数据
      • 单行数据,全列插入
      • 单行数据,指定列插入
      • 多行数据插入
      • 特殊类型:时间的插入
    • 2.查询数据
      • 全列查询
      • 指定列查询
      • 查询字段为表达式
      • 别名
      • 去重
      • 查询结果排序
      • 条件查询
        • 基本查询
        • and 与 or
        • 范围查询
        • in
        • 模糊查询
        • null查询
        • 分页查询
    • 3.修改
    • 4.删除
  • 结语

前言

前面我们已经基本了解了什么是MySQL、MySQL的发展以及MySQL的对库操作初识MySQL,那么今天我为大家分享的是MySQL中重要的对表操作。

显示数据库里的所有表

在进行表操作的之前,首先需要建立在库的基础上,因为我们的表是包含在库中的,所以我们需要先创建一个库,然后选中该库,表明对该库进行操作。

在这里插入图片描述

当选中库之后,使用 show tables 来显示表。

在这里插入图片描述

因为这里我们并没有创建表,所以显示的为空

创建表

使用 create table 表名 (列名,类型); 创建表。

要想创建表就需要知道MySQL的通用数据类型有哪些。
在这里插入图片描述

不同数据库的基本数据类型
在这里插入图片描述

然后我们选择合适的数据类型来创建表。
在这里插入图片描述

查看指定表结构

使用 desc 表名; 查看指定表的表结构。

在这里插入图片描述
在这里插入图片描述

删除表

使用 drop table 表名 删除表。
在这里插入图片描述

注意这里删除表操作跟删除库操作一样,要十分小心,否则可能会出现很严重的问题。

注释

MySQL跟其他编程语言都一样,都可以对源码进行注释。MySQL进行注释的方法有三种:
1.使用 comment 关键字进行注释
2.使用 “–空格+描述”来表示注释说明 来进行注释,- -
3.使用 # 进行注释

在这里插入图片描述
在这里插入图片描述

并且这个这个注释只是会出现在你的源代码中,不会存储到数据库中。

对表进行增删改查

1.新增数据

单行数据,全列插入

使用 insert (into) 表名 values (值,值); 新增数据,这里的into是可以省略的,但是不建议省略。

在这里插入图片描述
但是这里为什么会出现错误呢?很简单,因为这里默认的字符集是不支持汉字的,所以我们在创建库的时候需要指定字符集。
平时常用的字符集包括:
gbk 两个字节表示一个汉字
utf8 三个字节表示一个汉字(更通用)

在这里插入图片描述
在这里插入图片描述
这里 select * from student 是全列查询,我们先使用,后面再分析,知道是查询列就行了。

单行数据,指定列插入

不仅如此,我们还可以指定列插入,使用 insert into 表名 (列名,列名) values (值,值); 进行指定列插入。

在这里插入图片描述

多行数据插入

那么当我们想要插入多组数据的时候,难道我们要一组一组的添加吗?当然不是,我们可以一次添加多个数据。使用 insert into 表名(列名,列名) values (值,值),(值,值); 进行多个数据的插入,可以搭配着指定列插入。

在这里插入图片描述
这里一次插入多个数据跟一次插入一个数据来说,效率提高了不少,因为 一次插入N个记录(只需要客户端和服务器交换一次);分N次插入,一次插入一个记录(需要客户端与服务器交互N次); 客户端与服务器发生交互是需要时间的,所以一次插入多组数据大大节省了时间。

特殊类型:时间的插入

当我们想要插入数据的时候,只需要注意该信息所对应的数据类型就行了,但是都是这样的吗?有一个例外:时间的插入。时间的插入需要特定格式的字符串来插入,比如说要插入一段时间,我们需使用datetime类型,并且插入使用 ‘2023-05-31 23:35:30’,年月日之间用’ - ‘隔开,时分秒之间用’ : '隔开,时分秒与年月日用’ ‘隔开。

在这里插入图片描述
在这里插入图片描述
MySQL还提供了一个函数来表示当前时间。now() 表示当前时间。
在这里插入图片描述

2.查询数据

服务器会根据请求的sql查询保存的数据,把数据读取出来通过为网络返回给客户端,生成一个“临时表”(结果集)。

我们创建一个新的表来分析查询数据
在这里插入图片描述
在这里插入图片描述

全列查询

前面我们已经使用了全列查询select * from 表名; 。使用全列查询可以将表中的所有列都给显示出来。

" * “叫做通配符,可以理解为扑克牌中的赖子,不考虑大小王,赖子可以代替任何牌,所以这里” * "就可以理解为所有。

在这里插入图片描述

指定列查询

当数据量非常大的时候,使用 select * from 表名 操作可能会发生危险,因为服务器需要从数据库中短时间内读取出大量的数据,瞬间吃满硬盘带宽和网络带宽,导致其它程序无法使用硬盘或者网络。

那么我们可以只读取我们需要的列,而不是读取出所有列。
select 列名,列名··· from 表名;,指定列读取数据。
在这里插入图片描述

查询字段为表达式

在查询数据的时候,我们可以将列于列之间进行计算之后再显示出来,也可以是单列进行计算,需要注意是列与列之间的运算,不是行与行之间的计算。

😊 单列之间的计算
在这里插入图片描述
这里可能有人会问了,我创建表的时候不是定义了decimal(3,1)吗,那么这里的位数都超过3了,为什么还能显示出来呢?
答:前面我们说过我们看到的表只是一个临时表,跟数据库中的表其实并没有什么关系,所以临时表的数据类型取决于默认数据类型。

👨‍🦱列与列之间的计算
在这里插入图片描述
通过上面的图片我们可以知道,新的列名是我们进行计算的表达式。
但是我们可以看到这个列名chinese + math + english属实不好看且不直观,那么我们是否有办法可以使展示的列名好看又直观呢?

别名

使用 select 列名,列名 as 别名 from 表名; 来使显示出来的列名改为我们的别名。这里的as可以省略,但还是建议不省略。
在这里插入图片描述

去重

我们可以使用 select distinct 列名 from 表名;,来指定列进行去重,只保留一个数据。

在这里插入图片描述

查询结果排序

使用 select 列名 from 表名 order by 列名 desc(asc); ,后面的desc表示按降序排列,asc按升序进行排列。排序查询可以结合前面的指定列查询、别名、去重和表达式查询使用。

在这里插入图片描述
不仅如此,查询结果排序还可以指定多个列,在这多个列中分主次地位,也就是说他们所占的权重是从大到小的。按降序排列,就算你A后面的列大于B的列,但是你前面的列B大于A,那么B就排序在A的前面。

在这里插入图片描述
如果两个人的数学成绩相同,那么就接着比较语文成绩,如果语文成绩也相同的话就在比较英语成绩。

条件查询

select 列名 from 表名 where 子句; 在查询的时候指定查询条件,符合条件的数据留下,不符合的就跳过。

在使用条件查询之前,我们需要知道MySQL中有哪些比较运算符和逻辑与算符。

🎁比较运算符
在这里插入图片描述
🎁逻辑运算符
在这里插入图片描述

基本查询

在这里插入图片描述
在这里插入图片描述
这里可能会有人问了,既然我前面的chinese + math + english已经别名为total了,那么我的where后面可以将chinese + math + english换成total吗?
在这里插入图片描述
答案是不可以的,我们看报错可以知道,这里根本就不认识total,这是为什么呢?我前面不是重命名了吗?那是因为 sql命令是先执行where条件,然后再执行前面的select语句,所以在执行where条件的时候total并未定义。

and 与 or

and 与 or就类似于c语言和Java的&& 和 || ,是并且和或者的意思。
🎁and
在这里插入图片描述
🎁or
在这里插入图片描述

范围查询

between A and B ,查询出数据在A到B之间的数据,注意这里的范围是左闭右闭,A <= C <= B

在这里插入图片描述

in

如果我们需要查询出数学成绩为65、84、85的同学,该怎么办呢?我们可以使用 or 。
在这里插入图片描述
如果数据少的话,我们这样写倒无所谓,但是如果数据多的时候呢?我们难道也是一个or一个or写吗?很显然是不方便的,所以就有 in 来解决这个问题。
在这里插入图片描述

模糊查询

当我们需要找出姓孙的人,而不是每一个具体的人时,我们就可以使用模糊查询。MySQL的模糊查询是使用 like 关键字,用 % 代表任意0个或者N个字符, _ 代表1个字符。
🎁 % 表示1个或者多个字符
在这里插入图片描述
🎁 _ 表示1个字符
在这里插入图片描述

null查询

如果我们需要查询出没有考试数学的人也就是数学成绩为null的人怎么办?

在这里插入图片描述
根据上面的图我们可以知道,通过’ = '来判断是否为null是不行的,那么我们应该如何判断null呢?
1. <=>
2. is null 和 is not null

在这里插入图片描述

分页查询

当表中的数据太多的时候,如果我们将他从全部展现出来的时候,不光人看不过来,系统方面的压力也是特别大的,那么我们应该如何解决呢?
在这里插入图片描述
这个分页我们都见过吧,就是如此,我们每个表出现的数据可以使用 limit 来限制数据的个数。

在这里插入图片描述
limit当然也可以搭配前面的几种查询使用。
在这里插入图片描述
limit还可以搭配offset使用,查询从第几个开始的几个数据。
在这里插入图片描述

3.修改

update 表名 set 列名 = 值 where 子句
在这里插入图片描述

4.删除

delete from 表名 where 子句
在这里插入图片描述
记住这里的where条件要设置好,如果没有where和limit限制,那么这个表中的数据都会被删除,只剩下一个空表了。

结语

MySQL数据库的每一个操作都是很危险的,大家在操作的时候一定要小心再小心,如果你的操作失误并且sql命令执行时间较长的时候,可以及时使用按CTRL+C取消命令,这样可以尽量降低损失。

最后,祝大家儿童节快乐,在这个六一儿童节,愿你们的内心依然保持着童真,享受着生活的美好,永远拥有一个快乐的童年!

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

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

相关文章

【LeetCode】11,盛最多水的容器。 难度等级:中等。双指针解法值得深入学习。

文章目录 一、题目二、我的解法&#xff1a;双重for循环&#xff0c;超出时间限制三、最优解法&#xff1a;双指针从两侧开始遍历 【LeetCode】11&#xff0c;盛最多水的容器。 难度等级&#xff1a;中等。 一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#x…

小米、华为、海尔竞争中,全屋智能「崛起」2023

智能家居进入下半场&#xff0c;互联网大厂凭借着自身的流量红利收割了一部分市场份额&#xff1b;家电企业在向家装企业转型的过程中&#xff0c;也有其自带的流量优势和渠道优势&#xff1b;通信厂商借着“链接”优势&#xff0c;三大阵营在智能家居行业都各占鳌头。 作者|思…

NPM 制作命令行工具 - 进阶辅助库

一、简介 通过 NPM 制作命令行工具 - 入门案例 已经基本知道如何制作命令行工具了&#xff0c;现在就是内部命令处理。 如果不使用第三方插件辅助&#xff0c;那就只能对传入的参数进行一个一个判断处理&#xff0c;添加注释&#xff0c;这是很麻烦的&#xff0c;所以&#xf…

移动端开发之基础知识:视口、三倍图、移动端开发选择、移动端技术解决方案、移动端常见布局

移动端开发之流式布局 移动端基础浏览器现状手机屏幕现状移动端调试方法 视口布局视口视觉视口理想视口总结&#xff1a; meta视口标签标准的viewport设置 三倍图物理像素&物理像素比多倍图背景缩放 background-size背景图三倍图 多倍图切图 cutterman 移动端开发选择移动端…

基于JavaWeb的私人牙科诊所管理系统

目录 1、项目背景 2、项目目标 3、项目功能 4、系统架构 5、项目源码 6、论文目录&#xff08;16000字&#xff09; 1、项目背景 在当前社会医疗水平的高速发展下&#xff0c;口腔方面的医疗在社会上不断发展壮大。私人化牙科诊所呈现蓬勃发展的趋势&#xff0c;各方面的…

【JavaSE】方法的使用--05

目录 一、方法的概念与使用 1.1 什么是方法 1.2 方法的定义 1.3 方法调用的执行过程 1.4 实参和形参的关系&#xff08;重要&#xff09; 1.5 有无返回值的方法 二、方法的重载 2.1 方法重载的概念 2.2 方法重载的要求 2.3 方法签名 前言&#xff1a; 之前很久没写这…

python基础----01-----环境搭建

一 python介绍 1.1 Python 特点 Python 是完全面向对象的语言。函数、模块、数宁、宁符串都是对象&#xff0c;在 Python 中一切皆对象。完全支持继承、重载、多重继承。支持重载运算符&#xff0c;也支持泛型设计。Python 拥有一个强大的标准库&#xff0c;Python 语言的核心…

谷云科技受邀出席2023华南CIO大会-应用与数据集成专家

2023年6月10-11日&#xff0c;我们将于中国珠海国际会展中心迎来第6届 S-CIO 2023华南CIO大会暨信息技术交易会 。大会将邀请近1000位来自广东、广西、福建、海南等地的企业IT高管及行业专家深入探讨企业数字化运营的关键问题&#xff0c;以“ 千人论坛-生态展区-专业分论坛-华…

2023年成人高考标准拿证流程(入学前入学后)

很多小伙伴对成人高考“报名→学习→毕业”的流程还是很陌生哈&#xff0c;下面给大家整理了一份详细的报考流程和攻略。 大家可以收藏起来&#xff0c;仔细看看。 成考全流程—入学前 5月—8月 联系报名机构老师预报名&#xff0c;选定自己要报考院校专业&#xff0c;了解报…

36 KVM管理设备-配置虚拟串口

文章目录 36 KVM管理设备-配置虚拟串口36.1 概述36.2 操作步骤 36 KVM管理设备-配置虚拟串口 36.1 概述 在虚拟化环境下&#xff0c;由于管理和业务的需求&#xff0c;虚拟机与宿主机需要互相通信。但在云管理系统复杂的网络架构下&#xff0c;运行在管理平面的服务与运行在业…

Servlet简介和环境设置

目录 Servlet 简介 Servlet 环境设置 导入jar包 web.xml文件配置 WebServlet注解配置 web.xml文件的方式和WebServlet区别 Servlet 简介 Servlet 是运行在 Web 服务器或应用服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上…

对csv文件,又get了新的认知(二)

背景 最近在做数据处理时&#xff0c;发现别人给的 csv 文件用 txt 打开后&#xff0c;发现里面的所有字段都是带双引号&#xff0c;与自己之前见过的 csv 文件有点不一样&#xff0c;自己脑海里面隐约也见过 python 有相关的设置参数&#xff0c;于是就查看 python 官方文档中…

Linux 常用开发工具(上)(yum、vim)知识点+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 耐心是一切聪明才智的基础。—— 柏拉图。本章进入到Linux下的一些常用的工具&#xff0c;这些工具能帮助我们去更好的使用Linux操作系统。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分&a…

一个无标记点面捕头盔,如何实现高精度面部表情捕捉?

在影视、动画、 游戏、虚拟直播应用中 虚拟数字人 可以犹如真人般实时驱动 背后少不了面部捕捉技术 随着面部捕捉技术不断革新&#xff0c;从有标记点到无标记点发展&#xff0c;再到如今佩戴一个面捕头盔就可以轻松做到精准面捕。 广州虚拟动力多年沉淀经验&#xff0c;根…

eslint导致的报错解决

当你利用脚手架在创建vue项目时&#xff0c;无脑创建下默认一定会安装eslint代码检测工具。那么你的噩梦就来了。eslint作为代码规范检测&#xff0c;不得不承认它的强大&#xff0c;但是绝对是会逼死一众强迫症患者。 比如你只是简简单单运行一个vue项目&#xff0c;报错一大堆…

10 EM(期望最大)算法

文章目录 10 EM&#xff08;期望最大&#xff09;算法10.1 背景介绍10.2 EM算法公式10.2.1 EM算法公式收敛性证明10.2.2 EM算法公式导出 10.3 广义EM算法10.3.1 EM有什么作用&#xff1f;10.3.2 为什么要引入广义EM&#xff1f;10.3.3 广义EM公式导出10.3.4 广义EM有什么不同 1…

RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口

串口 即串行通信接口&#xff0c;与之相对应的另一种接口叫并口&#xff0c;并行接口。两者的区别是&#xff0c;传输一个字节&#xff08;8个位&#xff09;的数据时&#xff0c;串口是将8个位排好队&#xff0c;逐个地在1条连接线上传输&#xff0c;而并口则将8个位一字排开…

2023 华为 Datacom-HCIE 真题题库 12(完结)--含解析

单项选择题 1.[试题编号&#xff1a;190728] &#xff08;单选题&#xff09;以下哪种工具不能用来匹配BGP路由条目&#xff1f; A、基本ACL B、高级ACL C、IP PREFIX LIST D、Community Filter 答案&#xff1a;B 解析&#xff1a;高级ACL是一种用于过滤IPv4报文的ACL&#…

记一次通过binlog日志恢复MySQL数据库的经历

通过binlog日志恢复MySQL数据库的数据 一、起因 起因是我在自己服务器上搭建的博客被黑客攻击&#xff0c;黑客删除了我的数据库并且要求支付比特币才给我恢复。 博客所有的表和数据都被清空&#xff0c;只留下了勒索金额和地址。如图 穷鬼如我当然是&#xff1a; 二、恢复数…

单源最短路的建图

1.热浪 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/problem_show.php?pid1379 很裸的单源最短路问题&#xff0c;n2500,可以用dijksta或者spfa都能过&#xff0c;下面展示spfa的做法 #include<bits/stdc.h> usi…