考试时间下午14:00~16:00分 共计2个小时
周考的目的是检验我们本周学习效果的一种方式,除了讲师知道大家的学习情况外,也可以检验一下自身的学习情况,做到查漏补缺,切勿作弊!
一、SQL题(40分)
某网上商城数据库如下图所示
#创建用户表
create table user(
userid int primary key auto_increment,
username varchar(20) not null,
password varchar(18) not null,
address varchar(100),
phone varchar(11)
);
#创建分类表
create table category(
cid varchar(32) PRIMARY KEY ,
cname varchar(100) not null #分类名称
);
#商品表
CREATE TABLE products (
pid VARCHAR(32) PRIMARY KEY,
NAME VARCHAR(40),
price DOUBLE(7,2),
category_id VARCHAR(32),
CONSTRAINT fk_products_category_id FOREIGN KEY(category_id) REFERENCES category(cid)
);
#订单表
CREATE TABLE orders(
oid VARCHAR(32) PRIMARY KEY ,
totalprice DOUBLE(12,2),
userid INT ,
CONSTRAINT fk_orders_userId FOREIGN KEY(userid) REFERENCES USER(userid) #外键
);
#订单项表
create table orderitem(
oid varchar(32), #订单id
pid varchar(32), #商品id
num int , #购买商品数量
primary key (oid, pid), #主键
constraint fk_orderitem_oid foreign key(oid) references orders(oid),
constraint fk_orderitem_pid foreign key(pid) references products(pid)
);
#----------------------------------------------------------------
#初始化数据
#用户表添加数据
INSERT INTO USER(username,PASSWORD, address,phone)
VALUES( '张三','123','北京昌平沙河', '13812345678');
INSERT INTO USER(username, PASSWORD, address, phone)
VALUES('王五', '567','北京海淀', '13812345141');
INSERT INTO USER(username,PASSWORD,address,phone)
VALUES('赵六','123','北京朝阳','13812340987' );
INSERT INTO USER(username, PASSWORD, address, phone)
VALUES('田七', '123', '北京大兴', '13812345687');
#给商品表初始化数据
insert into products(pid,name,price,category_id)
values('p001','联想5000',5000, 'c001');
insert into products(pid,name,price,category_id)
values('P002', '海尔3000',3000,'c001' );
insert into products(pid,name,price,category_id)
values('p003', '雷神','5000',5000,'c001');
insert into products(pid,name,price,category_id)
values('p004','JACK JONES',800,'C002');
insert into products(pid,name,price,category_id)
values('p005','真维斯',200,'002');
insert into products(pid,name,price,category_id)
values('p006', '花花公子',1440, 'C002' );
insert into products(pid,name,price,category_id)
values('p007','劲霸',2000,'c002');
insert into products(pid,name,price,category_id)
values('p008','香奈儿',800,'c003'):
insert into products(pid,name,price,category.id)
values('p009','相宜本草',1200,'C003');
insert into products(pid,name,price,category_id)
values( 'p010','梅明子',1200,null);
#给分类表初始化数据
insert into category values( 'c001','电器');
insert into category values( 'c002','服饰');
insert into category values( 'c003','化妆品');
insert into category values( 'c004','书籍');
#添加订单
insert into orders values('o6100',18000.50,1);
insert into orders values('o6101',7200.35,1);
insert into orders values('o6102',600.00,2);
insert into orders values('o6103',1300.26,4);
#订单详情表
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脚本,模拟登录
请输入用户名: 【此处输入用户名】
请输入密码: 【此处输入密码,密文输入】
【如果用户名为root,密码为123456,则提示登录成功,否则登录失败】