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

MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)


天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


安能摧眉折腰事权贵,使我不得开心颜?
——《梦游天姥吟留别》


文章目录

  • MySQL入门操作命令汇总
    • 1. 数据库(create、show、drop、alter)
      • 1.1 登录数据库
      • 1.2 创建数据库(create)
      • 1.3 查看所有数据库(show)
      • 1.4 删除数据库(drop)
      • 1.5 更改数据库字符集(alter)
    • 2. 数据表(use、create、show、describe、drop、alter)
      • 2.1 使用数据库(use)
      • 2.2 创建数据表(create)
        • 整数类型
        • 浮点数类型
        • 字符串类型
        • 日期时间类型
        • 二进制类型
      • 2.3 查询数据表(show)
      • 2.4 查看表结构(describe)
      • 2.5 删除表(drop)
      • 2.6 修改数据表名(alter)
    • 3. 数据记录(insert、select、delete、update)
      • 3.1 添加数据(insert)
      • 3.2 查询数据(select)
        • 3.2.1 去重查询(distinct)
        • 3.2.2 模糊查询(like)
        • 3.2.3 限制查询结果集(limit)
        • 3.2.4 分组查询(group)
        • 3.2.5 分组统计(count)
        • 3.2.6 结果集过滤(having)
        • 3.2.7 结果集排序(order)
          • 3.2.7.1 单字段排序
          • 3.2.7.2 多字段排序
          • 3.2.7.3 限制排序
          • 3.2.7.4 限制排序并选择区间(暂时未测通)
      • 3.2 删除数据(delete)
      • 3.3 更新数据(update)
    • 4. 字段或者说表结构(show、select、alter、drop、modify、change)
      • 4.1 显示表中所有字段(列)
      • 4.2 显示表中所有数据
      • 4.3 添加字段(列)
      • 4.4 删除字段(列)
      • 4.5 修改字段类型
      • 4.6 修改字段名和类型
    • 5. 统计(sum、count、max、min、avg)
      • 5.1 sum求和
      • 5.2 count统计数量
      • 5.3 max最大值
      • 5.4 min最小值
      • 5.5 avg平均值


MySQL入门操作命令汇总

MySQL学习专栏
MySQL下载安装配置

时区修改
java使用jdbc导致时区问题,此时修改东八区
在mysql文件夹中找到my.ni文件
编辑器打开,在[mysqlId]下面添加一行

default-time_zone='+8:00'

然后重启mysql,打开任务管理器–服务–找到mysql,右键重新启动

1. 数据库(create、show、drop、alter)

1.1 登录数据库

mysql -u 账号 -p

回车后输入密码

密码不显示

1.2 创建数据库(create)

创建数据使用create语句
语法

create database 数据库名;

示例
如创建数据库test01

create database test01;

1.3 查看所有数据库(show)

查看数据库使用show语句

show databases;

1.4 删除数据库(drop)

删除数据库使用drop语句
语法

drop database 数据库名;

示例
如删除数据库test01

drop database test01;

1.5 更改数据库字符集(alter)

更改数据库的字符集,使用alter set进行设置
语法

alter database 数据库名 default character set 字符集名称;

示例
如将数据库test01的字符集修改为utf-8

alter database test01 default character set 'utf-8';

2. 数据表(use、create、show、describe、drop、alter)

2.1 使用数据库(use)

使用数据库表示接下来对数据库和表的操作都是在该数据库下进行
语法

use 数据库名;

在操作表之前需要先使用该命令选择数据库
示例
如使用数据库test01

use test01;

2.2 创建数据表(create)

创建数据表
语法

CREATE TABLE 表名 (字段1 数据类型 约束条件;字段2 数据类型 约束条件;
);

示例
如创建一个名为user的数据表,字段包含姓名年龄以及自增长的id

create table user(id int auto_increment not null comment "自增id",name varchar(255) not null default "" comment "姓名",age int not null default 0 comment "年龄",primary key (id)
);

拓展
关于mysql中常见的数据库表字段数据类型

