考试时间下午14:00~16:00分 共计2个小时

  1. 周考的目的是检验我们本周学习效果的一种方式,除了讲师知道大家的学习情况外,也可以检验一下自身的学习情况,做到查漏补缺,切勿作弊!

一、SQL题(40分)

某网上商城数据库如下图所示
image.png

  1. #创建用户表
  2. create table user(
  3. userid int primary key auto_increment,
  4. username varchar(20) not null,
  5. password varchar(18) not null,
  6. address varchar(100),
  7. phone varchar(11)
  8. );
  9. #创建分类表
  10. create table category(
  11. cid varchar(32) PRIMARY KEY ,
  12. cname varchar(100) not null #分类名称
  13. );
  14. #商品表
  15. CREATE TABLE products (
  16. pid VARCHAR(32) PRIMARY KEY,
  17. NAME VARCHAR(40),
  18. price DOUBLE(7,2),
  19. category_id VARCHAR(32),
  20. CONSTRAINT fk_products_category_id FOREIGN KEY(category_id) REFERENCES category(cid)
  21. );
  22. #订单表
  23. CREATE TABLE orders(
  24. oid VARCHAR(32) PRIMARY KEY ,
  25. totalprice DOUBLE(12,2),
  26. userid INT ,
  27. CONSTRAINT fk_orders_userId FOREIGN KEY(userid) REFERENCES USER(userid) #外键
  28. );
  29. #订单项表
  30. create table orderitem(
  31. oid varchar(32), #订单id
  32. pid varchar(32), #商品id
  33. num int , #购买商品数量
  34. primary key (oid, pid), #主键
  35. constraint fk_orderitem_oid foreign key(oid) references orders(oid),
  36. constraint fk_orderitem_pid foreign key(pid) references products(pid)
  37. );
  38. #----------------------------------------------------------------
  39. #初始化数据
  40. #用户表添加数据
  41. INSERT INTO USER(username,PASSWORD, address,phone)
  42. VALUES( '张三','123','北京昌平沙河', '13812345678');
  43. INSERT INTO USER(username, PASSWORD, address, phone)
  44. VALUES('王五', '567','北京海淀', '13812345141');
  45. INSERT INTO USER(username,PASSWORD,address,phone)
  46. VALUES('赵六','123','北京朝阳','13812340987' );
  47. INSERT INTO USER(username, PASSWORD, address, phone)
  48. VALUES('田七', '123', '北京大兴', '13812345687');
  49. #给商品表初始化数据
  50. insert into products(pid,name,price,category_id)
  51. values('p001','联想5000',5000, 'c001');
  52. insert into products(pid,name,price,category_id)
  53. values('P002', '海尔3000',3000,'c001' );
  54. insert into products(pid,name,price,category_id)
  55. values('p003', '雷神','5000',5000,'c001');
  56. insert into products(pid,name,price,category_id)
  57. values('p004','JACK JONES',800,'C002');
  58. insert into products(pid,name,price,category_id)
  59. values('p005','真维斯',200,'002');
  60. insert into products(pid,name,price,category_id)
  61. values('p006', '花花公子',1440, 'C002' );
  62. insert into products(pid,name,price,category_id)
  63. values('p007','劲霸',2000,'c002');
  64. insert into products(pid,name,price,category_id)
  65. values('p008','香奈儿',800,'c003'):
  66. insert into products(pid,name,price,category.id)
  67. values('p009','相宜本草',1200,'C003');
  68. insert into products(pid,name,price,category_id)
  69. values( 'p010','梅明子',1200,null);
  70. #给分类表初始化数据
  71. insert into category values( 'c001','电器');
  72. insert into category values( 'c002','服饰');
  73. insert into category values( 'c003','化妆品');
  74. insert into category values( 'c004','书籍');
  75. #添加订单
  76. insert into orders values('o6100',18000.50,1);
  77. insert into orders values('o6101',7200.35,1);
  78. insert into orders values('o6102',600.00,2);
  79. insert into orders values('o6103',1300.26,4);
  80. #订单详情表
  81. insert into orderitem values('o6100','p001',1),('o6100','p002',1),('o6101','p003',1);

6.1 综合练习-【多表查询】

1>查询用户的订单,没有订单的用户不显示
2>查询所有用户的订单详情
3>查询所有订单的用户详情

6.2 综合练习2-【子查询】

1>查看用户为张三的订单详情
2>查询出订单的价格大于300的所有用户信息。
3>查询订单价格大于300的订单信息及相关用户的信息。

6.2 综合练习3-【分页查询】

1>查询所有订单信息,每页显示5条数据

二、SQL题目(30分)

有3 个表:【基础】
Student 学生表(学号,姓名,性别,年龄,组织部门)
id name sex age dept
Course 课程表(编号,课程名称)
id name
Sc 选课表(学号,课程编号,成绩)
stu_id sc_id score
表结构如下:
1)写一个SQL 语句,查询选修了’计算机原理’的学生学号和姓名
2)写一个SQL 语句,查询’周星驰’同学选修了的课程名字
3)写一个SQL 语句,查询选修了5 门课程的学生学号和姓名

三、Shell编程(30分)

1、编写Shell脚本,计算100以内的偶数和
2、编写Shell脚本,模拟登录

  1. 请输入用户名: 【此处输入用户名】
  2. 请输入密码: 【此处输入密码,密文输入】
  3. 【如果用户名为root,密码为123456,则提示登录成功,否则登录失败】