去掉某字段括号中的值,读书笔记2

 明日在数据库相配数据的时候,发掘部分数量存在别称,导致自家的数目相配不上。在此边记录分享一下

第十章:成立计算字段

  • 拼接字段
    • 拼接函数 Concat()
      • SELECT Concat(name, '(', department, ')') FROM student ORDER BY name;
    • 去掉空格函数 Trim() LTrim() RTrim()
    • 别名 alias
      • SELECT Concat(name, '(', department, ')') AS name_department FROM student ORDER BY name;
  • 实践算术计算
    • 帮衬加减乘除
      • SELECT name, 2018-birth AS age FROM student ORDER BY age;

MySQL学习鞋的印痕记录08--成立总结字段--Concat(),AS

比方: 孟奉鹤 (Lee 乔恩g Suk),这里小编合作的是 “黄承言”

第十一章:数据管理函数

绝大相当多SQL提供上面的函数

  • 文本管理函数
    • Left() 重临串左边的字符
    • Length() 再次来到串的长度
    • Locate() 找寻串的几个子串
    • Lower() 转变来小写
    • LTrim() 去掉串左边的空格
    • Right() 重返串左边的字符
    • RTrim() 去掉串侧边的字符
    • Soundex() 重回串的Soundex值(依据发音来配合,中文效果不怎样)
    • SubString() 重临子串的字符
    • Upper() 转变到大写
  • 日子和岁月管理函数
    • AddDate() 扩大一个日子
    • AddTime() 扩充二个岁月
    • CurDate() 再次来到当前天期
    • CurTime() 重返当前时间
    • Date() 再次回到日期时间中的日期部分
    • DateDiff() 总结多个日子之差
    • Date_Add() 中度灵活的日子运算函数
    • Date_Format() 再次回到四个格式化的日期或然时间串
    • Day() 重回三个日子的天命部分
    • DayOfWeek() 重临贰个日期对应一周内的第几天(周天是第1天)
    • Hour() 重临八个时光的小时有个别
    • Minute() 再次来到一个小时的秒钟部分
    • Month() 重返贰个日子的月度部分
    • Now() 再次回到当前些天期和时间
    • Second() 重返贰个年华的秒部分
    • Time() 再次回到叁个日猪时间的时刻有个别
    • Year() 重临三个日期的年份部分
  • 数值管理函数
    • Abs() 重临二个数的相对值
    • Cos() 重临贰个角度的余弦
    • Exp() 重临一个数的指数值
    • Mod() 重回除操作的余数
    • Pi() 再次来到圆周率
    • Rand() 再次回到三个大肆数
    • Sin() 重回二个角度的正弦
    • Sqrt() 再次来到叁个数的平方根
    • Tan() 重回二个角度的正切

 

示例1:

第十二章:汇总函数

  • 会晤函数(无需实际数目笔者,只是汇总消息)

    • 收获行数
    • 求和
    • 最大值、最小值和平均值
    • AVG() 重返某列的平均值
    • COUNT() 重回某列的行数
      • SELECT COUNT(*) FROM student; //不忽略null
      • SELECT COUNT(name) FROM student; //钦赐列明的话,忽视null
    • MAX() 再次回到某列的最大值
    • MIN() 再次来到某列的最小值
    • SUM() 再次回到某列之和
  • 聚拢差别值

    • DISTINCE 排除值一样的行,能够用于地点的5个汇聚函数,可是COUNT(DISTINCE price) 必需钦定列名,MAX() 和 MIN() 使用 DISTINCE 未有意义。
  • 结缘聚焦函数

    • SELECT COUNT(*) AS user_count, MIN(birth) AS birth_old, MAX(birth) AS birth_young, AVG(birth) AS birth_avg FROM student;

    本文所用到的报表数据

SELECT reverse(substring(reverse(Name) ,charindex('(',reverse(Name)) 1 , len(Name)))  FROM T

第十三章:分组数据

数码分组: 把数据分为四个逻辑组,以便对种种组开展联谊总结

  • 分组 GROUP BY

    • SELECT birth, COUNT(*) AS num FROM student GROUP BY birth; //检索每一个出生年份有多少人
    • GROUP BY 能够包蕴多列
    • GROUP BY 能够嵌套分组
    • GROUP BY 必需出现在 WHERE 子句之后, O昂CoraDEEscort BY 子句以前
  • 过滤分组 HAVING(HAVING 可以替代 WHERE 子句, WHERE 是对数码分组前开展过滤,HAVING 是对数据开展分组后过滤)

    • SELECT birth FROM student GROUP BY birth HAVING birth > 一九九〇; //查询1987之后哪个年份有人出生
  • 对分组实行排序 GROUP BY O安德拉DECR-V BY

    • SELECT birth, COUNT(*) AS num FROM student GROUP BY birth OSportageDER BY birth; //按出生年份分组并升序排序
  • SELECT 子句

    • SELECT 要回到的列或然表明式
    • FROM 从当中搜索数据的表
    • WHERE 过滤行
    • GROUP BY 分组
    • HAVING 过滤分组
    • ORDER BY 排序
    • LIMIT 要寻觅的行数
 mysql> SELECT * FROM vendors;
 --------- ---------------- ----------------- ------------- ------------ ---------- -------------------------------------------- 
| vend_id | vend_name      | vend_address    | vend_city   | vend_state | vend_zip | vend_country |
 --------- ---------------- ----------------- ------------- ------------ ---------- --------------------------------------------- 
