记录的查询—单表数据(上)

基本查询

SELECT

     *|<字段列表> :字段列表至少要包括一个字段名称,查询多个字段时,用逗号(,)隔开,最后一个字段后不加逗号。

     FROM<表1>,<表2>... : 表1和表2表示查询数据的来源,可以是单个或者多个。
     
     WHERE 字句 : 用于限定范围查询,但必须满足查询条件。

     GROUP BY<字段> : 该字句表示对指定的字段查询出的结果进行分组。

     ORDER BY<字段> :  该字句表示按照升序(ASC)和降序(DESC)的顺序查询出的结果。

简单数据记录查询

查询所有字段

  SELECT*FROM 表名;

实例1

  • 题目:查询goods表中的所有数据。

1.选择数据库

mysql> USE db_shop;
Database changed

2.查询所有数据

mysql> SELECT*FROM goods;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍   | 斗罗大陆       | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果   | 火龙果         | 15.00 |   16 | 2022-03-06 14:12:32 |
|  3 | 蔬菜   | 胡萝卜         |  6.00 |    5 | NULL                |
|  4 | 服装   | 牛仔裤         | 65.00 |   60 | 2022-06-05 16:32:20 |
|  5 | 冷饮   | 百事可乐       |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
5 rows in set (0.00 sec)

查询指定字段

 SELECT 指定字段1,指定字段2...FROM 表名;

实例2(1)

  • 题目:从goods表中查询type字段。

查询单个指定字段

mysql> SELECT type FROM goods;
+--------+
| type   |
+--------+
| 书籍   |
| 水果   |
| 蔬菜   |
| 服装   |
| 冷饮   |
+--------+
5 rows in set (0.00 sec)

实例2(2)

  • 题目从goods表中查询type、name字段。

查询多个指定字段

mysql> SELECT type,name FROM goods;
+--------+--------------+
| type   | name         |
+--------+--------------+
| 书籍    | 斗罗大陆      |
| 水果    | 火龙果        |
| 蔬菜    | 胡萝卜        |
| 服装    | 牛仔裤        |
| 冷饮    | 百事可乐      |
+--------+--------------+
5 rows in set (0.00 sec)

查询指定记录

使用“=”号查询

实例3

  • 题目:从goods表中查询id值为5的记录。

查询指定记录

mysql> SELECT*FROM goods WHERE id=5;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  5 | 冷饮   | 百事可乐       |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
1 row in set (0.00 sec)
使用“<"号查询

实例4

  • 题目:从goods表中查询num<10值

查询指定范围记录

mysql> SELECT*FROM goods WHERE num<10;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  3 | 蔬菜    | 胡萝卜        |  6.00 |    5 | NULL                |
+----+--------+--------------+-------+------+---------------------+
2 rows in set (0.00 sec)
使用">="号查询

实例5

  • 题目:从goods表中查询"price>=15"的记录。

查询指定范围记录

mysql> SELECT*FROM goods WHERE price>=15;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果    | 火龙果        | 15.00 |   16 | 2022-03-06 14:12:32 |
|  4 | 服装    | 牛仔裤        | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+--------+--------------+-------+------+---------------------+
3 rows in set (0.00 sec)

多条件查询

使用AND关键字查询

实例6

  • 题目:从goods表中查询price的值大于10并且id>2的值

查询指定范围的记录

mysql> SELECT*FROM goods WHERE price>10 AND id>2;
+----+--------+-----------+-------+------+---------------------+
| id | type   | name      | price | num  | add_time            |
+----+--------+-----------+-------+------+---------------------+
|  4 | 服装    | 牛仔裤     | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+--------+-----------+-------+------+---------------------+
1 row in set (0.00 sec)
使用OR关键字查询

实例7

  • 题目:从goods表中查询type值为“书籍”或者“冷饮”的记录。

查询指定范围记录

mysql> SELECT*FROM goods WHERE type='书籍' OR type='冷饮';
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  5 | 冷饮    | 百事可乐      |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
2 rows in set (0.00 sec)
使用IN关键字查询

b

  • 题目:从goods表中id的值为2和5的记录。

查询指定记录。

mysql> SELECT*FROM goods WHERE id IN(2,5);
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  2 | 水果    | 火龙果        | 15.00 |   16 | 2022-03-06 14:12:32 |
|  5 | 冷饮    | 百事可乐      |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
2 rows in set (0.00 sec)

实例8(2)

  • 题目:从goods表中查询id的值不为2和5的记录。

查询值范围记录。

mysql> SELECT*FROM goods WHERE id NOT IN(2,5);
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  3 | 蔬菜    | 胡萝卜        |  6.00 |    5 | NULL                |
|  4 | 服装    | 牛仔裤        | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+--------+--------------+-------+------+---------------------+
3 rows in set (0.00 sec)

