头歌Kingbase ES条件查询

第1关:比较大小

任务描述
本关任务:在 TESTDB 数据库中查询指定数据。

相关知识
在使用 SELECT 语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

单一条件查询语句如下:

SELECT <字段名1>,<字段名2>,…,<字段名n> FROM <表名> WHERE <字段名> 运算符 <值>;
运算符    描述
=    等于
<> 或 !=    不等于
>    大于
<    小于
>=    大于等于
<=    小于等于
BETWEEN AND    选取介于两个值之间的数据范围,相当于>=并且<=
编程要求
查询职称为副教授的教师的工号和姓名。

注意:查询结果列顺序为工号在前姓名在后,行顺序默认

teacher(教师表):

tno(工号)    tname(姓名)    sex(性别)    title(职称)    birthday(出生日期)
0014    李欣    男    教授    1969-07-25
0078    张云    女    副教授    1975-11-25
0118    王立    男    高级工程师    1985-04-28
0193    赵玲    女    讲师    1992-09-26
0213    杨梅    女    副教授    1986-06-07
0030    覃刚    男    副教授    1980-02-15
course(课程表):

cno(课程号)    cname(课程名)    credit(学分)    hours(学时)    examination(考核方式)
G001    线性代数    3    48    考试
R003    数据结构    3    48    考试
R009    离散数学    3    48    考试
S023    嵌入式系统与编程实验    1    32    考察
G012    大学物理    4    64    考试
class(班级表):

gno(班级号)    gname(班级名)    grade(年级)    dept(学院)    gnum(班级人数)
0211801    软件18级1班    18级    软件    37
0211903    软件19级3班    19级    软件    35
0131901    机械19级1班    19级    机械    37
teaching(教师授课表):

cno(课程号)    tno(工号)    gno(班级号)    term(开课学期)    classroom(教室)
G001    0078    0211903    1    A101
G001    0078    0131901    1    A101
R003    0118    0211801    2    S001
R009    0213    0211903    2    S002
S023    0193    0211801    1    S001
G012    0030    0131901    2    B003
测试说明
平台会对你编写的代码进行测试,结果正确即可通关。

开始你的任务吧,祝你成功!

---------- BEGIN ---------- 
SELECT tno,tname FROM teacher WHERE title = '副教授';

---------- END ---------- 

第2关:多重条件

任务描述
本关任务:在 TESTDB 数据库中查询指定数据。

相关知识
在使用 SELECT 语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

多重条件查询:

SELECT * FROM <表名> WHERE <字段名> 运算符 <值> AND <字段名> 运算符 <值>;
运算符    描述
=    等于
<> 或 !=    不等于
>    大于
<    小于
>=    大于等于
<=    小于等于
BETWEEN AND    选取介于两个值之间的数据范围,相当于>=并且<=
编程要求
查询1980年1月1日之后出生的女教师。

注意:查询结果行列皆为默认。

teacher(教师表):

tno(工号)    tname(姓名)    sex(性别)    title(职称)    birthday(出生日期)
0014    李欣    男    教授    1969-07-25
0078    张云    女    副教授    1975-11-25
0118    王立    男    高级工程师    1985-04-28
0193    赵玲    女    讲师    1992-09-26
0213    杨梅    女    副教授    1986-06-07
0030    覃刚    男    副教授    1980-02-15
course(课程表):

cno(课程号)    cname(课程名)    credit(学分)    hours(学时)    examination(考核方式)
G001    线性代数    3    48    考试
R003    数据结构    3    48    考试
R009    离散数学    3    48    考试
S023    嵌入式系统与编程实验    1    32    考察
G012    大学物理    4    64    考试
class(班级表):

gno(班级号)    gname(班级名)    grade(年级)    dept(学院)    gnum(班级人数)
0211801    软件18级1班    18级    软件    37
0211903    软件19级3班    19级    软件    35
0131901    机械19级1班    19级    机械    37
teaching(教师授课表):

