zoukankan      html  css  js  c++  java
  • MySQL检索和过滤数据

    注意

    • 多条SQL语句必须以分号(;)分隔;
    • SQL语句不区分大小写;
    • 在处理SQL语句时,其中所有空格都被忽略;
    • 当选择多个列是,一定要在列名之间加上逗号,但最后一个列名后不加。

    SELECT语句

    检索单个列

    mysql> SELECT prod_name FROM products;
    +----------------+
    | prod_name      |
    +----------------+
    | .5 ton anvil   |
    | 1 ton anvil    |
    | 2 ton anvil    |
    | Detonator      |
    | Bird seed      |
    | Carrots        |
    | Fuses          |
    | JetPack 1000   |
    | JetPack 2000   |
    | Oil can        |
    | Safe           |
    | Sling          |
    | TNT (1 stick)  |
    | TNT (5 sticks) |
    +----------------+
    14 rows in set (0.00 sec)
    

    检索所有列

    mysql> SELECT * FROM products;
    +---------+---------+----------------+------------+----------------------------------------------------------------+
    | prod_id | vend_id | prod_name      | prod_price | prod_desc                                                      |
    +---------+---------+----------------+------------+----------------------------------------------------------------+
    | ANV01   |    1001 | .5 ton anvil   |       5.99 | .5 ton anvil, black, complete with handy hook                  |
    | ANV02   |    1001 | 1 ton anvil    |       9.99 | 1 ton anvil, black, complete with handy hook and carrying case |
    | ANV03   |    1001 | 2 ton anvil    |      14.99 | 2 ton anvil, black, complete with handy hook and carrying case |
    | DTNTR   |    1003 | Detonator      |      13.00 | Detonator (plunger powered), fuses not included                |
    | FB      |    1003 | Bird seed      |      10.00 | Large bag (suitable for road runners)                          |
    | FC      |    1003 | Carrots        |       2.50 | Carrots (rabbit hunting season only)                           |
    | FU1     |    1002 | Fuses          |       3.42 | 1 dozen, extra long                                            |
    | JP1000  |    1005 | JetPack 1000   |      35.00 | JetPack 1000, intended for single use                          |
    | JP2000  |    1005 | JetPack 2000   |      55.00 | JetPack 2000, multi-use                                        |
    | OL1     |    1002 | Oil can        |       8.99 | Oil can, red                                                   |
    | SAFE    |    1003 | Safe           |      50.00 | Safe with combination lock                                     |
    | SLING   |    1003 | Sling          |       4.49 | Sling, one size fits all                                       |
    | TNT1    |    1003 | TNT (1 stick)  |       2.50 | TNT, red, single stick                                         |
    | TNT2    |    1003 | TNT (5 sticks) |      10.00 | TNT, red, pack of 10 sticks                                    |
    +---------+---------+----------------+------------+----------------------------------------------------------------+
    14 rows in set (0.00 sec)
    

    检索不同行

    mysql> SELECT vend_id FROM products;
    +---------+
    | vend_id |
    +---------+
    |    1001 |
    |    1001 |
    |    1001 |
    |    1002 |
    |    1002 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1005 |
    |    1005 |
    +---------+
    14 rows in set (0.00 sec)
    

    去重

    mysql> SELECT DISTINCT vend_id FROM products;
    +---------+
    | vend_id |
    +---------+
    |    1001 |
    |    1002 |
    |    1003 |
    |    1005 |
    +---------+
    4 rows in set (0.00 sec)
    
    • DISTINCT关键字,应用于所有列而不是前置它的列。

    限制结果

    mysql> SELECT vend_id FROM products LIMIT 5,5;
    +---------+
    | vend_id |
    +---------+
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    |    1003 |
    +---------+
    5 rows in set (0.00 sec)
    
    • LIMIT 5,5 指示MySQL返回从行5开始的5行。

    ORDER BY子句

    单个排序

    mysql> SELECT prod_name FROM products ORDER BY prod_name;
    +----------------+
    | prod_name      |
    +----------------+
    | .5 ton anvil   |
    | 1 ton anvil    |
    | 2 ton anvil    |
    | Bird seed      |
    | Carrots        |
    | Detonator      |
    | Fuses          |
    | JetPack 1000   |
    | JetPack 2000   |
    | Oil can        |
    | Safe           |
    | Sling          |
    | TNT (1 stick)  |
    | TNT (5 sticks) |
    +----------------+
    14 rows in set (0.00 sec)
    

    多个列排序

    mysql> SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;
    +---------+------------+----------------+
    | prod_id | prod_price | prod_name      |
    +---------+------------+----------------+
    | FC      |       2.50 | Carrots        |
    | TNT1    |       2.50 | TNT (1 stick)  |
    | FU1     |       3.42 | Fuses          |
    | SLING   |       4.49 | Sling          |
    | ANV01   |       5.99 | .5 ton anvil   |
    | OL1     |       8.99 | Oil can        |
    | ANV02   |       9.99 | 1 ton anvil    |
    | FB      |      10.00 | Bird seed      |
    | TNT2    |      10.00 | TNT (5 sticks) |
    | DTNTR   |      13.00 | Detonator      |
    | ANV03   |      14.99 | 2 ton anvil    |
    | JP1000  |      35.00 | JetPack 1000   |
    | SAFE    |      50.00 | Safe           |
    | JP2000  |      55.00 | JetPack 2000   |
    +---------+------------+----------------+
    14 rows in set (0.00 sec)
    
    • 对于上述例子中的输出,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

    指定排序方向

    mysql> SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name,prod_name;
    +---------+------------+----------------+
    | prod_id | prod_price | prod_name      |
    +---------+------------+----------------+
    | FC      |       2.50 | Carrots        |
    | TNT1    |       2.50 | TNT (1 stick)  |
    | FU1     |       3.42 | Fuses          |
    | SLING   |       4.49 | Sling          |
    | ANV01   |       5.99 | .5 ton anvil   |
    | OL1     |       8.99 | Oil can        |
    | ANV02   |       9.99 | 1 ton anvil    |
    | FB      |      10.00 | Bird seed      |
    | TNT2    |      10.00 | TNT (5 sticks) |
    | DTNTR   |      13.00 | Detonator      |
    | ANV03   |      14.99 | 2 ton anvil    |
    | JP1000  |      35.00 | JetPack 1000   |
    | SAFE    |      50.00 | Safe           |
    | JP2000  |      55.00 | JetPack 2000   |
    +---------+------------+----------------+
    14 rows in set (0.00 sec)
    
    • 默认是顺序排序(ASC);
    • 如果要逆序就在需要逆序的列指定DESC。

    WHERE 子句

    WHERE 子句操作符

    操 作 符 说 明
    = 等于
    <> 不等于
    != 不等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    = 等于
    BETWEEN 在指定的两个值之间

    检查单个值

    mysql> SELECT prod_id,prod_price,prod_name FROM products WHERE prod_name='fuses';
    +---------+------------+-----------+
    | prod_id | prod_price | prod_name |
    +---------+------------+-----------+
    | FU1     |       3.42 | Fuses     |
    +---------+------------+-----------+
    1 row in set (0.00 sec)
    

    不匹配检查

    mysql> SELECT vend_id,prod_name FROM products WHERE vend_id <> 1003;
    +---------+--------------+
    | vend_id | prod_name    |
    +---------+--------------+
    |    1001 | .5 ton anvil |
    |    1001 | 1 ton anvil  |
    |    1001 | 2 ton anvil  |
    |    1002 | Fuses        |
    |    1002 | Oil can      |
    |    1005 | JetPack 1000 |
    |    1005 | JetPack 2000 |
    +---------+--------------+
    7 rows in set (0.01 sec)
    

    范围值检查

    mysql> SELECT vend_id,prod_name FROM products WHERE prod_price BETWEEN 5 AND 10;
    +---------+----------------+
    | vend_id | prod_name      |
    +---------+----------------+
    |    1001 | .5 ton anvil   |
    |    1001 | 1 ton anvil    |
    |    1003 | Bird seed      |
    |    1002 | Oil can        |
    |    1003 | TNT (5 sticks) |
    +---------+----------------+
    5 rows in set (0.01 sec)
    

    空值检查

    mysql> SELECT cust_id FROM customers WHERE cust_email IS NULL;
    +---------+
    | cust_id |
    +---------+
    |   10002 |
    |   10005 |
    +---------+
    2 rows in set (0.00 sec)
    
  • 相关阅读:
    JVM 内部运行线程介绍
    JAVA多线程创建与退出过程
    各种 Java Thread State【转载】
    从Tomcat无法正常关闭讲讲Java线程关闭问题【转载】
    Class.forName和ClassLoader.loadClass的比较【转载】
    .NET Core、DNX、DNU、DNVM、MVC6学习资料
    Redis 资源
    Mongodb 资源
    部署Redis for Windows服务
    Mongodb副本集搭建经验
  • 原文地址:https://www.cnblogs.com/chengmf/p/13142161.html
Copyright © 2011-2022 走看看