PTA数据库编程练习合集

10-1 查询重量在[40,65]之间的产品信息

本题目要求编写SQL语句,
检索出product表中所有符合40 <= Weight <= 65的记录。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE `product` (`Pid` varchar(20),   --商品编号`PName` varchar(50), --商品名称`Weight` decimal(10, 3)    --重量
);

表样例

product表:

PidPNameWeight
P01M6螺栓30
P02M8螺栓40
P03M16螺栓140
P04螺帽30
P05螺母45
P06垫片10
P07铰链70
P21螺钉3

输出样例:

PidPNameWeight
P02M8螺栓40
P05螺母45
select Pid,PName,Weight
from product
where 40<=Weight and Weight<= 65

 10-2 查询姓刘的员工信息

本题目要求编写SQL语句,
检索出employee表中姓刘的员工信息。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE `employee` (`Eid` varchar(10),   --职工编号`EName` varchar(30), --职工姓名`Wno` varchar(10),   --所在仓库`Salary` int(11)     --职工工资
);

表样例

employee表:

EidENameWnoSalary
0010张三A013600
0011刘勇A012700
0012张立A018500
0021刘靖A022500
0022王强A025600
0023李军5000
0031王林3500

输出样例:

EidENameWnoSalary
0011刘勇A012700
0021刘靖A022500
select Eid,EName,Wno,Salary
from employee
where Ename like '刘%'

 10-3 查询仓库号为'A01'的所有员工信息,并按照工资降序排列

本题目要求编写SQL语句,
检索出employee表中仓库号为’A01’的所有员工信息,并按照工资降序排列。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE `employee` (`Eid` varchar(10),   --职工编号`EName` varchar(30), --职工姓名`Wno` varchar(10),   --所在仓库`Salary` int(11)     --职工工资
);

表样例

employee表:

EidENameWnoSalary
0010张三A013600
0011刘勇A012700
0012张立A018500
0021刘靖A022500
0022王强A025600
0023李军5000
0031王林3500

输出样例:

EidENameWnoSalary
0012张立A018500
0010张三A013600
0011刘勇A012700

select Eid,EName,Wno,Salary
from employee 
where Wno = 'A01'
order by Salary desc

10-4 查询Product表中登记日期在2019年的商品信息

要求编写SQL语句,查询Product表中登记日期在2019年的商品信息,并按销售价格降序排列。

表结构:

CREATE TABLE Product
(product_id      CHAR(4)      NOT NULL, --商品编号product_name    VARCHAR(100) NOT NULL, --商品名称product_type    VARCHAR(32)  NOT NULL, --商品种类sale_price      INTEGER ,              --销售价格purchase_price  INTEGER ,              --进货价格regist_date     DATE ,                 --登记日期PRIMARY KEY (product_id)); 

表样例

Product

图1.png

输出样例:

Product

图2.png

select *
from Product
where year(regist_date) = 2019
order by sale_price desc

10-5 查询所在城市为‘上海’或‘杭州’的仓库编号

