1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| -- 现有图书管理数据库的三个数据模型如下: 图书(数据表名:BOOK)
-- 读者(数据表名:READER)
-- 借阅记录(数据表名:BORROW LOG)
CREATE TABLE db.book(book_id string, `SORT` string, book_name string, writer string, OUTPUT string, price decimal(10,2)); INSERT INTO TABLE db.book VALUES ('001','TP391','信息处理','author1','机械工业出版社','20'), ('002','TP392','数据库','author12','科学出版社','15'), ('003','TP393','计算机网络','author3','机械工业出版社','29'), ('004','TP399','微机原理','author4','科学出版社','39'), ('005','C931','管理信息系统','author5','机械工业出版社','40'), ('006','C932','运筹学','author6','科学出版社','55');
CREATE TABLE db.reader (reader_id string, company string, name string, sex string, grade string, addr string); INSERT INTO TABLE db.reader VALUES ('0001','阿里巴巴','jack','男','vp','addr1'), ('0002','百度','robin','男','vp','addr2'), ('0003','腾讯','tony','男','vp','addr3'), ('0004','京东','jasper','男','cfo','addr4'), ('0005','网易','zhangsan','女','ceo','addr5'), ('0006','搜狐','lisi','女','ceo','addr6');
CREATE TABLE db.borrow_log(reader_id string, book_id string, borrow_date string);
INSERT INTO TABLE db.borrow_log VALUES ('0001','002','2019-10-14'), ('0002','001','2019-10-13'), ('0003','005','2019-09-14'), ('0004','006','2019-08-15'), ('0005','003','2019-10-10'), ('0006','004','2019-17-13');
-- (1)创建图书管理库的图书、读者和借阅三个基本表的表结构。请写出建表语句。 -- (2)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。 -- (3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。 -- (4)查找价格介于10元和20元之间的图书种类(SORT)出版单位(OUTPUT)和单价(PRICE), -- -- 结果按出版单位 (OUTPUT)和单价(PRICE)升序排序。 -- (5)查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。 -- (6)求”科学出版社”图书的最高单价、最低单价、平均单价。 -- (7)找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。 -- (8)考虑到数据安全的需要,需定时将“借阅记录”中数据进行备份, -- -- 请使用一条SQL语句,在备份用户bak下创建 与“借阅记录”表结构完全一致的数据表BORROW_LOG_BAK. -- -- 井且将“借阅记录”中现有数据全部复制到 BORROW_L0G_ BAK中。 --(9)现在需要将原Oracle数据库中数据迁移至Hive仓库,请写出“图书”在Hive中的建表语句(Hive实现,提示:列 分隔符|; -- -- 数据表数据需要外部导入:分区分别以month_part、day_part 命名)
|