MySQL数据操作

1.插入数据 insert

向表中插入数据有三种方法

  1. INSERT [ INTO ] 表名(字段名 , .....) VALUES(数据 , .....) 此方法可插入多条数据,但不可使用子查询。
  2. INSERT [ INTO ] 表名 SET 字段名 = 数据 || DEFAULT 此方法只能逐条添加数据,可以使用子查询。
  3. INSERT [ INTO ] 表名 字段名 , ..... SELECT..... 先了解,还未接触

2.更新(更改)数据 update

  • UPDATE 表名 SET 字段名 = 数据 [ WHERE 条件语句 ] , ....

UPDATE 可以按需求更改表数据

3.删除单表数据 delete

  • DELETE FROM 表名 [ WHERE 条件语句 ]

4.查询数据

  • 字段查询:SELECT 列名 , .... FROM 表名
  • 条件查询:SELECT 列名 , .... FROM 表名 WHERE 条件语句
    在这里插入图片描述
  • 分组查询( GROUP BY ):SELECT 列名 , .... FROM 表名 GROUP BY 分组列名(每个相同的值都会为一组)
  • 分组条件查询( HAVING ):SELECT 列名 , .... FROM 表名 GROUP BY 分组列名 HAVING 条件语句

分组后再进行条件查询,下面试一下
在这里插入图片描述上面将 user 表中的 age 分为了 七组
下面来给条件查询一下分组里面的 age
在这里插入图片描述
count(id) > 2为 分组中出现 2 次以上的数据

5.对查询结果进行排序

查询语句 ORDER BY ASC | DESC ASC 为正序排列,DESC 为倒序
在这里插入图片描述上面语句使查询结果 按 id 的倒序排列
还可以使用其多层排序
在这里插入图片描述上面语句可以解释为,先按 age 正序排列, 当多项 age 值相等时,再比较 id 的值来倒序排列

5.限制语句 LIMIT

LIMIT是一个条件限制语句

查询语句 LIMIT( 开始索引 , 结束索引 )

在这里插入图片描述上面语句查询了 id 为 1 到 10 的表,使用 LIMIT 规定了它的索引以及结束的位置
注意,LIMIT 也是生效于查询后的表。

6. 子查询 subQuery

  • 外查询( outer Query ):SELECT * FROM 表名 列名
  • 子查询:SELECT * FROM 表名 列名 = ( SELECT * FROM 表名 列名 ) 用括号中语句查询出来的条件,来查询第二张表。
    括号中的 SELECT 语句为子查询

子查询中的外层查询可以是:

SELECT | GROUP BY | ORDER BY | LIMIT 或 Do

子查询的返回值:
子查询可以返回标量、一行、一列或子查询

在这里插入图片描述
上面的指令,在 user 表中将 prices 求平均数并保留两位小数。结果为 13.87
下面我们查询符合条件的选项 prices
在这里插入图片描述
上面操作可以使用子查询合并,更加方便
在这里插入图片描述

7. 子查询 ANY、 SOME 、ALL 关键字

当子查询的条件同时带有多条时,可以使用关键字来选取特定的值来查询

在这里插入图片描述使用方法,直接使用关键字括号写入子查询即可 如下
在这里插入图片描述

  • NOT IN : 当子查询中有多个值,并且需要判断外查询的值是否 包含 在子查询中时,可以使用 IN 来代替 ANY
  • IN: 当子查询中有多个值,并且需要判断外查询的值是否 不包含 在子查询中时,可以使用 NOT IN 代替 !=

8.INNER JOIN关键字

INNER JOIN 用来合并表或者关联表,将两个表的交集合并或者关联起来
在这里插入图片描述

  • INNER JOIN语法 :SELECT 字段名 FROM 表1 INNER JOIN 表2 ON 表1.列 = 表2.列

假设我们有两张表,Table A是左边的表,Table B是右边的表。
在这里插入图片描述
在这里插入图片描述
关联两个表如下
在这里插入图片描述上面的意思为 修改 user 表的 province 为 province 的 id 值。

原本的 user表 如下
在这里插入图片描述原本的 province 表如下
在这里插入图片描述

将 user 关联 province表 之后如下
在这里插入图片描述可以看到 province 由省份变为了编号,这样可以加快 mysql 的查询效率
下面再来 使用 INNER JOIN 查询表数据
在这里插入图片描述
上面的两张表互相关联 user.cid 与 class 表 id 关联
在这里插入图片描述上面的查询结果中也是只查询了 12 条数据,只查询了两张表中的交集部分

注意:

  • ON 关键字一般来设定连接条件
  • WHERE 关键字用来结果集的过滤

还有其他几种合并表的方式,如下图(语法相同,只有关键字不同)
在这里插入图片描述
左外连接查询时,左表的所有数据都会被查询,而右表则不会被查询出来。
在这里插入图片描述
上面的查询结果,会将所有 u 表中的内容显示,而 c 表的内容不会全部显示(只显示二者的交集)
在这里插入图片描述

上面的结果,className 未被全部查询出来
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值