本题目要求编写SQL语句,
检索出warehouse表中``所在城市为‘上海’或‘杭州’的仓库编号```的记录。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE `warehouse` (`Wno` varchar(10),   --仓库编号`City` varchar(20),  --所在城市`Size` int(11),      --面积
);

表样例

warehouse表:

WnoCitySize
A01杭州15000
A02建德5000
B01宁波1200
B02奉化7500
C01温州10000
C02乐清8000
D01绍兴11000

输出样例:

Wno
A01

select Wno
from warehouse
where City = '杭州' or City ='上海'

10-6 查询销售过的产品编号

例如:本题目要求编写SQL语句,
检索出orders表中所有销售过的产品编号

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `orders` (`OrdNo` int(11),   --订单编号`Sid` varchar(10), --供应商编号`Eid` varchar(10), --职工编号`Pid` varchar(20), --商品编号`Price` decimal(10,2), --价格`QTY` int(11),     --订购数量`ordDate` date    --订单日期
);

表样例

orders表:

OrdNoSidEidPidPriceQTYordDate
1S010011P0111232022-02-13
2S020012P0112252022-02-14
3S030012P0360552022-02-14

输出样例:

请在这里给出输出样例。例如:

Pid
P01
P03

select distinct Pid
from orders
where QTY is not null;


10-7 查询每个供应商的信息及其供货的订单编号

本题目要求编写SQL语句,
查询每个供应商的信息及其供货的订单编号。

提示:请使用SELECT语句作答。

表结构:

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 `supplier` (`Sid` varchar(10),   --供应商编号`SName` varchar(50), --供应商名称`City` varchar(20)   --供应商地址
);

表样例

orders表:

OrdNoSidEidPidPriceQTYordDate
1S010011P0111232022-02-13
2S020012P0112252022-02-14
3S030012P0360552022-02-14

supplier表:

SidSNameCity
S01东风机械厂武汉
S02天鹰紧固件厂温州
S05长城机电杭州

输出样例:

b.SidSNameCity,OrdNo
S01东风机械厂武汉1
S02天鹰紧固件厂温州2
S02天鹰紧固件厂温州3

select 
orders.Sid,supplier.SName,supplier.City,orders.OrdNo
from orders
join supplier on orders.Sid = supplier.Sid

10-8 计算Product表中销售价格的最大值和进货价格的最小值

要求编写SQL语句,查询Product表中销售价格的最大值和进货价格的最小值。

表结构:

CREATE TABLE Product
(product_id      CHAR(4)      NOT NULL, --商品编号product_name    VARCHAR(100) NOT NULL, --商品名称product_type    VARCHAR(32)  NOT NULL, --商品种类sale_price      INTEGER ,              --销售价格purchase_price  INTEGER ,              --进货价格regist_date     DATE ,                 --登记日期PRIMARY KEY (product_id)); 

表样例:

Product

图1.png

输出样例:

Product

图2.png

select max(sale_price) as top_sale,min(purchase_price) as bottom_pur
from Product

10-9 查询每名职工的工号和姓名及所属的仓库编号和所在城市

本题目要求使用外连接来编写SQL语句,
查询每名职工的工号和姓名及所属的仓库编号和所在城市。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE `employee` (`Eid` varchar(10),   --职工编号`EName` varchar(30), --职工姓名`Wno` varchar(10),   --所在仓库`Salary` int(11)     --职工工资
);
CREATE TABLE `warehouse` (`Wno` varchar(10),   --仓库编号`City` varchar(20),  --所在城市`Size` int(11),      --面积
);

表样例

employee表:

EidENameWnoSalary
0010张三A013600
0011刘勇A012700
0012张立A018500
0021刘靖A022500
0022王强A025600
0023李军5000
0031王林3500

warehouse表:

WnoCitySize
A01杭州15000
A02建德5000
B01宁波1200
B02奉化7500
C01温州10000
C02乐清8000
D01绍兴11000

输出样例:

EidENameWnoCity
0010张三A01杭州
0011刘勇A01杭州
0012张立A01杭州
0021刘靖A02建德
0022王强A02建德
0023李军
0031王林

select employee.Eid,employee.EName,employee.Wno,warehouse.City
from employee
left join warehouse on employee.Wno = warehouse.Wno

10-10 查询所有产品名中包含’螺母’的产品种类数

本题目要求编写SQL语句,
检索出product表中所有产品名中包含’螺母’的产品种类数。

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `product` (`Pid` varchar(20),   --商品编号`PName` varchar(50), --商品名称`Weight` decimal(10, 3)    --重量
);

表样例

product表:

PidPNameWeight
P01M6螺栓30
P02M8螺栓40
P03M16螺栓140
P04螺帽30
P05螺母45
P06垫片10
P07铰链70
P21螺钉3

输出样例:

请在这里给出输出样例。例如:

count(*)
1

select   count(*)
from product
where PName like '%螺母%'

10-11 将学号为“1911203”的学生的联系电话改为“590987”

本题目要求编写SQL语句,
students表中,将学号为“1911203”的学生的联系电话改为“590987”。

提示:请使用UPDATE语句作答。

表结构:

请在这里写定义表结构的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)
) ;

表样例

请在这里给出上述表结构对应的表样例。例如

students表:

snosnameclassssexbdaybplaceIDNumsdeptphone
1311104李嘉欣13英语11994-05-28山西太原330204199405281056人文学院15900002211
1311105苏有明13英语11995-04-16内蒙古包头330204199504162036人文学院15900002222
1711101赵薇17物流11999-02-11安徽合肥330203199902110925经管学院15900001177
1911201陈坤19信管21990-07-19山东烟台330204199007199604信息学院15911113388
1911203张三19物流11999-02-17上海330203199902170017经管学院15900001188

输出样例:

请在这里给出输出样例。例如:

students表:

snosnameclassssexbdaybplaceIDNumsdeptphone
1311104李嘉欣13英语11994-05-28山西太原330204199405281056人文学院15900002211
1311105苏有明13英语11995-04-16内蒙古包头330204199504162036人文学院15900002222
1711101赵薇17物流11999-02-11安徽合肥330203199902110925经管学院15900001177
1911201陈坤19信管21990-07-19山东烟台330204199007199604信息学院15911113388
1911203张三19物流11999-02-17上海330203199902170017经管学院590987

update students
set phone ='590987'
where sno = '1911203'

10-12 把选修了“平板撑”课程而成绩不及格的学生的成绩全改为空值(NULL)

本题目要求编写SQL语句,
在``sc```表中,把选修了“平板撑”课程而成绩不及格的学生的成绩全改为空值(NULL)。