cno(课程号)    tno(工号)    gno(班级号)    term(开课学期)    classroom(教室)
G001    0078    0211903    1    A101
G001    0078    0131901    1    A101
R003    0118    0211801    2    S001
R009    0213    0211903    2    S002
S023    0193    0211801    1    S001
G012    0030    0131901    2    B003
测试说明
平台会对你编写的代码进行测试,结果正确即可通关。

开始你的任务吧,祝你成功!

---------- BEGIN ---------- 
SELECT * FROM teacher WHERE birthday>'1980-1-1' AND sex='女';

---------- END ---------- 

第3关:确定范围

任务描述
本关任务:在 TESTDB 数据库中查询指定数据。

相关知识
在使用 SELECT 语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

确定范围条件查询:

SELECT * FROM <表名> WHERE <字段名> BETWEEN <值> AND <值>;
运算符    描述
=    等于
<> 或 !=    不等于
>    大于
<    小于
>=    大于等于
<=    小于等于
BETWEEN AND    选取介于两个值之间的数据范围,相当于>=并且<=
编程要求
查询 1970年 - 1980年 之间出生的教师。

注意:查询结果行列皆为默认。

teacher(教师表):

tno(工号)    tname(姓名)    sex(性别)    title(职称)    birthday(出生日期)
0014    李欣    男    教授    1969-07-25
0078    张云    女    副教授    1975-11-25
0118    王立    男    高级工程师    1985-04-28
0193    赵玲    女    讲师    1992-09-26
0213    杨梅    女    副教授    1986-06-07
0030    覃刚    男    副教授    1980-02-15
course(课程表):

cno(课程号)    cname(课程名)    credit(学分)    hours(学时)    examination(考核方式)
G001    线性代数    3    48    考试
R003    数据结构    3    48    考试
R009    离散数学    3    48    考试
S023    嵌入式系统与编程实验    1    32    考察
G012    大学物理    4    64    考试
class(班级表):

gno(班级号)    gname(班级名)    grade(年级)    dept(学院)    gnum(班级人数)
0211801    软件18级1班    18级    软件    37
0211903    软件19级3班    19级    软件    35
0131901    机械19级1班    19级    机械    37
teaching(教师授课表):

cno(课程号)    tno(工号)    gno(班级号)    term(开课学期)    classroom(教室)
G001    0078    0211903    1    A101
G001    0078    0131901    1    A101
R003    0118    0211801    2    S001
R009    0213    0211903    2    S002
S023    0193    0211801    1    S001
G012    0030    0131901    2    B003
测试说明
平台会对你编写的代码进行测试,结果正确即可通关。

开始你的任务吧,祝你成功!

---------- BEGIN ---------- 
SELECT * FROM teacher WHERE birthday BETWEEN 1970 AND 1981;

---------- END ---------- 

第4关:确定集合

任务描述
本关任务:在 TESTDB 数据库中查询指定数据。

相关知识
在使用 SELECT 语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

确定集合条件查询:

SELECT * FROM <表名> WHERE <字段名> IN (<值>,<值>);
运算符    描述
=    等于
<> 或 !=    不等于
>    大于
<    小于
>=    大于等于
<=    小于等于
BETWEEN AND    选取介于两个值之间的数据范围,相当于>=并且<=
编程要求
查询17级和19级的班级信息。

注意:查询结果行列皆为默认。

teacher(教师表):

tno(工号)    tname(姓名)    sex(性别)    title(职称)    birthday(出生日期)
0014    李欣    男    教授    1969-07-25
0078    张云    女    副教授    1975-11-25
0118    王立    男    高级工程师    1985-04-28
0193    赵玲    女    讲师    1992-09-26
0213    杨梅    女    副教授    1986-06-07
0030    覃刚    男    副教授    1980-02-15
course(课程表):

cno(课程号)    cname(课程名)    credit(学分)    hours(学时)    examination(考核方式)
G001    线性代数    3    48    考试
R003    数据结构    3    48    考试
R009    离散数学    3    48    考试
S023    嵌入式系统与编程实验    1    32    考察
G012    大学物理    4    64    考试
class(班级表):

