sql select语句(四)

sql select语句(四)

一、计算字段

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

1. 拼接字段

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

MySQL 进行拼接,可以在SELECT语句中使用Concat()函数来拼接两个列

例:假如我们想让表ms的数据的name和age以 name:age 这样的格式输出,我们们就可以shiy9ongConcat()函数

SELECT Concat(name,':',age) FROM ms;

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

我们还可以用 AS 关键字为得到的字段取一个别名
例: SELECT Concat(name,':',age) AS name_age FROM ms;

2. RTrim() & LTrim() & Trim()

函数 RTrim(),LTrim(),Trim()的用处与java中的是一样的

RTrim(): 去除字符串右边的空格
LTrim(): 去除字符串左边的空格
Trim(): 去除字符串两边的空格

例: SELECT RTrim(name) FROM ms;
输出ms表name列的数据并去除name右边的空格。
3.算数计算

我们可以对数据为int,double类型的列进行算数计算,

如:我们有一个订单表orderitems,我们想通过数量quantity和单价item_price得到总价(数量*单价)

例: SELECT quantity*item_price AS expanded_price FROM orderitems;

注:MySQL支持基本算术操作符(+-/*),此外,圆括号可以用来区分优先顺序。
4. Now()
SELECT Now(); 可以返回当前时间。

注: SELECT Trim(' abc '); :返回abc,
   SELECT 3*3; : 返回9。
5.数据处理函数

与大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。

注:函数没有SQL的可移植性,几乎每种主要的DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大,如果决定使用函数,应该做好注释,以便以后移植的便利性,能不用就不用了。

大多数SQL支持以下类型的函数

  • 用于处理文本串(如删除或填充值,转换大小写)的文本函数
  • 用于在数值数据上进行算数计算操作(如返回绝对值,进行代数运算)的数值函数
  • 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性等)的日期和时间函数
  • 返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
1. 文本函数
函数 说明
Left() 返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower() 将串转换为小写
LTrim() 去掉左边的空格
Right() 返回串右边的字符
RTrim() 去掉右边的空格
Soundex() 返回串的SOUNDEX值
SubString() 返回子串的字符
Upper() 将串转换为大写
2.日期和时间处理函数
说明 函数
AddDate() 增加一个日期(天,周等)
AddTime() 增加一个时间(时,分等)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回时期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期运算函数
Date_Format() 返回一个格式化的日期或时间串
Day() 返回一个日期的天数部分
DayOfWeek() 对于一个日期,返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个日期的月份部分
Now() 返回当前日期和时间
Second() 返回一个时间的秒部分
Time() 放一个日期时间的时间部分
Year() 返回一个日期的年份部分

注:MySQL不管是插入,更新,过滤,格式都应该是yyyy-mm-dd。

例: SELECT name,age FROM ms WHERE birthday='1998-02-04';
该语句检索出birthday为1998-02-04的数据的name,age,但如果我们储存的数据为'1998-02-04 08:23:19'则我们就检索不出来了
这是我们可以使用日期函数Date()
例: SELECT name,age FROM ms WHERE Date(birthday)='1998-02-04';

SELECT name,age FROM ms WHERE Date(birthday) BETWEEN '1998-02-01' AND '1998-02-28';
我们可以使用 BETWEEB 来定义一个时间范围
我们还有另外一种方法,不需要我们来计算这一年是否是闰年了
例: SELECT name,age FROM ms WHERE Year(birthday) = 1998 AND Month(birthday) = 2;
3. 数字处理函数
函数 说明
Abs() 返回一个数的绝对值
Cos() 返回一个角度的余弦值
Exp() 返回一个数的指数值
Mod() 返回除操作的余数
Pi() 返回圆周率
Rand() 返回一个随机数
Sin() 返回一个角度的正弦值
Sqrt() 返回一个数的平方根
Tan() 返回一个角的正切值
6. 聚合函数
1. AVG() :返回某列的平均值
例: SELECT AVG(age) FROM ms;

2. COUNT() : 返回某列的行数
例: SELECT COUNT(*) FROM ms;
注:如果COUNT()的值不为* 则忽略NULL值

3. MAX() : 返回某列的最大值
例: SELECT MAX(age) FROM ms;

4. MIN() : 返回某列的最小值
例: SELECT MIN(age) FROM ms;

5. SUM() : 返回某列的总和
例: SELECT SUM(quantity*item_price) AS SUM_price FROM orderitems;

发布了28 篇原创文章 · 获赞 1 · 访问量 585

猜你喜欢

转载自blog.csdn.net/qq_41911729/article/details/104451715