提示:请使用UPDATE语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE sc (sno char(7) ,cno char(7) ,score decimal(4,1),point decimal(2,1),PRIMARY KEY (sno,cno)
) ;CREATE TABLE course (cno char(7) ,cname varchar(20) NOT NULL,cpno char(7),ccredit int NOT NULL,PRIMARY KEY (cno)
) ;

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

snocnoscorepoint
1311104000001153.00.0
1311104000002780.01.0
1311105000002784.01.0
1711101000005271.02.0
1711101000001151.00.0

course表:

cnocnamecpnoccredit
0000001数据库OCP考证NULL4
0000002C语言基础00000279
0000003Linux操作系统00000135
0000004C#程序设计00000026
0000011平板撑NULL2

输出样例:

请在这里给出输出样例。例如:

sc表:

snocnoscorepoint
1311104000001153.00.0
1311104000002780.01.0
1311105000002784.01.0
1711101000005271.02.0
17111010000011NULL0.0
update sc
set score = null
where cno in 
(select cnofrom coursewhere cname = '平板撑'
) and score<60

 10-13 80.理学院(CS)新开一门课程“数学建模”,课程编号20, 学分4,学时72,选修课程,最多选课人数为50

本题目要求编写SQL语句,理学院(CS)新开一门课程“数学建模”,无先行课,课程编号20, 学分4,学时72,选修课程,最多选课人数为50。

现有教务管理系统的关系描述如下:
  • 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
  • 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
  • 每名学生属于一个班级,可以选修多门课程。
  • 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
  • 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
    1.课程表:course
    表结构

    course-1.png

    表数据
    insert course
    values ('20',NULL,'CS','数学建模','4','72','选修','50')

    course-2.png

10-14 添加一条学生记录

本题目要求编写 Insert语句,在stu表中添加一条学生记录:

学号:S012,姓名:周强,性别:1,其它属性为NULL.

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

输出样例:

插入一条学生记录后,stu表如下:

1.JPG

insert stu
values('S012','周强' , 1,null,null,null)

 10-15 修改女生成绩

本题目要求编写UPDATE语句,
把所有低于75分的女生成绩提高5%;

表结构:

请在这里写定义表结构的SQL语句。例如:


CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
)

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

sc表:

sc.JPG

输出样例:

例如:
修改女生成绩后的sc表如下:

u2b.JPG

update sc
set grade = grade * 1.05
where sno in
(select snofrom stuwhere sex = 0
) and grade<75;

 10-16 删除学生所有信息

本题目要求编写DELETE语句,
删除学生姓名为'周强'的所有数据信息。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu1.JPG

sc表:

sc1.JPG

输出样例:

删除学生周强的所有数据信息后:

stu表:

stu2.JPG

sc表:

sc2.JPG

delete
from sc
where sno in
(select snofrom stuwhere sname='周强'
);
delete 
from stu
where sname = '周强'

 10-17 将student表中的数计学院的学生信息插入到stu表中。

题干:

将student表中的数计学院的学生信息插入到stu表中。

提示:请使用INSERT语句作答,stu数据表已存在,结构同student一样。

表结构:

定义表结构的SQL语句如下:

CREATE TABLE student (

sno varchar(6) NOT NULL ,

sname varchar(10) ,

sex char(2) ,

nation char(2) ,

pnum char(18) ,

birth date ,

phone char(11) ,

dept varchar(20) ,

PRIMARY KEY (sno)

) ;

表样例

上述表结构对应的表样例:

student表:

student.png

输出样例:

输出样例:

stu表:

3-3.png

insert stu
select *
from student
where dept = '数计学院'

10-18 删除没有销售过的产品

本题目要求编写SQL语句,
删除没有销售过的产品。

表结构:

CREATE TABLE `product` (`Pid` varchar(20),   --商品编号`PName` varchar(50), --商品名称`Weight` decimal(10, 3)    --重量
);
CREATE TABLE `orders` (`OrdNo` int(11),   --订单编号`Sid` varchar(10), --供应商编号`Eid` varchar(10), --职工编号`Pid` varchar(20), --商品编号`Price` decimal(10,2), --价格`QTY` int(11),     --订购数量`ordDate` date    --订单日期
);

表样例

product表:

PidPNameWeight
P01M6螺栓30
P02M8螺栓40
P03M16螺栓140
P04螺帽30
P05螺母45
P06垫片10
P07铰链70

orders表:

OrdNoSidEidPidPriceQTYordDate
1S010011P0111232022-02-13
2S020012P0512252022-02-14
3S030012P0360552022-02-14

输出样例:

PidPNameWeight
P01M6螺栓30
P03M16螺栓140
P05螺母45
delete product
from product
left join orders on orders.Pid = product.Pid
where orders.QTY is null