整数类型

整数类型的内容如下表

数据类型描述
tinyint1字节,取值范围: -128~127
smallint2字节,取值范围:-32768~32767
mediumint3字节,取值范围:-8388608~8388607
int4字节,取值范围:-2147483648~2147483647
bigint8字节,取值范围:-9223372036854775808~9223372036854775807
浮点数类型

浮点数类型的内容如下表

数据类型描述
float(m,d)单精度浮点数,占用4个字节,m为总个数,d为小数位
double(m,d)双精度浮点数,占用8个字节,比FLOAT有更高的精度和更大的表示范围
decimal(m,d)精确数值类型,用于存储精确的雄安舒。可以指定精度和小数位数
字符串类型

字符串类型的内容如下表

数据类型描述
char固定长度的字符串,长度在创建时指定,不足指定长度时会用空格填充
varchar可变长度的字符串,长度在创建时指定,存储时只占用实际字符串长度的空间
text用于存储较长的文本数据,有TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT等不同的长度限制
日期时间类型

日期时间类型的内容如下表

数据类型描述
date用于存储日期,格式为YYYY-MM-DD
time用于存储时间,格式为HH:MM:SS
datetime用于存储日期和时间,格式为YYYY-MM-DD HH:MM:SS
timestamp用于存储日期和时间,范围比DATETIME小,从1970-01-01 00:00:01到2038-01-19 03:14:07,并且在插入或更新记录时,TIMESTAMP列会自动更新为当前时间
二进制类型

二进制类型的内容如下表

数据类型描述
binary固定长度的二进制数据,类似于CHAR
varbinary(M)可变长度的二进制数据,类似于VARCHAR
blob用于存储大量的二进制数据,有TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB等不同的长度限制

2.3 查询数据表(show)

展示当前数据库的所有表(使用use 数据库名语句来确认展示指定数据库中的表)
语法

show tables;

示例
如展示test01数据库下的所有表

use test01;
show tables;

2.4 查看表结构(describe)

查看数据表结构
语法

describe 表名;

示例
如查看users表的表结构

describe users;

2.5 删除表(drop)

删除数据表
语法

drop table 表名;

示例
如删除users表

drop table users;

2.6 修改数据表名(alter)

修改数据表的名称
语法

alter table 旧数据表名 rename 新数据表名;

示例
如修改users表的表名,修改为users_info

alter table users rename users_info;

3. 数据记录(insert、select、delete、update)

3.1 添加数据(insert)

添加数据,即添加表字段对应的值
添加一条数据
语法

insert into 表名 (字段1,字段2,字段3,字段4...) values (1,2,3,4...);

示例
如在表users中添加name和age字段的数据

insert into users (name, age) value ("libai", 18);

插入多条数据
语法

insert into 表名 (字段1,字段2,字段3,字段4...) values (11,12,13,14...), (21,22,23,24...);

示例
如在表users中添加两条数据

insert into users (name, age) values ("格鲁特", 19), ("灭霸", 30);

3.2 查询数据(select)

查询使用select语句
可查询全部数据(*表示查询所有列的数据)
语法

select * from 表名;

示例
如查询users表的所有数据

select * from users;

查询满足条件的指定的字段的数据
语法

select 字段1,字段2,字段3... from 表名 where 条件;

示例
如查询users表中满足age值为18的name和age字段的数据

select name, age from users where age = 18;
3.2.1 去重查询(distinct)

指定字段去重(distinct)
语法

select distinct 字段名 from 数据表名;

示例
如去重查询users表中name字段的数据

select distinct name from users;
3.2.2 模糊查询(like)

like模糊查询(%表示通配符)
语法

select * from 表名 where 字段名 like '匹配内容的前缀%';

示例
如查询表名为users
字段名为name
以李开头的数据

select * from users where name like '李%';
3.2.3 限制查询结果集(limit)

对查询结果限制输出
语法

select * from users limit 需要保留的数据量的值;

示例
如查询users表中的数据,保留前十条展示

select * from users limit 10;
3.2.4 分组查询(group)

