当前位置:首页 > 数据库 > mysql数据库的查询

mysql数据库的查询

7个月前 (05-27)43

查看表中字段属性

mysql> describe fruits;		#fruits表名

mysql数据库的查询 _ Java侠
mysql数据库的查询 _ Java侠

增加

 INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES('a1',101,'apple',5.2);

mysql数据库的查询 _ Java侠批量增加

INSERT  INTO  suppliers  VALUES(101,'SuppliesA','Tianjin','400000','18075'),(102,'SuppliesB','Chongqing','400000','44333'),(103,'SupplesC','Shanghai','400000','90046');

mysql数据库的查询 _ Java侠

查询

mysql> select * from fruits;

mysql数据库的查询 _ Java侠
mysql数据库的查询 _ Java侠字段查询
mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠带IN关键字的查询
IN关键字:IN(xx,yy,…) 满足条件范围内的一个值即为匹配项

mysql数据库的查询 _ Java侠
mysql数据库的查询 _ Java侠带BETWEEN AND的范围查询
BETWEEN … AND … : 在…到…范围内的值即为匹配项

mysql数据库的查询 _ Java侠带LIKE的字符匹配查询
LIKE: 相当于模糊查询,和LIKE一起使用的通配符有 “%”、""
  “%”:作用是能匹配任意长度的字符。
  "
":只能匹配任意一个字符

mysql数据库的查询 _ Java侠
查询空值
空值不是指为空字符串""或者0,一般表示数据未知或者在以后在添加数据,也就是在添加数据时,其字段上默认为NULL,也就是说,如果该字段上不插入任何值,就为NULL。此时就可以查询出来。

SELECT * FROM 表名 WHERE 字段名 IS NULL;  //查询字段名是NULL的记录
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;  //查询字段名不是NULL的记录

多条件查询

mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠

关键字DISTINCT(查询结果不重复)
mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠
对查询结果排序(ORDER BY)

asc 升序
desc 降序

mysql数据库的查询 _ Java侠
mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠分组查询(GROUP BY)
mysql数据库的查询 _ Java侠
分组之后还可以进行条件过滤,将不想要的分组丢弃,使用关键字 HAVING

HAVING和WHERE都是进行条件过滤的,区别就在于 WHERE 是在分组之前进行过滤,而HAVING是在分组之后进行条件过滤。
mysql数据库的查询 _ Java侠使用LIMIT限制查询结果的数量
mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠函数查询
1)COUNT()函数
COUNT():计算表中的总的行数,不管某列有数值或者为空值,因为就是代表查询表中所有的数据行。
COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。

2)SUM()函数 总和
3)AVG()函数 平均值

4)MAX()函数、MIN()函数

mysql数据库的查询 _ Java侠mysql数据库的查询 _ Java侠

多表查询

1、预备知识:
1)别名
为表取别名:表名 AS 别名
给字段名取别名
2)SQL执行顺序
(1)from   
(2) on
(3) join
(4) where
(5)group by
(6) avg,sum…
(7)having
(8) select
(9) distinct
(10) order by

普通双表连接查询
mysql数据库的查询 _ Java侠内连接查询
格式:表名 INNER JOIN 表名 ON 连接条件

mysql数据库的查询 _ Java侠外连接查询
内连接是将符合查询条件(符合连接条件)的行返回,也就是相关联的行就返回。
外连接除了返回相关联的行之外,将没有关联的行也会显示出来。

为什么需要将不没关联的行也显示出来呢?这就要根据不同的业务需求了,就比如,order和customers,顾客可以有订单也可以没订单,现在需要知道所有顾客的下单情况,而我们不能够只查询出有订单的用户,而把没订单的用户丢在一边不显示,这个就跟我们的业务需求不相符了,有人说,既然知道了有订单的顾客,通过单表查询出来不包含这些有订单顾客,不就能达到我们的要求吗,这样是可以,但是很麻烦,如何能够将其一起显示并且不那么麻烦呢?为了解决这个问题,就有了外连接查询这个东西了。

左外连接查询
格式: 表名 LEFT JOIN 表名 ON 条件;
返回包括左表中的所有记录和右表中连接字段相等的记录,通俗点讲,就是除了显示相关联的行,还会将左表中的所有记录行都显示出来。
mysql数据库的查询 _ Java侠
右外连接查询
格式: 表名 RIGHT JOIN 表名 ON 条件
返回包括右表中的所有记录和右表中连接字段相等的记录
mysql数据库的查询 _ Java侠
复合条件连接查询
在连接查询(内连接、外连接)的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确,通俗点讲,就是将连接查询时的条件更加细化。