gno(班级号)    gname(班级名)    grade(年级)    dept(学院)    gnum(班级人数)
0211801    软件18级1班    18级    软件    37
0211903    软件19级3班    19级    软件    35
0131901    机械19级1班    19级    机械    37
teaching(教师授课表):

cno(课程号)    tno(工号)    gno(班级号)    term(开课学期)    classroom(教室)
G001    0078    0211903    1    A101
G001    0078    0131901    1    A101
R003    0118    0211801    2    S001
R009    0213    0211903    2    S002
S023    0193    0211801    1    S001
G012    0030    0131901    2    B003
测试说明
平台会对你编写的代码进行测试,结果正确即可通关。

开始你的任务吧,祝你成功!

---------- BEGIN ---------- 
SELECT * FROM class WHERE grade IN ('17级','19级');

---------- END ---------- 

第5关:模糊查询

任务描述
本关任务:在 TESTDB 数据库中查询指定数据。

相关知识
在使用 SELECT 语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

模糊查询语句
一般模糊语句语法如下:

SELECT <字段> FROM <表> WHERE <某字段> Like <条件>;
其中关于条件,SQL 提供了四种匹配模式:

1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符。

SELECT * FROM <表> WHERE u_name LIKE '%三%';
将会把 u_name 为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。另外,如果需要找出 u_name 中既有“三”又有“猫”的记录,请使用 AND 条件:

SELECT * FROM <表> WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%';
若使用

SELECT * FROM <表> WHERE u_name LIKE '%三%猫%';
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2、_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

 SELECT * FROM <表> WHERE u_name LIKE '_三_';
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

SELECT * FROM <表> WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;

3、[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

SELECT * FROM <表> WHERE u_name LIKE '[张李王]三';
将找出“张三”、“李三”、“王三”(而不是“张李王三”);

如 [ ] 内有一系列字符(01234、abcde 之类的)则可略写为“0-4”、“a-e”

SELECT * FROM <表> WHERE u_name LIKE '老[1-9]';
将找出“老1”、“老2”、……、“老9”;

4、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

SELECT * FROM <表> WHERE u_name LIKE '[^张李王]三';
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等。

SELECT * FROM <表> WHERE u_name LIKE '老[^1-4]';
将排除“老1”到“老4”,寻找“老5”、“老6”、……

编程要求
查询姓杨的老师的工号、姓名和职称。

注意:查询结果列顺序为工号、姓名、职称,行顺序为默认。

teacher(教师表):

tno(工号)    tname(姓名)    sex(性别)    title(职称)    birthday(出生日期)
0014    李欣    男    教授    1969-07-25
0078    张云    女    副教授    1975-11-25
0118    王立    男    高级工程师    1985-04-28
0193    赵玲    女    讲师    1992-09-26
0213    杨梅    女    副教授    1986-06-07
0030    覃刚    男    副教授    1980-02-15
course(课程表):

cno(课程号)    cname(课程名)    credit(学分)    hours(学时)    examination(考核方式)
G001    线性代数    3    48    考试
R003    数据结构    3    48    考试
R009    离散数学    3    48    考试
S023    嵌入式系统与编程实验    1    32    考察
G012    大学物理    4    64    考试
class(班级表):

gno(班级号)    gname(班级名)    grade(年级)    dept(学院)    gnum(班级人数)
0211801    软件18级1班    18级    软件    37
0211903    软件19级3班    19级    软件    35
0131901    机械19级1班    19级    机械    37
teaching(教师授课表):

cno(课程号)    tno(工号)    gno(班级号)    term(开课学期)    classroom(教室)
G001    0078    0211903    1    A101
G001    0078    0131901    1    A101
R003    0118    0211801    2    S001
R009    0213    0211903    2    S002
S023    0193    0211801    1    S001
G012    0030    0131901    2    B003
测试说明
平台会对你编写的代码进行测试,结果正确即可通关。

开始你的任务吧,祝你成功!

---------- BEGIN ---------- 
SELECT tno,tname,title FROM teacher WHERE tname Like '杨_';

---------- END ---------- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值