根据表中字段A进行查询结果分组
语法

select 字段A from 表名 group by 字段A;

示例
如查询users表中的数据按用户年龄分组

select age from users group by age;
3.2.5 分组统计(count)

根据表字段分组统计满足条件的数据,其中count中的字段名也可以是*表示统计所有字段
语法1

select 字段名,count(字段名或者自定义) from 表名 group by 字段名;

这样写可能不是很明确,可以如下,根据字段名分组,分组的后的数量起个别名进行展示
语法2

select 字段名, count(字段名) as num from 表名 group by 字段名;

其中括号中的字段名可自定义内容,当使用as设置别名时count(*)部分不会展示
语法3

select 字段名, count(*) as num from 表名 group by 字段名;

示例
如将用户表根据性别分组统计

select gender, count(*) as num from users group by gender;
3.2.6 结果集过滤(having)

根据字段名分组并过滤
语法

select 字段名, count(字段名) as result from 表名 group by 字段名 having 条件;

示例
如统计users表中性别为男的数据

select gender,count(*) as 同性别的人数 from users group by gender having gender = "男"; 
3.2.7 结果集排序(order)
3.2.7.1 单字段排序

根据某个字段升序或者降序排序所查询的数据
排序关键字:
asc 升序排序(默认)
desc 降序排序

语法

select 字段名 from 表名 order by 字段名 排序关键字;

示例
如查询users表所有数据,按照age字段升序排序

select * from users order by age asc;
3.2.7.2 多字段排序

根据多个字段升序或者降序排序所查询的数据
语法

select 字段名 from 表名 order by 字段名1 排序关键字, 字段名2 排序关键字;

示例
如查询users表数据,先按照age字段升序排序,(如果有age相同的数据)再按name字段降序排序

select * from users order by age asc, name desc;
3.2.7.3 限制排序

将查询的数据排序后限制数量展示
语法

select 字段名 from 表名 order by 字段名 排序关键字 limit 数量;

示例
如查看users表数据,根据age字段升序排序,输出前两条数据

select * from users order by age asc limit 2;
3.2.7.4 限制排序并选择区间(暂时未测通)

将查询的结果排序后限制数量,并选择区间来展示
语法

select 字段名 from 表名 order by 字段名 排序关键字 limit 偏移量 数量;

示例
如查询users表数据,根据age字段升序排序,从第三条数据后面(不包含第三条数据)取3条数据展示

select * from users order by age asc limit 3 3;

3.2 删除数据(delete)

使用delete删除数据
语法

delete from 表名 where 条件;

示例
如删除users表中name="杜甫"的数据

delete from users where name="杜甫";

3.3 更新数据(update)

使用update更新表数据
语法

update 表名 set 字段名=字段值 where 条件;

可以同时更新多个字段的值
语法2

update 表名 set 字段名1=字段值1, 字段名2=字段值2 where 条件;

示例
如更新users表中name="西施"的数据,将其age值改为16

update users set age=16 where name="西施";

4. 字段或者说表结构(show、select、alter、drop、modify、change)

4.1 显示表中所有字段(列)

使用show columns展示表中的所有字段
语法

show columns from 表名;

示例
如展示users表的所有字段数据

show columns from users;

4.2 显示表中所有数据

在添加、修改或删除字段之前可以先查看表数据
语法

select * from 表名;

4.3 添加字段(列)

通过alter和add添加新的表字段
语法

alter table 表名 add 字段 类型;

示例1
如在users表中添加height身高字段,类型为int

alter table users add height int;

示例2
再如添加addr地址字段,类型为varchar,大小为255

alter table users add addr varchar(255);

示例3
添加字段后该字段的值会变成NULL
如果想使用默认值可以使用default定义默认值
如下

alter table users add addr varchar(255) default "上海";

4.4 删除字段(列)

使用alter和drop删除
语法

alter table 表名 drop column 字段;

示例
如删除users表中height字段

alter table users drop column height;

4.5 修改字段类型

使用modify修改表字段
语法

