MySQL基础入门(3)

5 篇文章 0 订阅

字段:基本上与列的意思相同,经常护花能使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。

拼接字段(Concat)

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

多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。当把SQL语句转成MySQL语句是一定要将这个区别铭记在心。

下面是一个Concat() 函数演示:

SELECT Concat(vend_name,'(',vend_country,')') #这里连接了name名字、左括号、country国家、右括号。
FROM vendors
ORDER BY vend_name;

输出:TOM(USA)
	  MIKE(UK)

Concat()拼接串,即吧多个串连接起来形成一哥较长的串,Concat()需要一个或多个指定的串,各个串之间用逗号隔开。

RTrim()函数:删除数据右侧多余的空格,以整理数据。看一个演示:

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')')
FROM vendors    	#这样就删除了名字和国家右边的空格,对数据进行了整理
ORDER BY vend_name;

有RTrim()当然也有LTrim(),表示删除串左边的空格,Trim()则是删除串左右两边的空格。

使用别名(AS)

SQL支持列别名,别名是一个字段或之的替换名,使用AS关键字。请看下面一个示例:

SELECT ConcatConcat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_title
FROM vendors
ORDER BY vend_name;

输出:vend_title -- 输出变成了AS关键字后的别名
		MIKE(UK)
		TOM(USA)

别名有时也叫导出列,不管叫啥,所代表的东西都是一样的。

第十一章

使用数据处理函数

1.文本处理函数
Upper()函数:将文本转化成大写。下面是一个示例

SELECT vend_name,Upper(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;

输出:vend_name    vend_name_upcase
		tom           TOM
		mike          MIKE

有此示例还有其他的文本处理函数就不一一列举了。

2.日期函数Date():获取相应列的日期

SELECT cust_id,order_num
FROM orders
WHERE Date(order_date)BETWEEN '2021-01-17' AND '2005-01-30';
-- 这是检索出2021年1月17日到1月30日的所有订单。

还有一种方法,不需要基础每个月有多少天或操心闰年二月的问题的方法
Year()函数是一个从日期(或日期时间)中返回年份的函数。类似,Month()从日期中返回月份。

SELECT cust_id,order_num
FROM orders
WHERE Year(order_date) = 2021 AND Month(order_date) = 1;
-- 检索出来的order_date是2021年1月的所有行。

第十二章

汇总数据

聚集函数:运行在行组上,计算和返回单个值的函数。
1.AVG()函数通过对表中行数计数并计算特定列值之和,求得该列的平均值。

SELECT AVG(prod_price) AS avg_price
FROM products
WHERE vend_id = 2021;
-- 返回2021号供应商所提供产品的平均价格

注意:AVG()函数只用于单个列,如果要返回多个列的平均值,必须使用多个AVG()函数。同时AVG()忽略列值为null的行。

2.COUNT()函数进行计数,可利用COUNT()函数确定表中行的数目或符合特定条件的行的数目。
COUNT()函数有两种使用方式:
●使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值
●使用COUNT(colum)对特定列中的具有值的行进行计数,忽略NULL值。

SELECT COUNT(*) AS num_cust  -- 不忽略null值
FORM customers;
-- 利用COUNT(*)对所有行计数,返回customers表中的客户的总数

-- 下列是只对有电子邮件地址的客户计数
SELECT COUNT(cust_email) AS num_cust  -- 忽略null值
FROM customers;

3.MAX()、MIN()函数返回指定类中的最大值、最小值,要求指定列名:

SELECT MAX(prod_price) AS max_pricer -- 忽略null值行
FROM products;

对非数值数据使用MAX()、MIN(): MySQL允许将它用来返回任意列中的最大值(最小值),包括返回文本列中的最大值(最小值),在用于文本数据是,如果数据按相应的列排序,则MAX()返回最后一行。

4.SUM()函数用来返回指定列值的和(总计)。

SELECT SUM(item_price) AS total_price
FROM orderitems
WHERE order_num = 1002;
-- 返回订单号为1002的所有价格总和

5.聚集不同值:DISTINCT()函数

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id = 1002;
-- 多个相同价格只取一个。

注意:如果指定列名,DISTINCT()只能用于COUNT(),不能用于COUNT(*)。

小结

本次学习了字段拼接,使用别名,数据处理函数和聚集函数的运用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值