任务描述
本关任务:查询股票交易表 total 的前三十条数据。
相关知识
在之前的实训中,我们已经了解了如何管理表结构和数据,本关主要讲解如何运行查询。
SELECT ... FROM 语句
SELECT 是 SQL 的影射算子。FROM 子句标识了从哪个表、视图或嵌套查询中选择查询记录。
对于一个给定的记录,SELECT 指定了要保存的列以及输出函数需要调用的一个或多个列。 例如,对于一个用户表:
表名: t_user
列名 | 类型 | 备注 |
---|---|---|
uid | int | 用户id |
uname | string | 用户名 |
passwd | string | 密码 |
sex | string | 性别 |
我们现在要查询所有的用户名:
select uname from t_user;
如果要查询多个列,那么列与列之间使用“,”即可。 例如查询所有的用户id和用户名:
select uid,uname from t_user;
如果要查询该表所有的信息,只需在将列名处替换为“*”即可。
select * from t_user;
limit
但是有时我们并不想要输出这个表的所有数据,而只是想要部分数据,例如前 10 条,该怎么办呢?
在 Hive 查询中要限制查询输出条数, 可以用 limit 关键词指定。
例如输出 t_user 表的前 10 条数据:
select * from t_user limit 10;
正则表达式
我们可以使用正则表达式来选择我们想要的列。 例如从 shop 表中查询所有以 price 作为前缀的列:
select `price.*` from shop;
编程要求
根据提示,在右侧编辑器 Begin-End 中补充代码,查询股票交易表 total 的前三十条数据。
表结构信息如下:
数据库:mydb 表名:total
col_name | data_type | comment |
---|---|---|
tradedate | string | 交易日期 |
tradetime | string | 交易时间 |
securityid | string | 股票ID |
bidpx1 | string | 买入价 |
bidsize1 | int | 买入量 |
offerpx1 | string | 卖出价 |
bidsize2 | int | 卖出量 |
测试说明
点击评测后,平台会对你编写的 HiveQL 语句进行查询,若与预期输出一致,则算通关。
代码如下
---------- Begin ----------
-- 使用数据库 mydb
-- 查询股票交易表的前30条数据
use mydb;
select * from total limit 30;
---------- End ----------