《sql必知必会》------day3

第 7 课 创建计算字段

     计算字段并不实际存在于数据库表中。计算字段是运行时在 SELECT 语句内创建的。

拼接字段

     拼接(concatenate)将值联结到一起(将一个值附加到另一个值)构成单个值.Access 和 SQL Server 使用+号。 DB2、 Oracle、 PostgreSQL、 SQLite 和Open Office Base 使用||。在 MySQL 和 MariaDB 中,必须使用特殊的函数。

# MySQL 或 MariaDB使用语句
SELECT Concat(vend_name, ' (', vend_country, ')') FROM Vendors
ORDER BY vend_name;
#其他
SELECT vend_name + ' (' + vend_country + ')' FROM Vendors
ORDER BY vend_name;
或
SELECT vend_name || ' (' || vend_country || ')' FROM Vendors
ORDER BY vend_name;
去空格

          RTRIM()它去掉字符串右边的空格
          LTRIM()去掉字符串左边的空格
          TRIM()去掉字符串左右两边的空格

如:SELECT RTRIM(vend_name) FROM Vendors

别名:
    拼接地址字段,它只是一个值,实际上没有名字。一个未命名的列不能用于客户端应用中,因为客户端没有办法引用它。别名(alias)是一个字段或值的替换名,也称导出列(derived column)。别名用 AS 关键字赋予。

SELECT Concat(vend_name, ' (', vend_country, ')') AS vend_title  
FROM Vendors ORDER BY vend_name;

执行算术计算

SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price
FROM OrderItems WHERE order_num = 20008;
#expanded_price 列是一个计算字段

测试计算
      SELECT 语句为测试、检验函数和计算提供了很好的方法。省略了 FROM 子句后就是简单地访问和处理表达式,例如 SELECT 3 * 2;将返回 6, SELECT Trim(’ abc ');将返回 abc, SELECT Now();使用 Now()函数返回当前日期和时间。

第 8 课 使用函数处理数据

在这里插入图片描述

#使用 SOUNDEX()函数进行搜索,它匹配所有发音类似于Michael Green 的联系名
SELECT cust_name, cust_contact FROM Customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');
日期
 SQL Server
 SELECT order_num FROM Orders
WHERE DATEPART(yy, order_date) = 2012;

 SQL Server、 Sybase和Access 
 SELECT order_num FROM Orders
WHERE DATEPART('yyyy', order_date) = 2012;

PostgreSQL
SELECT order_num FROM Orders
WHERE DATE_PART('year', order_date) = 2012;

Oracle
SELECT order_num FROM Orders
WHERE to_number(to_char(order_date, 'YYYY')) = 2012;
#或WHERE order_date BETWEEN to_date('01-01-2012') AND to_date('12-31-2012');

MySQL 和 MariaDB
SELECT order_num FROM Orders WHERE YEAR(order_date) = 2012;

在这里插入图片描述

第 9 课 汇总数据

    聚集函数(aggregate function)对某些行运行的函数,计算并返回一个值。
在这里插入图片描述

SELECT COUNT(cust_email) AS num_cust FROM Customers;
#对 cust_email 列中有值的行进行计数,不计算null行
如果指定列名,则 COUNT()函数会忽略指定列的值为空的行,
但如果COUNT()函数中用的是星号(*),则不忽略

MAX()一般用来找出最大的数值或日期值,在用于文本数据时, MAX()返回按该列排序后的最后一行。MAX()函数忽略列值为 NULL 的行。

只包含不同的值,指定 DISTINCT 参数。对于count函数,DISTINCT 只能用于 COUNT(指定列名),不能用于 COUNT(*)。类似地, DISTINCT 必须使用列名,不能用于计算或表达式。

SELECT AVG(DISTINCT prod_price) AS avg_price FROM Products;
#考虑各个不同的价格的平均值

组合聚集函数:SELECT 语句可根据需要包含多个聚集函数。

《sql必知必会》------day6
《sql必知必会》------day5
《sql必知必会》------day4
《sql必知必会》------day3
《sql必知必会》------day2
《sql必知必会》------day1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值