查询空值

 SELECT*FROM 表名 WHERE 指定字段 IS NULLL;

实例9 (1)

  • 题目:从goods表中查询add_time为NULL的值

查询指定记录

mysql> SELECT*FROM goods WHERE add_time IS NULL;
+----+--------+-----------+-------+------+----------+
| id | type   | name      | price | num  | add_time |
+----+--------+-----------+-------+------+----------+
|  3 | 蔬菜    | 胡萝卜     |  6.00 |    5 | NULL     |
+----+--------+-----------+-------+------+----------+
1 row in set (0.00 sec)

实例9(2)

  • 题目:从goods表中查询add_time不为为NULL的值

查询指定范围记录

mysql> SELECT*FROM goods WHERE add_time IS NOT NULL;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果    | 火龙果        | 15.00 |   16 | 2022-03-06 14:12:32 |
|  4 | 服装    | 牛仔裤        | 65.00 |   60 | 2022-06-05 16:32:20 |
|  5 | 冷饮    | 百事可乐      |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
4 rows in set (0.00 sec)

查询结果不重复

从goods表中type的值,然后再去重。

1.查询指定字段。

mysql> SELECT type FROM goods;
+--------+
| type   |
+--------+
| 书籍   |
| 水果   |
| 蔬菜   |
| 服装   |
| 冷饮   |
| 水果   |
+--------+
6 rows in set (0.00 sec)

2.查询不重复记录

mysql> SELECT DISTINCT type FROM goods;
+--------+
| type   |
+--------+
| 书籍    |
| 水果    |
| 蔬菜    |
| 服装    |
| 冷饮    |
+--------+
5 rows in set (0.00 sec)

范围查询

   SELECT*FROM 表名 WHERE 限定范围的字段 BETWEEN 数据1 AND 数据2

实例10(1)

  • 题目:从goods表中price的值为3到20的商品名称和价格。

查询指定范围记录。

mysql> SELECT name,price FROM goods WHERE price BETWEEN 3 AND 20;
+--------------+-------+
| name         | price |
+--------------+-------+
| 火龙果        | 15.00 |
| 胡萝卜        |  6.00 |
| 百事可乐      |  3.00 |
| 菠萝          | 11.00 |
+--------------+-------+
4 rows in set (0.00 sec)

实例10(2)

  • 题目:从goods表中price的值不为为3到20的商品名称和价格。

查询指定范围记录。

mysql> SELECT name,price FROM goods WHERE price NOT BETWEEN 3 AND 20;
+--------------+-------+
| name         | price |
+--------------+-------+
| 斗罗大陆      | 38.50 |
| 牛仔裤        | 65.00 |
+--------------+-------+
2 rows in set (0.00 sec)

字符匹配查询

  SELEECT*FROM 表名 WHERE 指定字段 LIKE 指定字段中包含的数据;

实例11(1)

  • 题目:从goods表中查询name值以“果”结尾的记录

查询指定范围记录。

mysql> SELECT*FROM goods WHERE name LIKE '%果';
+----+--------+-----------+-------+------+---------------------+
| id | type   | name      | price | num  | add_time            |
+----+--------+-----------+-------+------+---------------------+
|  2 | 水果    | 火龙果     | 15.00 |   16 | 2022-03-06 14:12:32 |
|  6 | 水果    | 苹果       | 11.00 |    0 | NULL                |
+----+--------+-----------+-------+------+---------------------+
2 rows in set (0.00 sec

)

实例11(2)

  • 题目:从goods表中查询name值以“斗”开头的记录

查询指定范围记录。

mysql> SELECT*FROM goods WHERE name LIKE '斗%';
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
+----+--------+--------------+-------+------+---------------------+
1 row in set (0.00 sec)

实例11(3)

  • 题目:从goods表中查询name值包含“仔”字的记录。

查询指定范围记录。

