• MySQL学习笔记(五)


    1、拼接字段

      拼接 (Concatenate):将值联结到一起构成单个值。

     1 mysql> SELECT Concat(vend_name, '(', vend_country, ')')
     2     -> FROM vendors
     3     -> ORDER BY vend_name;
     4 +-------------------------------------------+
     5 | Concat(vend_name, '(', vend_country, ')') |
     6 +-------------------------------------------+
     7 | ACME(USA)                                 |
     8 | Anvils R Us(USA)                          |
     9 | Furball Inc.(USA)                         |
    10 | Jet Set(England)                          |
    11 | Jouets Et Ours(France)                    |
    12 | LT Supplies(USA)                          |
    13 +-------------------------------------------+
    14 6 rows in set (0.01 sec)

    2、使用别名

      别名是一个字段或值的替换名

     1 mysql> SELECT Concat(RTrim(vend_name), '(', RTrim(vend_country), ')') AS vend_title
     2     -> FROM vendors
     3     -> ORDER BY vend_name;
     4 +------------------------+
     5 | vend_title             |
     6 +------------------------+
     7 | ACME(USA)              |
     8 | Anvils R Us(USA)       |
     9 | Furball Inc.(USA)      |
    10 | Jet Set(England)       |
    11 | Jouets Et Ours(France) |
    12 | LT Supplies(USA)       |
    13 +------------------------+
    14 6 rows in set (0.00 sec)

    3、执行算术计算

     1 mysql> SELECT prod_id,
     2     ->        quantity,
     3     ->        item_price,
     4     ->        quantity*item_price AS price
     5     -> FROM orderitems
     6     -> WHERE order_num =20005;
     7 +---------+----------+------------+-------+
     8 | prod_id | quantity | item_price | price |
     9 +---------+----------+------------+-------+
    10 | ANV01   |       10 |       5.99 | 59.90 |
    11 | ANV02   |        3 |       9.99 | 29.97 |
    12 | TNT2    |        5 |      10.00 | 50.00 |
    13 | FB      |        1 |      10.00 | 10.00 |
    14 +---------+----------+------------+-------+
    15 4 rows in set (0.00 sec)

    4、使用函数

      文本处理函数

     1 mysql> SELECT vend_name, Upper(vend_name) AS vend_name_upcase
     2     -> FROM vendors
     3     -> ORDER BY vend_name;
     4 +----------------+------------------+
     5 | vend_name      | vend_name_upcase |
     6 +----------------+------------------+
     7 | ACME           | ACME             |
     8 | Anvils R Us    | ANVILS R US      |
     9 | Furball Inc.   | FURBALL INC.     |
    10 | Jet Set        | JET SET          |
    11 | Jouets Et Ours | JOUETS ET OURS   |
    12 | LT Supplies    | LT SUPPLIES      |
    13 +----------------+------------------+
    14 6 rows in set (0.00 sec)

      常用的文本处理函数:Left()  返回串左边的字符,Length()  返回串的长度,Locate()  找出串的一个字串,

      Lower()  将串转换为小写,LTrim()  去掉串左边的空格,Right()  返回串右边的字符,RTrim()  去掉串

      右边的空格,Soundex()  返回串的SOUNDEX值,SubString()  返回子串的字符,Upper()  将串转换为大写。

    1 mysql> SELECT cust_name, cust_contact
    2     -> FROM customers
    3     -> WHERE Soundex(cust_contact) = Soundex('Y Lie');
    4 +-------------+--------------+
    5 | cust_name   | cust_contact |
    6 +-------------+--------------+
    7 | Coyote Inc. | Y Lee        |
    8 +-------------+--------------+
    9 1 row in set (0.00 sec)

      日期和时间处理函数

      常用日期和时间处理函数:AddDate()  增加一个日期(天、周等),AddTime  增加一个时间(时,分等),CurDate()

        返回当前日期,CurTime()  返回当前时间,Date()  返回日期时间的日期部分,DateDiff()  计算两个日期之差,

      Date_Add()  高度灵活的日期运算函数,Date_Format()  返回一个格式化的日期或时间串,Day()  返回一个日期的天数部分

      DayOfWeek()  对于一个日期,返回对应的星期几,Hour()  返回一个时间的小时部分,Minute()  返回一个时间的分钟部分,

      Month()  返回一个时间的月份部分,Now()  返回当前日期和时间Second()  返回一个时间的秒部分,Time()  返回一个日期

      时间的时间部分,Year()  返回一个时间的年份部分

    1 mysql> SELECT cust_id, order_num
    2     -> FROM orders
    3     -> WHERE Date(order_date) = '2005-09-01';
    4 +---------+-----------+
    5 | cust_id | order_num |
    6 +---------+-----------+
    7 |   10001 |     20005 |
    8 +---------+-----------+
    9 1 row in set (0.00 sec)
     1 mysql> SELECT *
     2 FROM orders
     3 WHERE Year(order_date) = 2005 AND Month(order_date) = 9;
     4 +-----------+---------------------+---------+
     5 | order_num | order_date          | cust_id |
     6 +-----------+---------------------+---------+
     7 |     20005 | 2005-09-01 00:00:00 |   10001 |
     8 |     20006 | 2005-09-12 00:00:00 |   10003 |
     9 |     20007 | 2005-09-30 00:00:00 |   10004 |
    10 +-----------+---------------------+---------+
    11 3 rows in set (0.00 sec)

    5、汇总数据

      聚集函数 (aggregate function) 运行在行组上,计算和返回单个值的函数。

      AVG()          返回某列的平均值

      COUNT()          返回某列的函数

      MAX()          返回某列的最大值

      MIN()           返回某列的最小值

      SUM()            返回某列值之和

     1 mysql> SELECT AVG(price) AS avg_price
     2     -> FROM products;
     3 ERROR 1054 (42S22): Unknown column 'price' in 'field list'
     4 mysql> SELECT AVG(prod_price) AS avg_price FROM products;
     5 +-----------+
     6 | avg_price |
     7 +-----------+
     8 | 16.133571 |
     9 +-----------+
    10 1 row in set (0.00 sec)
    11 
    12 mysql> SELECT COUNT(*) AS count
    13     -> FROM customers;
    14 +-------+
    15 | count |
    16 +-------+
    17 |     5 |
    18 +-------+
    19 1 row in set (0.00 sec)
    20 
    21 mysql> SELECT * FROM customers;
    22 +---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
    23 | cust_id | cust_name      | cust_address        | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email          |
    24 +---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
    25 |   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |
    26 |   10002 | Mouse House    | 333 Fromage Lane    | Columbus  | OH         | 43333    | USA          | Jerry Mouse  | NULL                |
    27 |   10003 | Wascals        | 1 Sunny Place       | Muncie    | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |
    28 |   10004 | Yosemite Place | 829 Riverside Drive | Phoenix   | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |
    29 |   10005 | E Fudd         | 4545 53rd Street    | Chicago   | IL         | 54545    | USA          | E Fudd       | NULL                |
    30 +---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
    31 5 rows in set (0.01 sec)
    32 
    33 mysql> SELECT MAX(cust_zip) AS max_zip
    34     -> FROM customers;
    35 +---------+
    36 | max_zip |
    37 +---------+
    38 | 88888   |
    39 +---------+
    40 1 row in set (0.00 sec)
     1 mysql> SELECT SUM(order_item) AS sum_order
     2     -> FROM orderitems;
     3 +-----------+
     4 | sum_order |
     5 +-----------+
     6 |        23 |
     7 +-----------+
     8 1 row in set (0.00 sec)
     9 
    10 mysql> SELECT SUM(item_price*quantity) AS sum_price FROM orderitems;
    11 +-----------+
    12 | sum_price |
    13 +-----------+
    14 |   1368.34 |
    15 +-----------+
    16 1 row in set (0.00 sec)
     1 mysql> SELECT COUNT(*) AS num_items,
     2                                MIN(prod_price) AS min_price,        
     3                                MAX(prod_price) AS max_price,        
     4                                SUM(prod_price) AS sum,       
     5                                AVG(DISTINCT prod_price) AS avg_price FROM products;
     6 +-----------+-----------+-----------+--------+-----------+
     7 | num_items | min_price | max_price | sum    | avg_price |
     8 +-----------+-----------+-----------+--------+-----------+
     9 |        14 |      2.50 |     55.00 | 225.87 | 17.780833 |
    10 +-----------+-----------+-----------+--------+-----------+
    11 1 row in set (0.29 sec)
    12     
  • 相关阅读:
    parted分区流程操作
    配置sudo命令行为审计
    sudo详细介绍
    groupadd(创建组)重要参数介绍
    useradd常用参数介绍
    /etc/default/useradd文件内容及对应功能
    linux基础正则
    centos 7.5 安装mongodb
    centos 7.5 安装mysql
    php删除制定文件及文件夹
  • 原文地址:https://www.cnblogs.com/liushaobo/p/3019539.html
Copyright © 2020-2023  润新知