MySQL表的增删查改(嘎嘎详细~
创始人
2024-02-22 18:04:55
0

hello呀!各位,这里是Sunlightʊə。

目前大三,主要在学习Java语言。可以一起交流呀!

相关文章:

MySQL数据库的基础操作(简单、基础版

专栏:

Java数据结构

Java基础语法

MySQL基础

目录

新增(Create)

单行数据插入

多行数据插入

指定列插入

查询(Retrieve)

全列查询

指定列查询

查询字段为表达式

别名

去重

排序

条件查询

比较运算符

 模糊查询

分页查询

修改(Update)

 删除(Delete)


前言:

对于我们平时使用MySQL数据库来说,最多的操作无非就是增删改查,那么这篇文章就带着大家来了解一下MySQL的增删改查如何书写

新增(Create)

insert into 表名 values(列的值);

 在这里一个(),就对应一条记录。

一条记录也就是一行数据。(行是新增的基本单位)。

values()中的内容个数和类型要和表的结构相匹配。

举个例子:

create database student;//创建一个student库create table student(  //创建一个student表id int,            // 学生idsn int,            // 学生的学号name varchar(20),  // 学生姓名qq_mail varchar(20)// 学生的qq邮箱地址);

 插入:

 insert into student values(1,1001,"张三","12345678@qq.com");

 插入操作后,我们查询一下我们的学生表来看插入操作是否成功:

上图明显可以看出,我们的插入操作是成功的。

当然,如果不能插入中文的话,需要把数据库配置成支持中文的utf8编码方式。 

 在SQL中,   '   和     "       都可以表示字符串。

单行数据插入

insert into 表名 values(列的值);
insert into student values(2,1002,"李四","098653781@qq.com");
insert into student values(1,1003,"王五","235643566@qq.com");

 

多行数据插入

insert into 表名 values
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          );
insert into student values(4,1004,"三三","2320945@qq.com"),(5,1005,"二二","4345545@qq.com");

 

指定列插入

指定列插入时要注意,列的值的数量一定要和指定列的数量以及顺序一致

insert into 表名(指定列名) values(列值);
insert into student (id, sn,name) values(6,1006,"晨晨"),(7,1007,"小米");

 

查询(Retrieve)

查询使用的是select关键字。

 而select操作的是临时表

我们说,数据库的表都是写在硬盘上的,而这个地方说的临时表不在硬盘上,而是在内存中,随着进行输出后,数据也就会被释放掉

临时表的结果对数据库服务器的原始数据没有任何影响。

全列查询

全列查询是直接把一个表的所有的列所有的行查询出来。(当然,这里查询出来的表也是一个临时表)。

select * from 表名;

 这里的    *      是通配符,代表了一个表中所有的列。

但是在通常情况下,不建议使用      进行全列查询。

1.当我们表中的数据很多时,就意味着需要传输的数据量是超级超级大的。

2.可能会影响到索引的使用。

指定列查询

select 指定列 from 表名;

 列名和列名之间用逗号隔开。

指定列的顺序不需要按定义表的顺序来写。

 

查询字段为表达式

也就是说:在查询的时候同时对列和列进行一个运算操作

使用表达式查询的时候,查询的临时表的列表就是我们所写的表达式

 为了更好的介绍后面的操作,在这里我们再创建一个成绩表。

create table exam_score(id int,name varchar(20),chinese decimal(3,1),math decimal(3,1),english decimal(3,1));insert into exam_score (id,name, chinese, math, english) values(1,'唐三藏', 67, 98, 56), (2,'孙悟空', 87.5, 78, 77), (3,'猪悟能', 88, 98.5, 90), (4,'曹孟德', 82, 84, 67), (5,' 刘玄德', 55.5, 85, 45), (6,'孙权', 70, 73, 78.5),(7,'宋公明', 75, 65, 30);

-- 表达式不包含字段

select id, name, 10 from exam_score; 

-- 表达式包含一个字段 

select id, name, english + 10 from exam_score;

-- 表达式包含多个字段

select id, name, chinese + math + english from exam_score;

别名

别名相当于给查询结果的临时表指定了一个新的列名

临时表表头的列名=别名

select 列名,列名,列名......  表达式 (as) 别名 from 表名

 

去重

去重就是指,针对于查询的结果,将重复的记录去掉

 使用distinct关键字对某列的数据进行去重操作。

去重前:

 去重后: 去重前的数据中,98.0重复了,故去重时将重复的去掉。

排序

针对于查询结果的临时表进行排序,因为是对临时表进行排序所以不会影响到数据库服务器上面的原始数据

select 列名...... from 表名 order by 列名 [asc|deac];

 ASC:升序排列

DESC:降序排列

 排序前:

 排序后:

 1.没有order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。

2.ASC不写,默认也是升序

3.null数据排序,视为比任何数都小(升序null出现在最上面,降序null出现在最下面

 4.使用表达式别名排序。

 使用别名排序:

 使用表达式排序

5.对于多个字段进行排序时,排序优先级随书写顺序。(先看第一个标准、第二个、第三个......直到可以分出胜负即可。 

 

这里的math已经能分出胜负,所以后面的成绩不需要再排序。 

条件查询

比较运算符

运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于(在MySQL中是等于而不是赋值)
<=>等于(null<=>null)——>true
!= , <>不等于
between a0 and a1范围匹配,[a0,a1],如果a0<=value>=a1,返回true
in(option,.....)如果是option中任意一个值,那么返回true
is null是null
not null不是null
like模糊匹配。
and多个条件必须都为true,整个语句的结果才是true
or任意一个条件为true,整个语句是结果就是true
not条件为true,结果1为false。条件为false结果为true

1.where条件可以使用表达式,但是不能使用别名。

2.and的优先级高于or,在同时使用这两个条件时,需要用小括号()包裹住优先执行的部分。

select 列名 from 表名 where 条件;

 查询语文比英语成绩好的人

其中,chinese>english,指的是同一行的语文成绩和英语成绩比较,不涉及行与行的比较。

 临时表显示什么内容取决于select后面要查询的列怎么写,写或不写不会影响到后面的条件。

MySQL执行查询操作时,先针对于每一行记录,计算条件,并且按照条件筛选,满足条件的记录,才会取出对应的列,并且计算列里的表达式(生成别名

 模糊查询

1.%匹配任意多个(包括0个)字符

 2._匹配严格的一个任意字符

1. _ 代表的是任意单个字符。

2. % 代表任意长度的字符串。

3. _A% 代表返回第二个单词为A的任意字符串。 

分页查询

在查询语句的末尾,加上limit指定N,N就表示这次查询最大结果的数量。

起始下标为0.

从0开始,筛选出n个结果。
select ... from 表名[where][order by ...] limit n;从s开始,筛选出n个结果。
select ... from 表名[where][order by ...] limit s , n;从s开始,筛选n个结果,但是比上一条更好用。
select ... from 表名[where][order by ...] limit n offset s;

修改(Update)

修改多个列:多个列之间使用" ,  "来分搁开。

update 表名 set 列名 = 值[where条件];

修改操作后,是切实的在服务器中的硬盘数据。 

如果没有写where子句,就是匹配了所有行,但如果有null,就只修改了不是null的。

 删除(Delete)

delete from 表名 where 条件。

如果where没有写条件,那么就是把所有的数据都删除。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...