10-19 查询学生表中的女生信息

本题目要求编写SQL语句,
检索出 stu 表中所有的女生记录。注意:sex为1时表示 男生,sex为0时表示女生。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

输出样例:

请在这里给出输出样例。例如:

l23.JPG

select sno as 学号,sname as 姓名 
from stu
where sex=0

10-20 查询年龄18-20之间的学生信息

本题目要求编写SQL语句,
检索出 stu表中年龄在18-20之间的学生记录。

注意: 计算年龄时以年计算,不考虑出生月份。假定当前日期为‘2020-03-01'。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

输出样例:

请在这里给出输出样例。例如:

l25.JPG

select sno as 学号, sname as 姓名,sex as 性别, mno as 专业,2020-year(birdate) as 年龄,memo as 备注
from stu
where 18<=2020-year(birdate) and 2020-year(birdate)<=20

 10-21 查询姓‘李’的学生记录

本题目要求编写SQL语句,
检索出stu表中所有姓‘李’的学生记录。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

输出样例:

请在这里给出输出样例。例如:

l26.JPG

select sno as 学号,sname as 姓名,sex as 性别,mno as 专业,birdate as 出生日期,memo as 备注
from stu
where sname like '李%'

 10-22 查询未登记成绩的学生

本题目要求编写SQL语句,
检索出sc表中‘C001’课程未登记成绩的学生学号

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `sc` (`sno` char(4) NOT NULL,  -- 学号`cno` char(4) NOT NULL,  -- 课程号`grade` decimal(6,1) DEFAULT NULL,  -- 成绩 PRIMARY KEY (`sno`,`cno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l211.JPG

select sno 
from sc
where grade is null

10-23 查询选修‘C语言’课程的学生

本题目要求编写SQL语句,
检索出所有选修'C语言'课程的学生成绩记录,输出结果集按照成绩降序排序。

分别尝试用以下几种方式实现。
1)采用连接查询
2)采用嵌套查询
3)采用EXIST查询

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);
CREATE TABLE `cou` (`cno` char(4) NOT NULL,`cname` varchar(30) NOT NULL,`credit` smallint(6) DEFAULT NULL,`ptime` char(5) DEFAULT NULL,`teacher` char(10) DEFAULT NULL,PRIMARY KEY (`cno`)
) ;
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `cou` (`CNO`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

cou表:

cou.JPG

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l212.JPG

select stu.sname as 姓名, sc.grade as 成绩
from stujoin sc on stu.sno =sc.snojoin cou on cou.cno = sc.cno
where cou.cname='C语言'
order by sc.grade desc

10-24 查询同专业的学生

本题目要求编写SQL语句,
检索Student表中与‘张三’在同一个专业的学生记录。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,  -- 学号`sname` char(8) NOT NULL,  -- 姓名`sex` tinyint(1) DEFAULT NULL,  -- 性别`mno` char(2) DEFAULT NULL,  -- 专业号`birdate` datetime DEFAULT NULL,  -- 出生日期`memo` text,  -- 备注PRIMARY KEY (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

输出样例:

请在这里给出输出样例。例如:

l215.JPG

select sno as 学号,sname as 姓名
from stu
where mno in 
(select mnofrom stuwhere sname = '张三'
) and sname <>'张三'

 10-25 查询平均分高于80分的学生

本题目要求编写SQL语句,
查询选修课程成绩的平均分高于80分的学生姓名。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l221.JPG

select sname 
from stu
join sc on stu.sno = sc.sno 
group by sc.sno
having avg(sc.grade)>80

 10-26 查询所有不姓刘的教师姓名

题目描述:本题目要求编写SQL语句,
查询所有不姓刘的教师姓名。

提示:请使用SELECT语句作答。

表结构:

teacher表结构:

create table teacher(tno char(15) primary key,tname varchar(10) not null,gender char(2),deptname varchar(50) ,  -- 所属系部title varchar(20)       -- 职称
);

表样例

teacher表:

image.png

输出样例:

请在这里给出输出样例。例如:

image.png

select tname 
from teacher
where tname  not like   '刘%' 

10-27 查询选修某两门课程的学生(MSSQL)

本题目要求编写SQL语句,
检索出 sc表中至少选修了’C001’与’C002’课程的学生学号。

提示:MSSQLServer 评测SQL语句。

表结构:

请在这里写定义表结构的SQL语句。例如:

-- 学生选课成绩表
CREATE TABLE  sc  (  sno  char(4) NOT NULL,  -- 学生学号cno  char(4) NOT NULL,  -- 选修课程号grade  decimal(4,1) DEFAULT NULL,PRIMARY KEY ( sno , cno )
)

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l217.JPG

select sno as 学号
from sc
where cno in('C001','C002')
group by sno
having count(cno)>=2

 10-28 查询比“网络工程”专业所有学生年龄都小的学生姓名

本题目要求编写SQL语句,
查询比“网络工程”专业所有学生年龄都小的学生姓名。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`),KEY `fk_stu_mno` (`mno`),CONSTRAINT `fk_stu_mno` FOREIGN KEY (`mno`) REFERENCES `major` (`mno`)
);
CREATE TABLE `major` (`mno` char(2) NOT NULL,`mname` varchar(20) NOT NULL,PRIMARY KEY (`mno`)
)

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

