zoukankan      html  css  js  c++  java
  • MySQL学习笔记(三)

    1、检索数据

      单列检索

     1 mysql> SELECT prod_name
     2     -> FROM products;
     3 +----------------+
     4 | prod_name      |
     5 +----------------+
     6 | .5 ton anvil   |
     7 | 1 ton anvil    |
     8 | 2 ton anvil    |
     9 | Detonator      |
    10 | Bird seed      |
    11 | Carrots        |
    12 | Fuses          |
    13 | JetPack 1000   |
    14 | JetPack 2000   |
    15 | Oil can        |
    16 | Safe           |
    17 | Sling          |
    18 | TNT (1 stick)  |
    19 | TNT (5 sticks) |
    20 +----------------+
    21 14 rows in set (0.00 sec)

      多列检索

     1 mysql> SELECT prod_id, prod_name, prod_price
     2     -> FROM products;
     3 +---------+----------------+------------+
     4 | prod_id | prod_name      | prod_price |
     5 +---------+----------------+------------+
     6 | ANV01   | .5 ton anvil   |       5.99 |
     7 | ANV02   | 1 ton anvil    |       9.99 |
     8 | ANV03   | 2 ton anvil    |      14.99 |
     9 | DTNTR   | Detonator      |      13.00 |
    10 | FB      | Bird seed      |      10.00 |
    11 | FC      | Carrots        |       2.50 |
    12 | FU1     | Fuses          |       3.42 |
    13 | JP1000  | JetPack 1000   |      35.00 |
    14 | JP2000  | JetPack 2000   |      55.00 |
    15 | OL1     | Oil can        |       8.99 |
    16 | SAFE    | Safe           |      50.00 |
    17 | SLING   | Sling          |       4.49 |
    18 | TNT1    | TNT (1 stick)  |       2.50 |
    19 | TNT2    | TNT (5 sticks) |      10.00 |
    20 +---------+----------------+------------+
    21 14 rows in set (0.00 sec)

      在实际列名的位置使用(*)通配符,SELECT语句便可以检索出所有的列。

      检索不同的行

    通过DISTINCT关键字可以是Mysql只返回不同的行

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

      限制结果

    只返回第一行或前几行,可以使用LIMIT子句

     1 mysql> SELECT prod_name
     2     -> FROM products
     3     -> LIMIT 5;
     4 +--------------+
     5 | prod_name    |
     6 +--------------+
     7 | .5 ton anvil |
     8 | 1 ton anvil  |
     9 | 2 ton anvil  |
    10 | Detonator    |
    11 | Bird seed    |
    12 +--------------+
    13 5 rows in set (0.00 sec)

    2、 排序数据

     1 mysql> SELECT prod_name
     2     -> FROM products
     3     -> ORDER BY prod_name;
     4 +----------------+
     5 | prod_name      |
     6 +----------------+
     7 | .5 ton anvil   |
     8 | 1 ton anvil    |
     9 | 2 ton anvil    |
    10 | Bird seed      |
    11 | Carrots        |
    12 | Detonator      |
    13 | Fuses          |
    14 | JetPack 1000   |
    15 | JetPack 2000   |
    16 | Oil can        |
    17 | Safe           |
    18 | Sling          |
    19 | TNT (1 stick)  |
    20 | TNT (5 sticks) |
    21 +----------------+
    22 14 rows in set (0.27 sec)

      多列排序

     1 mysql> SELECT prod_id, prod_price, prod_name
     2     -> FROM products
     3     -> ORDER BY prod_price, prod_name;
     4 +---------+------------+----------------+
     5 | prod_id | prod_price | prod_name      |
     6 +---------+------------+----------------+
     7 | FC      |       2.50 | Carrots        |
     8 | TNT1    |       2.50 | TNT (1 stick)  |
     9 | FU1     |       3.42 | Fuses          |
    10 | SLING   |       4.49 | Sling          |
    11 | ANV01   |       5.99 | .5 ton anvil   |
    12 | OL1     |       8.99 | Oil can        |
    13 | ANV02   |       9.99 | 1 ton anvil    |
    14 | FB      |      10.00 | Bird seed      |
    15 | TNT2    |      10.00 | TNT (5 sticks) |
    16 | DTNTR   |      13.00 | Detonator      |
    17 | ANV03   |      14.99 | 2 ton anvil    |
    18 | JP1000  |      35.00 | JetPack 1000   |
    19 | SAFE    |      50.00 | Safe           |
    20 | JP2000  |      55.00 | JetPack 2000   |
    21 +---------+------------+----------------+
    22 14 rows in set (0.03 sec)

      指定排序顺序

     1 mysql> SELECT prod_id, prod_price, prod_name
     2     -> FROM products
     3     -> ORDER BY prod_price DESC;
     4 +---------+------------+----------------+
     5 | prod_id | prod_price | prod_name      |
     6 +---------+------------+----------------+
     7 | JP2000  |      55.00 | JetPack 2000   |
     8 | SAFE    |      50.00 | Safe           |
     9 | JP1000  |      35.00 | JetPack 1000   |
    10 | ANV03   |      14.99 | 2 ton anvil    |
    11 | DTNTR   |      13.00 | Detonator      |
    12 | TNT2    |      10.00 | TNT (5 sticks) |
    13 | FB      |      10.00 | Bird seed      |
    14 | ANV02   |       9.99 | 1 ton anvil    |
    15 | OL1     |       8.99 | Oil can        |
    16 | ANV01   |       5.99 | .5 ton anvil   |
    17 | SLING   |       4.49 | Sling          |
    18 | FU1     |       3.42 | Fuses          |
    19 | FC      |       2.50 | Carrots        |
    20 | TNT1    |       2.50 | TNT (1 stick)  |
    21 +---------+------------+----------------+
    22 14 rows in set (0.00 sec)

    DESC关键字只应用到直接位于其前面的列名。DESC:降序排列,ASC:升序排列(默认排序)

      3、过滤数据  (使用WHERE子句)

     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE prod_price = 2.50;
     4 +---------------+------------+
     5 | prod_name     | prod_price |
     6 +---------------+------------+
     7 | Carrots       |       2.50 |
     8 | TNT (1 stick) |       2.50 |
     9 +---------------+------------+
    10 2 rows in set (0.03 sec)

    WHERE子句的位置:在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。

      其他WHERE子句操作符的使用

    1 mysql> SELECT prod_name, prod_price
    2     -> FROM products
    3     -> WHERE prod_name = 'fuses';
    4 +-----------+------------+
    5 | prod_name | prod_price |
    6 +-----------+------------+
    7 | Fuses     |       3.42 |
    8 +-----------+------------+
    9 1 row in set (0.00 sec)
     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE prod_price < 10;
     4 +---------------+------------+
     5 | prod_name     | prod_price |
     6 +---------------+------------+
     7 | .5 ton anvil  |       5.99 |
     8 | 1 ton anvil   |       9.99 |
     9 | Carrots       |       2.50 |
    10 | Fuses         |       3.42 |
    11 | Oil can       |       8.99 |
    12 | Sling         |       4.49 |
    13 | TNT (1 stick) |       2.50 |
    14 +---------------+------------+
    15 7 rows in set (0.27 sec)
     1 mysql> SELECT vend_id, prod_name
     2     -> FROM products
     3     -> WHERE vend_id <> 1003;
     4 +---------+--------------+
     5 | vend_id | prod_name    |
     6 +---------+--------------+
     7 |    1001 | .5 ton anvil |
     8 |    1001 | 1 ton anvil  |
     9 |    1001 | 2 ton anvil  |
    10 |    1002 | Fuses        |
    11 |    1005 | JetPack 1000 |
    12 |    1005 | JetPack 2000 |
    13 |    1002 | Oil can      |
    14 +---------+--------------+
    15 7 rows in set (0.53 sec)
     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE prod_price BETWEEN 5 AND 10;
     4 +----------------+------------+
     5 | prod_name      | prod_price |
     6 +----------------+------------+
     7 | .5 ton anvil   |       5.99 |
     8 | 1 ton anvil    |       9.99 |
     9 | Bird seed      |      10.00 |
    10 | Oil can        |       8.99 |
    11 | TNT (5 sticks) |      10.00 |
    12 +----------------+------------+
    13 5 rows in set (0.00 sec)

      空值检查

     1 mysql> SELECT cust_id
     2     -> FROM customers
     3     -> WHERE cust_email IS NULL;
     4 +---------+
     5 | cust_id |
     6 +---------+
     7 |   10002 |
     8 |   10005 |
     9 +---------+
    10 2 rows in set (0.06 sec)

      AND操作符

     1 mysql> SELECT prod_id, prod_price, prod_name
     2     -> FROM products
     3     -> WHERE vend_id = 1003 AND prod_price <= 10;
     4 +---------+------------+----------------+
     5 | prod_id | prod_price | prod_name      |
     6 +---------+------------+----------------+
     7 | FB      |      10.00 | Bird seed      |
     8 | FC      |       2.50 | Carrots        |
     9 | SLING   |       4.49 | Sling          |
    10 | TNT1    |       2.50 | TNT (1 stick)  |
    11 | TNT2    |      10.00 | TNT (5 sticks) |
    12 +---------+------------+----------------+
    13 5 rows in set (0.00 sec)

      OR操作符

     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE vend_id = 1002 OR vend_id = 1003;
     4 +----------------+------------+
     5 | prod_name      | prod_price |
     6 +----------------+------------+
     7 | Detonator      |      13.00 |
     8 | Bird seed      |      10.00 |
     9 | Carrots        |       2.50 |
    10 | Fuses          |       3.42 |
    11 | Oil can        |       8.99 |
    12 | Safe           |      50.00 |
    13 | Sling          |       4.49 |
    14 | TNT (1 stick)  |       2.50 |
    15 | TNT (5 sticks) |      10.00 |
    16 +----------------+------------+
    17 9 rows in set (0.00 sec)

      IN操作符

     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE vend_id IN (1002, 1003)
     4     -> ORDER BY prod_name;
     5 +----------------+------------+
     6 | prod_name      | prod_price |
     7 +----------------+------------+
     8 | Bird seed      |      10.00 |
     9 | Carrots        |       2.50 |
    10 | Detonator      |      13.00 |
    11 | Fuses          |       3.42 |
    12 | Oil can        |       8.99 |
    13 | Safe           |      50.00 |
    14 | Sling          |       4.49 |
    15 | TNT (1 stick)  |       2.50 |
    16 | TNT (5 sticks) |      10.00 |
    17 +----------------+------------+
    18 9 rows in set (0.00 sec)

      NOT操作符

     1 mysql> SELECT prod_name, prod_price
     2     -> FROM products
     3     -> WHERE vend_id NOT IN (1002, 1003);
     4 +--------------+------------+
     5 | prod_name    | prod_price |
     6 +--------------+------------+
     7 | .5 ton anvil |       5.99 |
     8 | 1 ton anvil  |       9.99 |
     9 | 2 ton anvil  |      14.99 |
    10 | JetPack 1000 |      35.00 |
    11 | JetPack 2000 |      55.00 |
    12 +--------------+------------+
    13 5 rows in set (0.00 sec)
  • 相关阅读:
    Codeforces 903F Clear the Matrix
    Codeforces 899D Shovel Sale
    Codeforces 898E Squares and not squares
    Codeforces 899B Months and Years
    Codeforces 854B Maxim Buys an Apartment:贪心
    BZOJ 1198 [HNOI2006]军机调度:dfs
    BZOJ 1196 [HNOI2006]公路修建问题:二分 + 贪心生成树check(类似kruskal)
    BZOJ 1193 [HNOI2006]马步距离:大范围贪心 小范围暴搜
    BZOJ 1192 [HNOI2006]鬼谷子的钱袋:二进制 砝码称重问题
    BZOJ 1191 [HNOI2006]超级英雄Hero:二分图匹配 匈牙利算法
  • 原文地址:https://www.cnblogs.com/liushaobo/p/2998922.html
Copyright © 2011-2022 走看看