0


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

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

文章目录

前言

前面我们已经基本了解了什么是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取消命令,这样可以尽量降低损失。

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

标签: mysql 数据库

本文转载自: https://blog.csdn.net/m0_73888323/article/details/130985873
版权归原作者 不能再留遗憾了 所有, 如有侵权,请联系我们删除。

“MySQL秘籍:让你的表操作炉火纯青”的评论:

还没有评论