赞
踩
本题目要求编写SQL语句,
检索出 stu表中年龄在18-20之间的学生记录。
注意: 计算年龄时以年计算,不考虑出生月份。假定当前日期为‘2020-03-01'。
请在这里写定义表结构的SQL语句。例如:
- CREATE TABLE `stu` (
- `sno` char(4) NOT NULL,
- `sname` char(8) NOT NULL,
- `sex` tinyint(1) DEFAULT NULL,
- `mno` char(2) DEFAULT NULL,
- `birdate` datetime DEFAULT NULL,
- `memo` text,
- PRIMARY KEY (`sno`)
- );
请在这里给出上述表结构对应的表样例。例如
stu表:

请在这里给出输出样例。例如:

我的答案:
- select distinct sno as ‘学号’,
- sname as ‘姓名’ ,
- sex as ‘性别’,
- mno as ‘专业’ ,
- YEAR('2020-03-01') - YEAR(birdate) as ‘年龄’,
- memo as ‘备注’
- from stu
- where YEAR('2020-03-01') - YEAR(birdate) between 18 and 20
- order by sno asc;
总结:
本题目要求从名为"stu"的数据库表中选择特定学生记录,并计算学生的年龄,然后按学号升序排列。这题我写的方法有几个要点:
1.DISTINCT关键字是用来确保结果中不包含重复的行。
2.如何计算年龄?
YEAR('2020-03-01') - YEAR(birdate) as ‘年龄’这里通过当前日期('2020-03-01')减去出生日期("birdate"列)的年份差。
3.WHERE子句,用于筛选出符合特定条件的记录。注意,这里是筛选单行,如果筛选多行,要用having子句
4.ORDER BY sno ASC,按照学号升序排,若要用降序ORDER BY sno DESC
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。