赞
踩
select子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式。
<目标表达式>是算数表达式
【例3.19】查询全体学生的姓名及其出生年份。
Student表中存储的是年龄Sage,所以出生年份是一个表达式:2020-Sage
select Sname,2020-Sage
from Student;

其结果显示了学生的出生年份,但显示无列名,因为没有指定它的列名。
<目标表达式>也可以是字符串常量、函数等。
【例3.20】查询全体学生的姓名、出生年份和所在院系,系名用小写字母表示。
select Sname,'Year of Birth:',2020-Sage,lower(Sdept)
from Student;

这里加入了一列字符串,便于看表。
可以看到,上面两个表中皆有<无列名>的列名,可以通过指定别名来改变查询结果的列标题,比如:
select Sname NAME,'Year of Birth:'BIRTH,2020-Sage BIRTHDAY,lower(Sdept)DEPARTMENT--小写
from Student;

这样就可以给每列取列名了。当然,这里的系名要求是小写,也可改为大写。
| lower() | 小写 |
|---|---|
| upper() | 大写 |
select Sname NAME,'Year of Birth:'BIRTH,2020-Sage BIRTHDAY,upper(Sdept)DEPARTMENT--大写
from Student;

用distinct消除重复的行,缺省为all,即保留重复的行。
【例3.21】查询选修了课程的学生学号
select Sno from SC;
此时未指定distinct关键字,默认为all,结果包含重复行:

select distinct Sno from SC--消去重复行;

通过where子句实现。其包含的常用的查询条件如如下表:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。