alter table 表名 modify 字段名 类型;

示例
如修改users表中addr字段类型,由varchar改为text

alter table users modify addr text;

4.6 修改字段名和类型

使用change修改表字段名(这里需要注意,修改字段名时必须带上新字段的数据类型)
语法

alter table 表名 change 原字段名 新字段名 类型;

示例
如修改users表中addr字段,将其改为address,类型修改为varchar(255)

alter table users change addr address varchar(255);

如果想要只改名称,不改数据类型,则需要将原来的数据类型加上即可

5. 统计(sum、count、max、min、avg)

常用统计函数如下

5.1 sum求和

使用sum来获取某个字段统计的总和
语法

select sum(字段名) as 别名 from 表名;

示例
如统计users表中age字段的总和,将统计的总数使用别名allage表示

select sum(age) as allage from users;

5.2 count统计数量

使用count统计某个字段对应的数据条数
语法

select count(字段名或者*) as 别名 from 表名;

示例
如统计表中name的数据数量,别名为nameCount

select count(name) as nameCount from users;

以下name换成*结果相同

select count(*) as nameCount from users;

5.3 max最大值

使用max获取表中字段最大值
语法

select max(字段名) as 别名 from 表名;

示例
如获取users表中age最大的值

select max(age) as ageMax from users;

5.4 min最小值

使用min获取表中字段最小值
语法

select min(字段名) as 别名 from 表名;

示例
如获取users表中age最小的值

select min(age) as ageMin from users;

5.5 avg平均值

使用avg获取表中字段的平均值
语法

select avg(字段名) as 别名 from 表名;

示例
如获取users表中age字段的平均值

select avg(age) as ageAvg from users;

感谢阅读,祝君暴富!


版权声明:

  • 作者:寒山李白
  • 博客地址:https://hanshan.blog.csdn.net/
  • 版权:本作品采用《创作共享许可证》进行许可,根据该许可授权的内容可在符合本许可证条款的前提下自由使用、、修改和创作衍生作品。

版权许可介绍:
本文采用CC BY-NC-SA许可证
此许可允许在使用者仅出于非商业目的以任何媒体或格式分发、重新混合、改编和构建材料,并且前提是注明创作者。如果您重新混合、改编或基于该材料进行构建,则必须按照相同的条款对修改后的材料进行许可。

更多信息请访问以下网址查看:
版权官网 https://creativecommons.org/licenses/by-nc-sa/4.0/
中文翻译 https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans


相关文章:

MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

kotlin的协程的基础概念

Kotlin的协程是一种用于简化异步编程的强大工具。 理解协程的基础概念可以帮助开发者有效地利用其能力。 以下是Kotlin协程的一些关键基础概念: 协程(Coroutines) : 协程是一种用于处理并发任务的编程模型,它可以在单…...

Spring--SpringMVC使用(接收和响应数据、RESTFul风格设计、其他扩展)

SpringMVC使用 二.SpringMVC接收数据2.1访问路径设置2.2接收参数1.param和json2.param接收数据3 路径 参数接收4.json参数接收 2.3接收cookie数据2.4接收请求头数据2.5原生api获取2.6共享域对象 三.SringMVC响应数据3.1返回json数据ResponseBodyRestController 3.2返回静态资源…...

隐藏php版本信息x-powered-by

在生产环境中,并不想让别人知道用的是什么版本的php,可以把x-powered-by隐藏掉 在nginx配置文件加上fastcgi_hide_header X-Powered-By; 如下图所示 配置修改后平滑重启nginx...

哈夫曼树(构建、编码、译码)(详细分析+C++代码实现)

D 哈夫曼树 题目要求 编写一个哈夫曼编码译码程序。针对一段文本,根据文本中字符出现频率构造哈夫曼树,给出每个字符的哈夫曼编码,并进行译码,计算编码前后文本大小。 为确保构建的哈夫曼树唯一,本题做如下限定&…...

C++ 二叉搜索树

