数据库作业4——数据查询

3.4.1 单表查询

1 选择表中的若干列

(3)查询经过计算的值

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;

在这里插入图片描述

2 选择表中的若干元组

(1)消除取值重复的行

用distinct消除重复的行,缺省为all,即保留重复的行。
【例3.21】查询选修了课程的学生学号

select Sno from SC;

此时未指定distinct关键字,默认为all,结果包含重复行:
在这里插入图片描述

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

在这里插入图片描述

(2)查询满足条件的元组

通过where子句实现。其包含的常用的查询条件如如下表:

查询条件 谓词
比较 =,>,<,>=,<=,!=,<>,!>,!<;not+上述比较运算符
确定范围 between and,not between and
确定集合 in,not in
字符匹配 like,not like
空值 is null,is not null
多重条件(逻辑运算) and,or,not

a. 比较
【例3.22】查询计算机科学系全体学生的名单。

select Sname 
from Student
where Sdept='CS'
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值