MySQL数据库基本命令

目录

一、查看端口

二、查看数据库信息

三、数据库的基本操作

四、单表查询

五、多表查询


一、查看端口

二、查看数据库信息

三、数据库的基本操作

3.1 建立数据库

create database 数据库名;

扫描二维码关注公众号,回复: 5789824 查看本文章

3.2 建立表

create table 表名(字段信息)

3.3 查看表的结构

3.4 在表中插入数据记录

四、单表查询

4.1 查询所有字段

4.2 查询指定字段

4.3 带IN关键字的查询

IN关键字:IN (xx,yy,...)  满足条件范围内的一个值即为匹配项

4.4 带 between A and B 的范围查询

      between A and B : 在 A 到 B 范围内的值即为匹配项

4.5 带 like 的字符匹配查询

      like:相当于模糊查询,和 like 一起使用的通配符有  "%"、"_" 

        "%":作用是能匹配任意长度的字符。

        "_":只能匹配任意一个字符

4.6 查询空值

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

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

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

4.7 带 and 的多条件查询

4.8 带 or 的多条件查询

4.9 关键字 distinct (查询结果不重复)

4.10 对查询结果排序(order by)

4.11 分组查询(group by)

分组之后还可以进行条件过滤,将不想要的分组丢弃,使用关键字 having。

having 和 where 都是进行条件过滤的,区别就在于 where 是在分组之前进行过滤,而 having 是在分组之后进行条件过滤。

4.12 使用 limit 限制查询结果的数量

4.13 集合函数查询

1)COUNT()函数

COUNT(*):计算表中的总的行数,不管某列有数值或者为空值,因为*就是代表查询表中所有的数据行。

COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。

2)SUM()函数

3)AVG()函数

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

五、多表查询

5.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

创建 suppliers 表

5.2 普通双表连接查询

查询水果的批发商编号,批发商名字,水果名称,水果价格

5.3 内连接查询

内连接是将符合查询条件(符合连接条件)的行返回,也就是相关联的行就返回。

格式:表名 inner join 表名 on 连接条件

5.4 外连接查询

外连接除了返回相关联的行之外,将没有关联的行也会显示出来。

为什么需要将没关联的行也显示出来呢?

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

1)左外连接查询

格式: 表名 left join 表名 on 条件;

返回包括左表中的所有记录和右表中连接字段相等的记录,通俗点讲,就是除了显示相关联的行,还会将左表中的所有记录行都显示出来。

2)右外连接查询

格式: 表名 right join 表名 on 条件 

返回包括右表中的所有记录和右表中连接字段相等的记录

3)复合条件连接查询

在连接查询(内连接、外连接)的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确。通俗点讲,就是将连接查询时的条件更加细化。

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

问题二:在 fruits 表和 suppliers 表之间,使用 inner join 语法进行内连接查询,并对查询结果进行排序。

5.5 子查询

将查询一张表得到的结果来充当另一个查询的条件,这样嵌套的查询就称为子查询。

搭建环境

1)带ANY、SOME关键字的子查询

any 关键字接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE,则返回TRUE,通俗点讲,只要满足任意一个条件,就返回TRUE。

2)带ALL关键字的子查询

使用 all 时表示需要同时满足所有条件。

3)带EXISTS关键字的子查询

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

4)带 IN 关键字的子查询

5)合并结果查询

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

UNION:执行的时候会删除重复的记录,所有返回的行都是唯一的,

UNION ALL:不删除重复行,也不对结果进行自动排序。

问题一:查询所有价格小于 9 的水果的信息,查询 s_id 等于 101 或 103 所有水果的信息,使用 UNION 连接查询结果。

使用 UNION,而不用 UNION ALL 的话,重复的记录就会被删除掉。

猜你喜欢

转载自blog.csdn.net/weixin_43625577/article/details/88774341