MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
一、创建计算字段
1.拼接字段
在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。
SELECT Concat(vend_name,'(',vend_country,')') FROM vendors ORDER BY vend_name;
此语句的输出如下图所示:
上述拼接完成后,新列并没有名字,只是一个值。如果仅仅在SQL查询工具中查看是可以的,但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。为了解决这个问题,SQL支持列别名,别名用AS关键字赋予。
SELECT Concat(vend_name,'(',vend_country,')') AS vend_title FROM vendors ORDER BY vend_name;
此语句的输出如下图所示:
2.执行算术计算
SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM orderitems WHERE order_num=20005;
此语句的输出如下图所示:
二、使用数据处理函数
1.文本处理函数
Upper()函数将文本转换为大写。
SELECT vend_name,Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
此语句的输出如下图所示:
2.日期和时间处理函数
now() 返回当前日期和时间
如果要的是日期,请使用Date()。MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较。
SELECT cust_id,order_num FROM orders WHERE Date(order_date)='2005-09-01';
此语句的输出如下图所示:
如果要检索出2005年9月下的所有订单怎么办?
SELECT cust_id,order_num FROM orders WHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
SELECT cust_id,order_num FROM orders WHERE Year(order_date) = 2005 AND Month(order_date) = 9;
此语句的输出如下图所示:
3.数值处理函数
Abs() 返回一个数的绝对值
Cos() 返回一个角度的余弦
Exp() 返回一个数的指数值
Mod() 返回操作数的余数
Sin() 返回一个角度的正弦