目录 概念 性能分析 二叉搜索树的插入 二叉树的查找 二叉树的前序遍历 二叉搜索树的删除(重点) 完整代码 key与value的使用 概念 对于一个二叉搜索树 若它的左子树不为空,则左子树上所有的节点的值都小于等于根节点的值若它的右子树不为空…...

docker构建Java项目镜像常用的Java版本,国内私有仓库公网快速下载,解决从docker.io无法下载的问题

2015工作至今,10年资深全栈工程师,CTO,擅长带团队、攻克各种技术难题、研发各类软件产品,我的代码态度:代码虐我千百遍,我待代码如初恋,我的工作态度:极致,责任&#xff…...

低代码系统-氚云、简道云表单控件对比

组件对比 氚云 简道云 是否都有 1 单行文本 单行文本 ☑️ 2 多行文本 多行文本 ☑️ 3 日期 日期时间 ☑️ 4 数字 数字 ☑️ 5 单选框 单选按钮组 ☑️ 6 复选框 复选框组 ☑️ 7 下拉框 下拉框 ☑️ 8 附件 附件 ☑️ 9 图片 图片 ☑️ 10 地址 地…...

为什么IDEA提示不推荐@Autowired❓️如果使用@Resource呢❓️

前言 在使用 Spring 框架时,依赖注入(DI)是一个非常重要的概念。通过注解,我们可以方便地将类的实例注入到其他类中,提升开发效率。Autowired又是被大家最为熟知的方式,但很多开发者在使用 IntelliJ IDEA …...

Unity在WebGL中拍照和录视频

原工程地址https://github.com/eangulee/UnityWebGLRecoder Unity版本2018.3.6f1,有点年久失修了 https://github.com/xue-fei/Unity.WebGLRecorder 修改jslib适配了Unity2021 效果图 录制的视频 Unity在WebGL中拍照和录视频...

爬虫基础之爬取某站视频

目标网址:为了1/4螺口买小米SU7,开了一个月,它值吗?_哔哩哔哩_bilibili 本案例所使用到的模块 requests (发送HTTP请求)subprocess(执行系统命令)re (正则表达式操作)json (处理JSON数据) 需求分析: 视频的名称 F12 打开开发者工具 or 右击…...

mongoDB常见指令

即使我们自己开发用不到mongoDB,但是接手别人项目的时候,别人如果用了,我们也要会简单调试一下 虽然mongoDB用的不是sql语句,但语句的逻辑都是相似的,比如查看数据库、数据表,增删改查这些 我们下面以doc…...

人工智能之深度学习_[5]-神经网络优化学习率衰减优化正则化方法

文章目录 神经网络入门二3 神经网络优化方法3.1 梯度下降算法回顾3.2 反向传播(BP算法)3.2.1 反向传播概念3.2.2 反向传播详解 3.3 梯度下降优化方法3.3.1 指数加权平均3.3.2 动量算法Momentum3.3.3 AdaGrad3.3.4 RMSProp3.3.5 Adam3.3.6 小结 4 学习率衰…...

Oracle之Merge into函数使用

Merge into函数为Oracle 9i添加的语法,用来合并update和insert语句。所以也经常用于update语句的查询优化: 一、语法格式: merge into A using B on (A.a B.a) --注意on后面带括号,且不能更新join的字段 when matched then upd…...

深度解析:哪种心磁图技术是心脏检查的精准之选?

在全球心血管疾病的阴影日益笼罩的今天,医学界正积极寻求一种无损、无创、无辐射的心脏健康监测方式。心磁图仪(MCG),这一前沿技术,凭借其独特的优势,悄然成为心脏电磁功能监测的新星。它不仅为心肌缺血、心…...

SpringBoot--基本使用(配置、整合SpringMVC、Druid、Mybatis、基础特性)

