当前位置:嗨网首页>书籍在线阅读

07-查询经过计算的值

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.2.4 查询经过计算的值

SELECT子句后不仅可以是表中的基本字段,也可以是表达式。

【范例8-3】

查询所有学生的学号、姓名,及出生年月。

MySQL> select sno,sname,year(now())-sage -> from student;

结果如下。

+-----+-------+------------------+ | sno | sname | year(now())-sage | +-----+-------+------------------+ | 1|刘敏 | 1996| | 2|周松 | 1994| | 3|张明 | 1995| | 4|孟欣 | 1994| +-----+-------+------------------+ 4 rows in set (0.00 sec)

查询结果中的year(now())为函数嵌套。now()函数获取系统日期,year() 函数可以获取参数的年份,year(now())的结果为系统日期的年份,year(now())-sage表达式计算的是学生的出生年份。

该查询中的表达式在查询结果中的列名为表达式本身,可以通过指定别名来改变查询结果的列标题。指定的方法是在待指定别名的字段、表达式后加空格,然后给出列别名。范例8-3中可以使用下面语句改变列的标题。

MySQL> select sno,sname,year(now())-sage sbir -> from student;

其中year(now())-sage表达式后的sbir为该表达式的别名,结果如下。

+-----+-------+------+ | sno | sname | sbir | +-----+-------+------+ | 1|刘敏 |1996| | 2|周松 |1994| | 3|张明 |1995| | 4|孟欣 |1994| +-----+-------+------+ 4 rows in set (0.04 sec)