问题一:在fruits和suppliers表中使用INNER JOIN语法查询suppliers表中s_id为107的供应商的供货信息?

mysql数据库的查询 _ Java侠问题二:在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果进行排序。
mysql数据库的查询 _ Java侠子查询
将查询一张表得到的结果来充当另一个查询的条件,这样嵌套的查询就称为子查询。

mysql数据库的查询 _ Java侠带ANY、SOME关键字的子查询

ANY关键字接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE,则返回TRUE,通俗点讲,只要满足任意一个条件,就返回TRUE。
mysql数据库的查询 _ Java侠
带ALL关键字的子查询
使用ALL时表示需要同时满足所有条件。
mysql数据库的查询 _ Java侠带EXISTS关键字的子查询

EXISTS关键字后面的参数是任意一个子查询,如果子查询有返回记录行,则为TRUE,外层查询语句将会进行查询,如果子查询没有返回任何记录行,则为FALSE,外层查询语句将不会进行查询。
mysql数据库的查询 _ Java侠

带IN关键字的子查询
mysql数据库的查询 _ Java侠
合并结果查询
利用UNION关键字,可以将查询出的结果合并到一张结果集中,也就是通过UNION关键字将多条SELECT语句连接起来,注意,合并结果集,只是增加了表中的记录,并不是将表中的字段增加,仅仅是将记录行合并到一起。其显示的字段应该是相同的,不然不能合并。

UNION:执行的时候会删除重复的记录,所有返回的行度是唯一的,
UNION ALL:不删除重复航也不对结果进行自动排序。

问题一:查询所有价格小于9的水果的信息,查询s_id等于101或103所有水果的信息,使用UNION连接查询结果。
mysql数据库的查询 _ Java侠使用UNION,而不用UNION ALL的话,重复的记录就会被删除掉。

mysql数据库的查询 _ Java侠

作者:孤君
来源链接:https://blog.csdn.net/Wu000999/article/details/98722376

标签: MySQL

“mysql数据库的查询” 的相关文章

Centos 7上安装MySQL 5.7.37详细图文教程

Centos 7上安装MySQL 5.7.37详细图文教程

[ 若为Hadoop集群,则在Master上执行下述命令 ] 一、安装MySQL 1. 检查是否有自带MySQL [root@ma...

docker 使用教程2-(Docker安装MySQL)

docker 使用教程2-(Docker安装MySQL)

1、docker hub的使用,2、docker安装mysql,3、进入、退出容器,4、连接容器内的MySQL 上一篇  Docker使用教程1 通过hell...

mysql详细安装教程以及1067错误代码解决方案

mysql详细安装教程以及1067错误代码解决方案

目录 mysql安装教程以及1067错误代码解决方案 下载mysql 配置mysql 配置...

mysql 查询数组包含的id

字段数据(varchar) 数据1:1,3,5,7,9 数据2: 1,13,5,3,5 数据3:1,31,1,5,6 怎么精确的找出包...

Linux环境 MySql详细安装步骤

Linux环境 MySql详细安装步骤

*注:本文安装的是mysql5.6的版本,反复安装三遍总结下来的详细安装步骤。 1.解压MySQL压缩包到当前目录 tar -xzf...

Mysql安装教程:超简单

Mysql安装教程:超简单

Mysql安装教程:超简单 1.下载对应安装包: 下载地址https://dev.mysql.com/downloads/mysql/...

数据库分库分表及MySQL主从复制实现数据库同步

数据库分库分表及MySQL主从复制实现数据库同步

一、为什么要分库分表 解决大数据存储时数据访问性能,具体来说就是解决超大容量问题和性能问题。 举例说明,订单表或用户表如果数据量达到上亿条记录,此时数据库的IO能力、处...

MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号

MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号

          MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自My...

MySQL的安装与配置——详细教程(包括安装版和免安装版本)

MySQL的安装与配置——详细教程(包括安装版和免安装版本)

免安装版的Mysql   MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开...

最新Mysql 8.0.27安装指南

最新Mysql 8.0.27安装指南

由于版本跟新,在网上找了许久的攻略,都不是很齐全。所以自己整理了一篇; 1.首先下载mysql:mysql官网下载链接 或者 链接:http...