major表:

major.JPG

输出样例:

请在这里给出输出样例。例如:

midt01.JPG

select sname 
from stu
where birdate>
(select max(birdate)from stuwhere mno =(select mnofrom majorwhere mname ='网络工程'))

10-29 查询成绩最高的前三名同学

本题目要求编写SQL语句,
查询‘C语言’课程成绩最高的前三名同学。

提示:使用"limit n"语句实现 "top n" 。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `stu` (`sno` char(4) NOT NULL,`sname` char(8) NOT NULL,`sex` tinyint(1) DEFAULT NULL,`mno` char(2) DEFAULT NULL,`birdate` datetime DEFAULT NULL,`memo` text,PRIMARY KEY (`sno`)
);
CREATE TABLE `cou` (`cno` char(4) NOT NULL,`cname` varchar(30) NOT NULL,`credit` smallint(6) DEFAULT NULL,`ptime` char(5) DEFAULT NULL,`teacher` char(10) DEFAULT NULL,PRIMARY KEY (`cno`)
);
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `cou` (`CNO`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

stu表:

stu.JPG

cou表:

cou.JPG

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l223.JPG

select stu.sname as 姓名,sc.grade as 成绩
from stu
join sc on sc.sno=stu.sno
join cou on cou.cno = sc.cno
where cname = 'C语言' 
order by sc.grade desc
limit 3

10-30 查询S001学生选修而S003学生未选修的课程

本题目要求编写SQL语句,
检索出 sc表中学号为S001的学生选修的而S003学号学生未选修的课程号。

提示:MySQL不允许使用 except语句。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `sc` (`sno` char(4) NOT NULL,  -- 学号`cno` char(4) NOT NULL,  -- 课程号`grade` decimal(6,1) DEFAULT NULL,  -- 成绩PRIMARY KEY (`sno`,`cno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l218.JPG

select cno as 课程号
from sc
where sno='S001' and cno not in
(select cnofrom scwhere sno='S003'
)

 10-31 查询各专业学生的平均成绩

本题目要求编写SQL语句,
统计各专业的学生选课的平均成绩,如果某专业尚未有任何学生选修课程或成绩为空时,平均分计为0。输出结果集按照major表中的mno升序排序。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE `major` (`mno` char(2) NOT NULL,`mname` varchar(20) NOT NULL,PRIMARY KEY (`mno`)
);
CREATE TABLE `stu` (`sno` char(4) NOT NULL,  -- 学号`sname` char(8) NOT NULL,  -- 姓名`sex` tinyint(1) DEFAULT NULL,  -- 性别`mno` char(2) DEFAULT NULL,  -- 专业号`birdate` datetime DEFAULT NULL,  -- 出生日期`memo` text,  --  备注PRIMARY KEY (`sno`),CONSTRAINT `fk_stu_mno` FOREIGN KEY (`mno`) REFERENCES `major` (`mno`)
);
CREATE TABLE `sc` (`sno` char(4) NOT NULL,`cno` char(4) NOT NULL,`grade` decimal(6,1) DEFAULT NULL,PRIMARY KEY (`sno`,`cno`),CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);

表样例

请在这里给出上述表结构对应的表样例。例如

major表:

major.JPG

stu表:

stu.JPG

sc表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l29B.JPG

select mname 专业,ifnull(avg(grade),0)平均成绩
from major left outer join(
select mno,grade from stu,sc 
where stu.sno=sc.sno)as a on major.mno=a.mno
group by major.mno
order by major.mno;

10-32 创建视图计算学生课程平均分

现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。

在每一学年,学生处需要统计每位学生的学习情况,以便进行奖学金评定。请你设计一个视图V_average_grade,统计数据库中课程平均分在80以上的学生。

提示:请使用CREATE VIEW语句作答,并请注意数据表名、列名大小写需与表结构定义一致

表结构:

学生表(Student)、课程表(Course)和选修表(SC)结构如下:

CREATE TABLE `Student` (`Sno` varchar(20) NOT NULL,`Sname` varchar(10) DEFAULT NULL,`Ssex` varchar(2) DEFAULT NULL,`Sage` int(3) DEFAULT NULL,`Sdept` varchar(10) DEFAULT NULL,PRIMARY KEY (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `Course` (`Cno` varchar(10) NOT NULL,`Cname` varchar(20) DEFAULT NULL,`Cpno` varchar(10) DEFAULT NULL,`Ccredit` int(3) DEFAULT NULL,PRIMARY KEY (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `SC` (`Sno` varchar(20) NOT NULL,`Cno` varchar(10) NOT NULL,`Grade` int(3) DEFAULT NULL,PRIMARY KEY (`Sno`,`Cno`),KEY `Cno` (`Cno`),CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`),CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表样例

Student表:

Student.PNG

Course表:

Course.PNG

SC表:

SC.PNG

输出样例:

视图V_average_grade输出:

create view V_average_grade
as 
select Student.Sdept ,SC.Sno,Student.Sname,avg(SC.Grade) Average_grade 
from Studentjoin SC on SC.Sno=Student.Snogroup by Student.Sdept,SC.Sno,Student.Sname
having avg(SC.Grade)>80

 10-33 创建视图查找不及格学生

现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。

每学期末,教务处要安排课程补考或者重修,因此需要统计本学期课程考试不合格的学生、课程、成绩。假设选修表中课程成绩小于60的同学都需要补考。请你设计一个视图V_FailedCourseStudent,统计数据库中课程成绩小于60的学生。

提示:请使用CREATE VIEW语句作答,并请注意数据表名、列名大小写。

表结构:

学生表(Student)、课程表(Course)和选修表(SC)结构如下:

CREATE TABLE `Student` (`Sno` varchar(20) NOT NULL,`Sname` varchar(10) DEFAULT NULL,`Ssex` varchar(2) DEFAULT NULL,`Sage` int(3) DEFAULT NULL,`Sdept` varchar(10) DEFAULT NULL,PRIMARY KEY (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `Course` (`Cno` varchar(10) NOT NULL,`Cname` varchar(20) DEFAULT NULL,`Cpno` varchar(10) DEFAULT NULL,`Ccredit` int(3) DEFAULT NULL,PRIMARY KEY (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `SC` (`Sno` varchar(20) NOT NULL,`Cno` varchar(10) NOT NULL,`Grade` int(3) DEFAULT NULL,PRIMARY KEY (`Sno`,`Cno`),KEY `Cno` (`Cno`),CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`),CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表样例

Student表:

Student2.png

Course表:

Course2.png

SC表:

SC.PNG

输出样例:

视图V_FailedCourseStudent输出:

QQ截图20220420145858.jpg

create view V_FailedCourseStudent
as 
select Student.Sdept,SC.Sno,Student.Sname,Course.Cname, SC.Grade
from Student
join SC on Student.Sno=SC.Sno
join Course on Course.Cno = SC.Cno
where Grade<60;

 10-34 创建分组统计视图。

创建每个专业学生修课信息的视图PerView,包括每个专业的专业名称、修课的学生人数、平均成绩。

表结构:

create table Student(sno char(8)  primary key,sname varchar(10) not null,gender char(2) check(gender='男' or gender='女'),birthdate  date,major varchar(20)  default '软件工程');create table SC(  scid  int auto_increment  primary key,sno char(8)   references Student(sno),cno char(10)  references Course(cno),tno char(15)  references Teacher(tno),grade int check(grade>=0 and grade<=100),gpoint  decimal(2,1),   memo  text(100)  );

表样例

Student表:

snosnamegenderbirthdatemajor
21012101李勇2005-10-20计算机科学
21012102刘晨2006-5-5计算机科学
21012103王晓敏2005-10-6计算机科学
21021101李佳睿2006-3-30软件工程
21021102吴宾2005-9-21软件工程
21021103张海2005-10-20软件工程
21031101钱晓萍2006-6-1网络工程
21031102王大力2005-11-15网络工程
21041101于洋2006-3-15数据科学
21041102郭霖2006-3-2数据科学

SC表:

scidsnocnotnogradegpointmemo
null21012101c01t200306m1213290nullnull
null21012101c02t200703m1221886nullnull
null21012101c03t200703m12218nullnull缺考
null21012102c02t200703m1221878nullnull
null21012102c03t200703m1221866nullnull
null21021102c01t200306m1213282nullnull
null21021102c02t200608f1220575nullnull
null21021102c03t200306m12132nullnull缓考
null21021102c05t201803f1240550nullnull
null21021103c02t200703m1221868nullnull
null21021103c04t201208m1230892nullnull
null21031101c01t200306m1213280nullnull
null21031101c02t200608f1220595nullnull
null21041102c02t200608f1220556nullnull
null21041102c05t201803f1240588nullnull

输出样例:

PerView视图:

图片.png

create view PerView as 
selectStudent.major as 专业名,count(distinct Student.sno) as 修课人数,avg(SC.grade) as 平均成绩
from Student
join SC on SC.sno=Student.sno
where SC.grade is not null
group by Student.major

 10-35 从视图PerView中查询数据。

从上题中创建的视图PerView中查询平均成绩超过75分的专业有哪些。

PerView视图结构:

 Create view PerView(专业名, 修课人数, 平均成绩)
AS Select major, count(distinct sc.sno), avg(grade) from student join sc on student.sno=sc.sno group by major;

PerView视图数据样例

PerView视图:

专业名修课人数平均成绩
数据科学172.0
网络工程187.5
计算机科学280.0
软件工程273.4

输出样例:

专业名平均成绩
网络工程87.5
计算机科学80.0
select 专业名,平均成绩
from PerView
where 平均成绩>75 

10-36 创建带表达式的视图StuView

已知学生表Student,创建学生信息的视图StuView,包括学生学号、姓名和年龄,在视图中的列名分别为No,Name和Age。

表结构:

create table  Student(
sno char(8)  primary key,
sname varchar(10) not null,
gender char(2) check(gender='男' or gender='女'),
birthdate  date,
major varchar(20)  default '软件工程');

表样例

Student表:

image.png

输出样例:

注意:年龄字段会随年份不同而变化,这里只是针对当前时间点得到的情况

image.png

create view StuView as 
select sno as No,sname as Name,year(getdate())-year(birthdate) as Age
from Student

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb开发7

前后端混合开发 沟通成本高 分工不明确 不便管理 不便维护扩展 前后端分离开发 前端--接口--后端 需求分析--接口定义--前后端并行开发--测试--前后端连调测试 前端开发 模块化 JS、CSS 组件化 UI结构、样式、行为 规范化 目录结构、编码、接口 自动化 构建、部署、…

Git_IDEA集成GitHub

Git_IDEA集成GitHub 设置 GitHub 账号 分享工程到 GitHub push 推送本地库到远程库 pull 拉取远程库到本地库 clone 克隆远程库到本地 设置 GitHub 账号 去 GitHub 账户上设置 token 因为网络原因用账号密码可能登不上&#xff0c;所以选择用口令。 分享工程到 GitHub…

网络安全领域推荐证书介绍及备考指南

在网络安全领域&#xff0c;拥有专业认证不仅可以证明个人的专业能力&#xff0c;还能帮助在实际工作中应用先进的技术和知识。以下是几种热门的网络安全证书介绍及备考指南。 1. OSCP (Offensive Security Certified Professional) 证书简介 OSCP是针对渗透测试领域的入门级…

Matlab 疲劳驾驶检测

课题介绍 该课题为基于眼部和嘴部的疲劳驾驶检测。带有一个人机交互界面GUI&#xff0c;通过输入视频&#xff0c;分帧&#xff0c;定位眼睛和嘴巴&#xff0c;通过眼睛和嘴巴的张合度&#xff0c;来判别是否疲劳。 二、操作步骤 第一步&#xff1a;最好电脑安装的是MATLAB …

Jmeter 实战 JDBC配置

​ JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是一种用于执行SQL语句的Java API。通过这个API&#xff0c;可以直接连接并执行SQL脚本&#xff0c;与数据库进行交互。 使用JMeter压力测试时&#xff0c;操作数据库的场景 在使用JMeter进行接口压力测试时…

全栈面试题】模块3-9】JavaSE高级 -- Object类、 GC、反射、Socket

目录 面试题3.62 JAVA中Object类中有哪些常用方法&#xff1f; 面试题3.63 什么是深拷贝和浅拷贝 面试题3.64 GC是什么? 为什么要有GC? 面试题3.65 JVM垃圾回收机制和常见算法 面试题3.66 简单的介绍⼀下强引用&#xff0c;软引用&#xff0c;弱引用&#xff0c;虚引用 …

基于SSM消防物资存储系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;仓库管理&#xff0c;物资入库管理&#xff0c;仓位管理&#xff0c;物资详情管理&#xff0c;报警通知管理&#xff0c;安全检查提醒管理 用户账号功能包括&#xff1a;系统首页…

【数据分享】全国能源-电力平衡表(2000-2020年)

数据介绍 一级标题指标名称单位能源电力可供量亿千瓦小时能源电力生产量亿千瓦小时能源水电生产电力量亿千瓦小时能源火电生产电力量亿千瓦小时能源核电生产电力量亿千瓦小时能源风电生产电力量亿千瓦小时能源电力进口量亿千瓦小时能源电力出口量亿千瓦小时能源电力能源消费总量…

从零到一:如何使用直播美颜SDK开发视频美颜平台

今天&#xff0c;小编将为大家详细讲解如何从零开始&#xff0c;利用直播美颜SDK进行开发视频美颜平台。 一、了解直播美颜SDK 选择合适的SDK是开发视频美颜平台的第一步&#xff0c;市场上有多种SDK可供选择。选择时应考虑SDK的功能、性能、稳定性以及开发者社区的支持。 二…

[实时计算flink]本地运行和调试包含连接器的作业

本文为您介绍如何在开发者本地环境中运行和调试包含阿里云实时计算Flink版连接器的作业&#xff0c;以便快速验证代码的正确性&#xff0c;快速定位和解决问题&#xff0c;并节省云上成本。 背景信息 当您在IntelliJ IDEA中运行和调试Flink作业&#xff0c;如果其包含了阿里云…

Psychophysiology:脑-心交互如何影响个体的情绪体验?

摘要 情绪的主观体验与对身体(例如心脏)活动变化的情境感知和评估相关。情绪唤醒增加与高频心率变异性(HF-HRV)降低、EEG顶枕区α功率降低以及心跳诱发电位(HEP)振幅较高有关。本研究使用沉浸式虚拟现实(VR)技术来研究与情绪唤醒相关的脑心相互作用&#xff0c;以实现自然而可…

Linux中如何理解一切皆文件

根据之前的学习我们会有一些少许的疑惑&#xff0c;我们的stdin &#xff0c;stdout&#xff0c;stderr访问的是键盘显示器&#xff0c;然而键盘显示器等他们都有一个共同的特点就是他们都是外设&#xff0c;那么这些外设是怎么被看成是文件的呢&#xff1f; 看图可以知道硬件的…

干货分享篇-那些你必须知道的CE认证

CE认证&#xff0c;为各国产品在欧洲市场进行贸易提供了统一的技术规范&#xff0c;简化了贸易程序。任何国家的产品要进入欧盟、欧洲自由贸易区必须进行CE认证&#xff0c;在产品上加贴CE标志。因此CE认证是产品进入欧盟及欧洲贸易自由区国家市场的通行证。 一、申请CE认证的必…

记一次有趣的发现-绕过堡垒机访问限制

前言 在某一次对设备运维管理的时候&#xff0c;发现的某安全大厂堡垒机设备存在绕过访问限制的问题&#xff0c;可以直接以低权限用户访问多个受控系统&#xff0c;此次发现是纯粹好奇心驱使下做的一个小测试压根没用任何工具。因为涉及到了很多设备和个人信息&#xff0c;所以…

云轴科技ZStack信创云平台助力上海科技大学实现信创业务落地

编者按 上海科技大学基于“兆芯CPU芯片 云轴科技 ZStack信创云平台 麒麟V10操作系统”构建了全栈信创的校级云平台——上科大Ecloud平台&#xff0c;该平台支撑了上海科技大学的办公业务、教学业务、核心生产业务等业务系统&#xff0c;实现了从VMware平台向国产化软硬件平台的…

使用Docker启动的Redis容器使用的配置文件路径等问题以及Python使用clickhouse_driver操作clickhouse数据库

一、使用Docker启动的Redis容器使用的配置文件路径等问题 1.docker启动的redis使用的配置文件路径是什么 使用docker搭建redis服务&#xff0c;本身redis启动的时候可以指定配置文件的&#xff0c; redis-server /指定配置文件路径/redis.conf。 但手上也没有一个redis配置文件…

Docker 安装Postgres和PostGIS,并制作镜像

1. 查找postgres和postgis现有的镜像和版本号 镜像搜索网站&#xff1a;https://docker.aityp.com/ 测试使用的是postgres:15.4 和 postgis:15-3.4 2、镜像拉取 docker pull postgres:15.4docker pull postgis/postgis:15-3.4镜像下载完成&#xff0c;docker images 查看如…

MATLAB和Python电车电池制造性能度量分析

&#x1f3af;要点 分析全电池制造端开路电压曲线&#xff0c;解析电化学指标或特征&#xff0c;了解电池的热力学和动力学特性。测试相同活性材料&#xff08;正极和石墨负极&#xff09;的两批电池&#xff0c;列出模型提取的电化学特征并可视化分析结果。使用类似电压拟合方…

【Next.js 项目实战系列】03-查看 Issue

原文链接 CSDN 的排版/样式可能有问题&#xff0c;去我的博客查看原文系列吧&#xff0c;觉得有用的话&#xff0c;给我的库点个star&#xff0c;关注一下吧 上一篇【Next.js 项目实战系列】02-创建 Issue 查看 Issue 展示 Issue​ 本节代码链接 首先使用 prisma 获取所有…

【算法】KMP字符串匹配算法

目录 一、暴力 二、KMP 2.1 思路 2.2 next数组 2.3 实现 2.4 例题 一个人能走的多远不在于他在顺境时能走的多快&#xff0c;而在于他在逆境时多久能找到曾经的自己。 …