|    1001 | Anvils R Us    | 123 Main Street | Southfield  | MI         | 48075    | USA          |
|    1002 | LT Supplies    | 500 Park Street | Anytown     | OH         | 44333    | USA          |
|    1003 | ACME           | 555 High Street | Los Angeles | CA         | 90046    | USA          |
|    1004 | Furball Inc.   | 1000 5th Avenue | New York    | NY         | 11111    | USA          |
|    1005 | Jet Set        | 42 Galaxy Road  | London      | NULL       | N16 6PS  | England      |
|    1006 | Jouets Et Ours | 1 Rue Amusement | Paris       | NULL       | 45678    | France       |
 --------- ---------------- ----------------- ------------- ------------ ---------- ----------------------------------------------- 
6 rows in set (0.00 sec)

示例2:

第十四章:使用子查询

  • SQL中具有语句都是查询,平日指的是 SELECT 语句

  • SELECT 语句能够嵌套使用,子查询正是查询嵌套查询

  • 子查询无法嵌套太多,会默转潜移属性

  • 子查询日常跟 IN 操作符协作使用,不常也会跟等于(=)、不等于(<>)合作使用

  • 看叁个事例(从3张表中检索数据):

    • SELECT cust_name, cust_contact FROM customers WHERE cust_id IN
      (SELECT cust_id FROM orders WHERE order_num IN
      (SELECT order_num FROM orderitems WHERE prod_id = 'TNT2'));
  • 用作计量列字段使用子查询:

    • 事例:从order表和customer表中查询出各样客商的订单数):
    • SELECT cust_name,
      cust_state,
      (SELECT COUNT(*) FROM order WHERE order.cust_id=customer.cust_id)
      AS orders FROM customer ORDER BY cust_name;
    • 先从customer表中搜索全部顾客,然后用客户id跟order表中的顾客id相配,查询出每一个顾客的订单数,作为计算字段orders输出。

 

SELECT reverse(stuff(reverse(Name), 1, charindex('(', reverse(Name)), '')) FROM T

 

在意,倘诺去掉括号后,数据含有空格,别忘记去掉。

1.计算字段并不实际存在于数据库表中,计算字段是在运作时在SELECT语句内成立的。

上下的空格,使用LTrim和RTrim即可,例如:LTrim(RTrim(字段))

 

高级中学档的空格,使用replace函数替换,比方:Replace(字段,' ','')

 

2.拼接字段Concat()

  *东拼西凑:将值连结到联合组成单个值

   拼接多少个列

  eg: 
  mysql> SELECT Concat(vend_name,'(',vend_country,')') FROM vendors
            -> ORDER BY vend_name;
 ------------------------------------------------------- 
| Concat(vend_name,'(',vend_country,')') |
 -------------------------------------------------------- 
| ACME(USA)                                                |
| Anvils R Us(USA)                                       |
| Furball Inc.(USA)                                        |
| Jet Set(England)                                         |
| Jouets Et Ours(France)                              |
| LT Supplies(USA)                                       |
 --------------------------------------------------------- 
6 rows in set (0.00 sec)

 

 

3.删减左边多余的空格RTrim()

  删除左侧多余的空格LTrim()

  删除两边多余的空格Trim()

  以RTrim()为例:

  eg:
    mysql> SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')')
             -> FROM vendors
             -> ORDER BY vend_name;
 ------------------------------------------------------ 
| Concat(RTrim(vend_name),'(',RTrim(vend_country),')') |
 ------------------------------------------------------ 
| ACME(USA)                                            |
| Anvils R Us(USA)                                     |
| Furball Inc.(USA)                                    |
| Jet Set(England)                                     |
| Jouets Et Ours(France)                               |
| LT Supplies(USA)                                     |
 ------------------------------------------------------ 
6 rows in set (0.00 sec)

 

 

4.采纳外号(alias),关键字AS

  eg:
  mysql> SELECT Concat(Trim(vend_name),'(',Trim(vend_country),')')
           -> AS vend_title
           -> FROM vendors
           -> ORDER BY vend_name;
 ------------------------ 
| vend_title             |
 ------------------------ 
| ACME(USA)              |
| Anvils R Us(USA)       |
| Furball Inc.(USA)      |
| Jet Set(England)       |
| Jouets Et Ours(France) |
| LT Supplies(USA)       |
 ------------------------ 
6 rows in set (0.00 sec)

 

 

5.实施算术总括

  先物色订单号三千5中的全体货物

   eg:
  mysql> SELECT prod_id,quantity,item_price
           -> FROM orderitems
           -> WHERE order_num = 20005;
 --------- ---------- ------------ 
| prod_id | quantity | item_price |
 --------- ---------- ------------ 
| ANV01   |       10 |       5.99 |
| ANV02   |        3 |       9.99 |
| TNT2    |        5 |      10.00 |
| FB      |        1 |      10.00 |
 --------- ---------- ------------ 
4 rows in set (0.00 sec)

 

 

 再聚集货品的价格(单价*数量)

  eg:
 mysql> SELECT prod_id,quantity,item_price,
          -> quantity*item_price AS expanded_price
          -> FROM orderitems
          -> WHERE order_num = 20005;
 --------- ---------- ------------ ---------------- 
| prod_id | quantity | item_price | expanded_price |
 --------- ---------- ------------ ---------------- 
| ANV01   |       10 |       5.99 |          59.90 |
| ANV02   |        3 |       9.99 |          29.97 |
| TNT2    |        5 |      10.00 |          50.00 |
| FB      |        1 |      10.00 |          10.00 |
 --------- ---------- ------------ ---------------- 
4 rows in set (0.00 sec)

 

 

6.MySQL支撑的为主算术操作符 ,-,*,/

本文所用到的报表数据 mysql SELECT * FROM vendors; --------- ---------------- ----------------- ------------- --...

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:去掉某字段括号中的值,读书笔记2

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。