这里写目录标题 一.介绍1.为什么依赖不需要写版本?2.启动器(Starter)是何方神圣?3.SpringBootApplication注解的功效?4.启动源码5.如何学好SpringBoot 二.SpringBoot3配置文件2.1属性配置文件使用2.2 YAML配置文件使用2.3 YAML配置文件使用2.…...

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕: 由无数个发光的LED灯珠按照一定的顺序排列而成,当需要显示内容的时候,点亮相关的LED灯即可,市场占有率很高,主要是用于户外,广告屏幕,成本低。 LED屏是一种用发光…...

观察者模式 - 观察者模式的应用场景

引言 观察者模式(Observer Pattern)是设计模式中行为型模式的一种,它定义了对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。观察者模式广泛应用于事件处理系统…...

【C++】详细讲解继承(下)

本篇来继续说说继承。上篇可移步至【C】详细讲解继承(上) 1.继承与友元 友元关系不能继承 ,也就是说基类友元不能访问派⽣类私有和保护成员。 class Student;//前置声明class Same //基类 { public:friend void Fun(const Same& p, con…...

消息队列篇--原理篇--Pulsar(Namespace,BookKeeper,类似Kafka甚至更好的消息队列)

Apache Pulusar是一个分布式、多租户、高性能的发布/订阅(Pub/Sub)消息系统,最初由Yahoo开发并开源。它结合了Kafka和传统消息队列的优点,提供高吞吐量、低延迟、强一致性和可扩展的消息传递能力,适用于大规模分布式系…...

扬帆数据结构算法之舟,启航C++探索征途——LeetCode深度磨砺:顺序表技术精进实践

人无完人,持之以恒,方能见真我!!! 共同进步!! 文章目录 顺序表练习1.移除数组中指定的元素方法1(顺序表)方法2(双指针) 2.删除有序数组中的重复项…...

基于本地事务表+MQ实现分布式事务

基于本地事务表MQ实现分布式事务 引言1、原理2、本地消息表优缺点3、代码实现3.1、代码执行流程3.2、项目结构3.3、项目源码 引言 本地消息表的方案最初由ebay的工程师提出,核心思想是将分布式事务拆分成本地事务进行处理。本地消息表实现最终一致性。本文主要学习…...

数据结构:二叉树—面试题(一)

目录 1、相同的树 2、另一棵树的子树 3、翻转二叉树 4、平衡二叉树 5、对称二叉树 6、二叉树遍历 7、二叉树的分层遍历 1、相同的树 习题链接https://leetcode.cn/problems/same-tree/description/https://leetcode.cn/problems/same-tree/description/ 描述&#xff1a…...

【Wordpress网站制作】切换语言的问题

前言 自学笔记,解决问题为主,欢迎补充。 本文重点:如何将页面语言从默认的【英语】修改成【中文】。 问题描述 安装完wordpress,在【Setting】→【General】的语言中,选项只有英语。无法切换成中文 方法1: 在 wp-c…...

【第二天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-五种常见的排序算法(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的排序算法1.排序算法的介绍2.五种详细的排序算法代码 总结 前言 提示:这里可以添加本文要记…...

Neural networks 神经网络

发展时间线 基础概念 多层神经网络结构 神经网络中一个网络层的数学表达 TensorFlow实践 创建网络层 神经网络的创建、训练与推理 推理 推理可以理解为执行一次前向传播 前向传播 前向传播直观数学表达 前向传播直观数学表达的Python实现 前向传播向量化实现 相关数学知识…...

汽车免拆诊断案例 | 2007 款日产天籁车起步加速时偶尔抖动

故障现象  一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机…...

代码随想录day3

203:移除链表元素:注意虚拟头节点的使用 ListNode* removeElements(ListNode* head, int val) {ListNode* result new ListNode();result->next head;ListNode* current result;while(current ! nullptr && current->next ! nullptr){if(current-…...

Spring 面试题【每日20道】【其一】

1、Spring 当中什么是循环依赖(常问)? 中等 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个bean互相之间直接或间接地依赖对方的注入。例如: A bean依赖于B bean。B bean又依赖…...

leetcode刷题记录(八十九)——35. 搜索插入位置

(一)问题描述 35. 搜索插入位置 - 力扣(LeetCode)35. 搜索插入位置 - 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位…...