10-1 4-3 查询速度低于任何PC的便携式电脑
本题目要求编写SQL语句, 查询速度低于任何PC的便携式电脑。
提示:请使用SELECT语句作答。 表结构:
CREATE TABLE pc ( model CHAR(20) NOT NULL, --型号 speed DECIMAL(6,2), --速度 ram INT, --内存 hd DECIMAL(6,2), --硬盘容量 cd CHAR(4), --光驱 price INT, --价钱 PRIMARY KEY(model) ); CREATE TABLE laptop ( model CHAR(20) NOT NULL, --型号 speed DECIMAL(6,2), --速度 ram INT, --内存 hd DECIMAL(6,2), --硬盘容量 screen DECIMAL(6,2), --屏幕大小 price INT, --价钱 PRIMARY KEY(model) );
表样例
pc表: model speed ram hd cd price 1001 133.00 16 1.60 6X 1595 1002 120.00 16 1.60 6X 1399 1003 166.00 24 2.50 6X 1899 1004 166.00 32 2.50 8X 1999 1008 180.00 32 2.00 8X 3699 1009 200.00 32 2.50 8X 2599
laptop表: model speed ram hd screen price 2001 100.00 20 1.10 9.50 1999 2002 117.00 12 0.75 11.30 2499 2004 133.00 16 1.10 11.20 3499 输出样例: model 2001 2002
select model
from laptop
where speed <all(
select speed
from pc
)
10-2 没有被购买过的商品信息。
分数 10 作者 白彦辉 单位 赤峰学院 题干:
没有被购买过的商品信息。
提示:请使用SELECT语句作答。 表结构:
定义表结构的SQL语句如下:
CREATE TABLE good(
gid CHAR(4) PRIMARY KEY,
gname VARCHAR(40) NOT NULL,
price FLOAT(10,2),
stock INT
);
CREATE TABLE recorder(
id INT PRIMARY KEY AUTO_INCREMENT,
cid CHAR(4),
gid CHAR(4),
quantity INT NOT NULL,
sale_date DATETIME,
CONSTRAINT recorder_gid_fk FOREIGN KEY (gid) REFERENCES good(gid)
); 表样例
上述表结构对应的表样例:
good表:
good.png
recorder表:
recorder.png 输出样例:
输出样例:
答案:
select gid,gname,price,stock
from good
where gid not in(
select gid
from recorder
)
10-3 查询至少选修2门课程的女生姓名
本题目要求编写SQL语句, 检索出students表、sc表中至少选修2门课程的女生姓名。
提示:请使用join连接作答。 表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE students ( sno char(7) , sname char(8) NOT NULL, class char(10), ssex char(2), bday date , bplace char(10) , IDNum char(18) , sdept char(16), phone char(11), PRIMARY KEY (sno) ) ;
CREATE TABLE sc ( sno char(7) , cno char(7) , score decimal(4,1), point decimal(2,1), PRIMARY KEY (sno,cno) ) ;
表样例
请在这里给出上述表结构对应的表样例。例如
students表: sno sname class ssex bday bplace IDNum sdept phone 1311104 李嘉欣 13英语1 女 1994-05-28 山西太原 330204199405281056 人文学院 15900002211 1311105 苏有明 13英语1 男 1995-04-16 内蒙古包头 330204199504162036 人文学院 15900002222 1711101 赵薇 17物流1 女 1999-02-11 安徽合肥 330203199902110925 经管学院 15900001177 1711102 董洁 17物流1 女 1999-02-17 上海 330203199902170017 经管学院 15900001188
sc表: sno cno score point 1311104 0000011 53.0 0.0 1311104 0000027 80.0 1.0 1311105 0000027 84.0 1.0 1711101 0000052 71.0 2.0 输出样例:
请在这里给出输出样例。例如: sname 李嘉欣
select sname
from students join sc
on students.sno=sc.sno
where students.ssex='女'
group by sname
having count(*)>2;
10-5 查询没有选课的学生学号和姓名
分数 5 作者 sy 单位 宁波财经学院
本题目要求编写SQL语句, 检索出students表和sc表中没有选课的学生学号和姓名。
提示:请使用连接查询作答。 表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE students ( sno char(7) , sname char(8) NOT NULL, class char(10), ssex char(2), bday date , bplace char(10) , IDNum char(18) , sdept char(16), phone char(11), PRIMARY KEY (sno) ) ;
CREATE TABLE sc ( sno char(7) , cno char(7) , score decimal(4,1), point decimal(2,1), PRIMARY KEY (sno,cno) ) ;
表样例
请在这里给出上述表结构对应的表样例。例如
students表: sno sname class ssex bday bplace IDNum sdept phone 1311104 李嘉欣 13英语1 女 1994-05-28 山西太原 330204199405281056 人文学院 15900002211 1311105 苏有明 13英语1 男 1995-04-16 内蒙古包头 330204199504162036 人文学院 15900002222 1711101 赵薇 17物流1 女 1999-02-11 安徽合肥 330203199902110925 经管学院 15900001177 1711102 董洁 17物流1 女 1999-02-17 上海 330203199902170017 经管学院 15900001188
sc表: sno cno score point 1311104 0000011 53.0 0.0 1311104 0000027 80.0 1.0 1311105 0000027 84.0 1.0 1711101 0000052 71.0 2.0 输出样例:
请在这里给出输出样例。例如: sno sname 1711102 董洁
答案:
select sno,sname
from students
where not exists
(select *
from sc
where students.sno=sc.sno);
10-3 删除没有员工的仓库
分数 10 作者 浙大城院数据库课程组 单位 浙大城市学院
本题目要求编写SQL语句, 删除没有员工的仓库。 表结构:
CREATE TABLE warehouse ( Wno varchar(10), --仓库编号 City varchar(20), --所在城市 Size int(11), --面积 ); CREATE TABLE employee ( Eid varchar(10), --职工编号 EName varchar(30), --职工姓名 Wno varchar(10), --所在仓库 Salary int(11) --职工工资 );
表样例
warehouse表: Wno City Size A01 杭州 15000 A02 建德 5000 B01 宁波 1200 B02 奉化 7500 C01 温州 10000 C02 乐清 8000
employee表: Eid EName Wno Salary 0010 张三 A01 3600 0011 刘勇 A02 2700 0012 张立 B01 8500 0021 刘靖 C02 2500 输出样例: Wno City Size A01 杭州 15000 A02 建德 5000 B01 宁波 1200 C02 乐清 8000
delete
from warehouse
where not exists
(select Wno
from employee
where warehouse.Wno=employee.Wno);
10-2 给所有产品名中含’螺母’的订单的数量增加40%
分数 10 作者 浙大城院数据库课程组 单位 浙大城市学院
本题目要求编写SQL语句, 给所有产品名中含’螺母’的订单的数量增加40%。 表结构:
CREATE TABLE orders ( OrdNo int(11), --订单编号 Sid varchar(10), --供应商编号 Eid varchar(10), --职工编号 Pid varchar(20), --商品编号 Price decimal(10,2), --价格 QTY int(11), --订购数量 ordDate date --订单日期 ); CREATE TABLE product ( Pid varchar(20), --商品编号 PName varchar(50), --商品名称 Weight decimal(10, 3) --重量 );
表样例
orders表: OrdNo Sid Eid Pid Price QTY ordDate 1 S01 0011 P01 11 23 2022-02-13 2 S02 0012 P03 12 25 2022-02-14 3 S03 0012 P05 60 50 2022-02-14
product表: Pid PName Weight P01 M6螺栓 30 P02 M8螺栓 40 P03 M16螺栓 140 P04 螺帽 30 P05 螺母 45 P06 垫片 10 P07 铰链 70 输出样例:
orders表: OrdNo Sid Eid Pid Price QTY ordDate 1 S01 0011 P01 11 23 2022-02-13 2 S02 0012 P03 12 25 2022-02-14 3 S03 0012 P05 60 70 2022-02-14
update orders
set QTY=QTY*(1+0.4)
where Pid in(select Pid
from product
where PName like '%螺母%');
注意:此题要用到模糊查询。
10-4 创建视图,包含拥有属性值个数大于1的商品信息 分数 10 作者 冰冰 单位 广东东软学院
本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。 表结构:
CREATE TABLE sh_goods ( id INT PRIMARY KEY, --商品id category_id INT NOT NULL DEFAULT 0 , – 商品分类id name VARCHAR(120) NOT NULL, --商品名称 keyword VARCHAR(255) NOT NULL, – 关键词编号 content TEXT NOT NULL , --商品详情 price DECIMAL(10, 2) NOT NULL DEFAULT 0 , --价格 stock INT NOT NULL DEFAULT 0, – 库存 score DECIMAL(3, 2) NOT NULL DEFAULT 0 , – 用户评分 comment_count INT NOT NULL DEFAULT 0 – 评论数量 ) ;
CREATE TABLE sh_goods_attr_value ( id INT PRIMARY KEY ,-- 属性值id, goods_id INT NOT NULL DEFAULT 0 , --商品id attr_id INT NOT NULL DEFAULT 0 ,-- 属性id attr_value VARCHAR(80) NOT NULL --属性值 );
表样例
sh_goods表:
sh_goods表数据.PNG
sh_goods_attr_value表:
sh_goods_attr_value表数据.PNG 视图样例:
答案:
CREATE VIEW view_goods_2 AS
Select id,name
From sh_goods
Where id In (Select goods_id
From sh_goods_attr_value
Group By goods_id
Having Count(id)>1);
10-5 创建一个每种货物的销售数量的视图good_total,要求是在2010年04月01日到2010年7月31日之间销售的货品,字段包括(gid,total)。 分数 10 作者 白彦辉 单位 赤峰学院 题干:
创建一个每种货物的销售数量的视图good_total,要求是在2010年04月01日到2010年7月31日之间销售的货品,字段包括(gid,total)。 表结构:
定义表结构的SQL语句如下:
CREATE TABLE customer(
cid CHAR(4) PRIMARY KEY,
cname VARCHAR(20) NOT NULL,
sex CHAR(1) DEFAULT ‘女’,
phone CHAR(11) UNIQUE
);
CREATE TABLE good(
gid CHAR(4) PRIMARY KEY,
gname VARCHAR(40) NOT NULL,
price FLOAT(10,2),
stock INT
);
CREATE TABLE sale_recorder(
id INT PRIMARY KEY AUTO_INCREMENT,
cid CHAR(4),
gid CHAR(4),
quantity INT NOT NULL,
sale_date DATETIME,
CONSTRAINT salrecorder_cid_fk FOREIGN KEY (cid) REFERENCES customer(cid),
CONSTRAINT salrecorder_gid_fk FOREIGN KEY (gid) REFERENCES good(gid)
); 表样例
customer表:
customer.png
good表:
good.png
sale_recorder表:
sale_recorder.png 输出样例:
12-2.png
答案:
CREATE VIEW good_total AS
SELECT distinct gid,sum(quantity) as total
FROM sale_recorder
WHERE sale_date between'2010-04-01 00:00:00' AND '2010-07-31 00:00:00'
group by gid
|