mysql> SELECT*FROM goods WHERE name LIKE '%仔%';
+----+--------+-----------+-------+------+---------------------+
| id | type   | name      | price | num  | add_time            |
+----+--------+-----------+-------+------+---------------------+
|  4 | 服装    | 牛仔裤     | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+--------+-----------+-------+------+---------------------+
1 row in set (0.00 sec

实例11(4)

  • 题目:从goods表中查询name值以“百”开头,“百”后有三个字符的记录。

查询指定范围记录。

mysql> SELECT*FROM goods WHERE name LIKE '百___';
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  5 | 冷饮    | 百事可乐      |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
1 row in set (0.00 sec)

排序查询 ——默认按照升序排序

 SELECT*FROM 表名 ORDER BY 一个或多个字段[升序ASE|降序DESC];
单字段排序

实例12

  • 题目:从goods表中查询id,name和add_time字段的数据并按照add_time的值进行排序。

查询指定范围记录,并进行排序。

mysql> SELECT id,name,add_time FROM goods ORDER BY add_time;
+----+--------------+---------------------+
| id | name         | add_time            |
+----+--------------+---------------------+
|  3 | 胡萝卜        | NULL                |
|  6 | 苹果          | NULL                |
|  1 | 斗罗大陆      | 2022-02-12 15:30:27 |
|  2 | 火龙果        | 2022-03-06 14:12:32 |
|  4 | 牛仔裤        | 2022-06-05 16:32:20 |
|  5 | 百事可乐      | 2022-06-09 00:00:00 |
+----+--------------+---------------------+
6 rows in set (0.00 sec)
多字段排序

实例13

  • 题目:从goods表中查询所有记录,并按照price和num字段的值进行排序。

查询所有记录,并进行排序

mysql> SELECT*FROM goods ORDER BY price,num;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  5 | 冷饮    | 百事可乐      |  3.00 |   12 | 2022-06-09 00:00:00 |
|  3 | 蔬菜    | 胡萝卜        |  6.00 |    5 | NULL                |
|  6 | 水果    | 苹果          | 11.00 |    0 | NULL                |
|  2 | 水果    | 火龙果        | 15.00 |   16 | 2022-03-06 14:12:32 |
|  1 | 书籍    | 斗罗大陆      | 38.50 |    3 | 2022-02-12 15:30:27 |
|  4 | 服装    | 牛仔裤        | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+------ --+--------------+-------+------+---------------------+
6 rows in set (0.00 sec)
降序排序

实例14(1)

  • 题目:从goods表中查询所有记录,并按照price字段进行降序排序。

查询所有记录,并进行降序排序。

mysql> SELECT*FROM goods ORDER BY price DESC;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  4 | 服装   | 牛仔裤         | 65.00 |   60 | 2022-06-05 16:32:20 |
|  1 | 书籍   | 斗罗大陆       | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果   | 火龙果         | 15.00 |   16 | 2022-03-06 14:12:32 |
|  6 | 水果   | 苹果           | 11.00 |    0 | NULL                |
|  3 | 蔬菜   | 胡萝卜         |  6.00 |    5 | NULL                |
|  5 | 冷饮   | 百事可乐       |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
6 rows in set (0.00 sec)

实例14(2)

  • 题目:从goods表中查询所有记录,并按照price字段和num字段进行排序。

查询所有记录,并进行降序排序。

mysql> SELECT*FROM goods ORDER BY price DESC,num;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  4 | 服装   | 牛仔裤         | 65.00 |   60 | 2022-06-05 16:32:20 |
|  1 | 书籍   | 斗罗大陆       | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果   | 火龙果         | 15.00 |   16 | 2022-03-06 14:12:32 |
|  6 | 水果   | 苹果           | 11.00 |    0 | NULL                |
|  3 | 蔬菜   | 胡萝卜         |  6.00 |    5 | NULL                |
|  5 | 冷饮   | 百事可乐       |  3.00 |   12 | 2022-06-09 00:00:00 |
+----+--------+--------------+-------+------+---------------------+
6 rows in set (0.00 sec)

限制查询结果的数量

- 语法:——默认起点为0

 SELECT*FROM 表名 LIMIT 指定起点,指定终点;

实例15(1)

  • 题目:将goods表中前4条记录查询出来。

查询指定范围记录。

mysql> SELECT*FROM goods LIMIT 4;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍   | 斗罗大陆       | 38.50 |    3 | 2022-02-12 15:30:27 |
|  2 | 水果   | 火龙果         | 15.00 |   16 | 2022-03-06 14:12:32 |
|  3 | 蔬菜   | 胡萝卜         |  6.00 |    5 | NULL                |
|  4 | 服装   | 牛仔裤         | 65.00 |   60 | 2022-06-05 16:32:20 |
+----+--------+--------------+-------+------+---------------------+
4 rows in set (0.00 sec)

实例15(2)

  • 题目:将goods表中从第四条记录开始,总条数为2的结果。

查询指定范围记录。

mysql> SELECT*FROM goods LIMIT 4,2;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  5 | 冷饮   | 百事可乐       |  3.00 |   12 | 2022-06-09 00:00:00 |
|  6 | 水果   | 苹果          | 11.00 |    0 | NULL                |
+----+--------+--------------+-------+------+---------------------+
2 rows in set (0.00 sec)
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_bbbfamous

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值