版权声明:本文为CSDN博主「codingCoge」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38409944/article/details/80424093

实验一 ,二熟悉数据库管理系统环境 ,SQL定义语言
实验三 使用SQL语言进行简单查询
实验四 使用SQL语言进行复杂查询
实验五 SQL常用数据更新操作
实验六 综合应用

实验一,二:熟悉数据库管理系统环境,SQL定义语言

实验一是让我们利用图形界面(非sql语句)进行数据库和表的创建,太简单且和实验二用的数据一样所以就合并了两个实验

实验过程及分析:
首先创建一个数据库和需要的表(新建查询):

create database XSGL
GO
use XSGL
GO
Create table student      --创建学生表
(sno char(8) primary key,        --(实体完整性)学生姓名sname char(8) not null unique, --学生姓名ssex char(2) default '男' check(ssex='男' or ssex='女'),  --性别给定默认值为'男',取值只能取‘男’或‘女’sage tinyint check(sage>13 and sage<50),sdept char(20))create table course       --创建课程表
(cno char(2) PRimary key,        --课程编号cname varchar(50),  --课程名称cpno char(2),       --先修课号ccredit tinyint)  --课程名create table sc        --创建成绩表
(sno char(8),           --学生学号cno char(2),         --课程编号grade tinyint,           --成绩constraint pk_grade primary key(sno,cno),constraint fk_stuid foreign key(sno) references student(sno),constraint fk_course foreign key(cno) references course(cno),constraint ck_grade check(grade>=0 and grade<=100) )
go
insert into student(sno,sname, ssex,sage,sdept) values('95001', '李勇', '男', 20, 'CS')
insert into student(sno,sname, ssex,sage,sdept) values('95002', '刘晨', '女', 19, 'IS')
insert into student(sno,sname, ssex,sage,sdept) values('95003', '王敏', '女', 18, 'MA')
insert into student(sno,sname, ssex,sage,sdept) values('95004', '张立', '男', 19, 'IS')
insert into student(sno,sname, ssex,sage,sdept) values('95005', '刘云', '女', 18, 'CS ')
insert into course(cno, cname,ccredit,cpno) values('1', '数据库', 4, '5')
insert into course(cno, cname,ccredit,cpno) values('2', '数学', 6, null)
insert into course(cno, cname,ccredit,cpno) values('3', '信息系统', 3, '1')
insert into course(cno, cname,ccredit,cpno) values('4', '操作系统', 4, '6')
insert into course(cno, cname,ccredit,cpno) values('5', '数据结构', 4, '7')
insert into course(cno, cname,ccredit,cpno) values('6', '数据处理', 3, null)
insert into course(cno, cname,ccredit,cpno) values('7', 'PASCAL语言', 4, '6')
insert into sc(sno,cno,grade) values('95001', '1' ,92)
insert into sc(sno,cno,grade) values('95001', '2' ,85)
insert into sc(sno,cno,grade) values('95001', '3' ,88)
insert into sc(sno,cno,grade) values('95002', '2' ,90)
insert into sc(sno,cno,grade) values('95002', '3' ,80)
insert into sc(sno,cno,grade) values('95003', '2' ,85)
insert into sc(sno,cno,grade) values('95004', '1' ,58)
insert into sc(sno,cno,grade) values('95004', '2' ,85)
  • 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

1)STUDENT表中增加一个字段入学时间scome,

alter table student
add scome date
  • 1
  • 2

2)删除STUDENT表中sdept字段;

alter table student
drop column sdept
  • 1
  • 2

3)删除创建的SC表中cno字段和COURSE表cno字段之间的外键约束;

alter table sc
DROP fk_course
  • 1
  • 2

4)重建3)中删除的约束

alter table sc
add constraint fk_course foreign key(cno) references course(cno)
  • 1
  • 2

5、重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;

drop table sc
  • 1

6、用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯一索引;

create index index_sname
on student(sname desc)
  • 1
  • 2

7、用SQL语言DROP语句删除索引;

drop index index_sname on student
  • 1

8.我觉得没有错误……

实验总结:
1. 创建表的时候可以添加约束
2. 可以添加主键唯一标识 用primary key
3. 可以使用默认值 是 default
4. 可以使用外键来限制取值范围、
5. 使用alter添加,修改列;还可以删除表中约束如索引 index
6. 使用DROP 可以直接删除表 删除的时候先要删除外键表后才可以删除主键表

实验三:使用SQL语言进行简单查询

实验过程及分析:
还是使用实验一的表
(1)查询全体学生的学号和姓名

select sno,sname
from student;
  • 1
  • 2

(2)查询全体学生的详细记录

select *
from student;
  • 1
  • 2

(3)查询软件学院的学生姓名、年龄、系别

select sname,sage,sdept
from student where sdept='MA';
  • 1
  • 2

(4)查询所有选修过课程的学生学号(不重复)

select distinct sno
from sc;
  • 1
  • 2

(5)查询考试不及格的学生学号(不重复)

select distinct sno
from sc
where grade<60;
  • 1
  • 2
  • 3

(6)查询不是软件学院、计算机系的学生性别、年龄、系别

select ssex,sage,sdept
from student
where sdept not in('CS','MA');
  • 1
  • 2
  • 3

(7)查询年龄18-20岁的学生学号、姓名、系别、年龄;

select sno,sname,sdept,sage
from student
where sage>=18 and sage<=20;
  • 1
  • 2
  • 3

(8)查询姓刘的学生情况

select *
from student
where sname like '刘%';
  • 1
  • 2
  • 3

(9)查询姓刘或姓李的学生情况

select * from student where sname like '刘%' or sname like '李%'
  • 1

(10)查询姓刘且名字为两个字的学生情况

select *
from student
where sname like '刘_';
  • 1
  • 2
  • 3

(11)查询1983年以后出生的学生姓名。

select sname from student where sage < 2018-1983
  • 1

(12)创建表 studentgrad(sno,mathgrade,englishigrade,chinesegrade)
计算学生各科总成绩并赋予别名

Create table studentgrad(Sno char(8) ,mathgradeint,englishigradeint,chinesegradeint
)
Select sum(mathgrade+chinesegrade+englishigrade) '学生总成绩' from studentgrad 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(13)利用内部函数 year()查找软件学院学生的出生年份

select (year(getdate())-student.sage+1)
from student
where sdept='MA';
  • 1
  • 2
  • 3

(14)利用字符转换函数实现字符联接。

select sname + '年龄为'+cast(sage as char(2))+'岁'
from student;
Select sname + ‘年龄为’+cast(sage as char(2))+’岁’
From student
  • 1
  • 2
  • 3
  • 4

(15)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。

select*
from student order by sdept,sage desc;
  • 1
  • 2

(16)查询学生总人数。

select count(*)
from student;
  • 1
  • 2

(17)查询选修了课程的学生人数。

select count(distinct sno)
from sc;
  • 1
  • 2

(18)查询选修了7号课程的学生总人数和平均成绩

select count(*),avg(grade)as avggrade
from student ,sc
where student.sno=sc.sno and sc.cno='1';
  • 1
  • 2
  • 3

(19)查询选修6号课程学生的最好成绩

select max(grade) as maxgrade
from sc
where cno='2';
  • 1
  • 2
  • 3

(20)查询每个系的系名及学生人数。

select sdept,count(*)
from student group by sdept;
  • 1
  • 2

(21)查找每门课的选修人数及平均成绩

select cno,count(*),avg(grade) as avggrade
from sc group by cno;
  • 1
  • 2

(22)查找没有先修课的课程情况

select *
from course
where cpno is null;
  • 1
  • 2
  • 3

实验总结:
1. 函数year(),count(),max()可以方便查询
2. 模糊查询法要% 如like ‘刘%’
3. group by 可以分组查询

实验四:使用SQL语言进行复杂查询

实验过程及分析:
1、实验一中的数据为基础
2、对各表中的数据进行不同条件的连接查询和嵌套查询;
(1)查询每个学生及其选课情况;

select student.sno,sname,ssex,sage,sdept,cno,grade
from student,sc
where student.sno=sc.sno
  • 1
  • 2
  • 3

(2)查询每门课的间接先修课

select first.cno,second.cpno
from course first,course second
where first.cpno=second.cno 
  • 1
  • 2
  • 3

(3)将STUDENT,SC进行右连接

select student.sno,sname,ssex,sage,sdept,cno,grade
from student right outer join sc on student.sno=sc.sno
  • 1
  • 2

(4)查询既选修了2号课程又选修了3号课程的学生姓名、学号;

select student.sno,sname
from student inner join sc on student.sno=sc.sno
where cno='3' and sc.sno in
(select sno
from sc
where cno='2')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(5)查询和刘晨同一年龄的学生

select student.sno,sname
from student
where sname!='刘晨' and sage=
(select sage
from student
where sname='刘晨')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(6)选修了课程名为“数据库”的学生姓名和年龄

select sname,sage
from student
where sno in
(select sno
from sc
where cno in
(select cno
from course
where cname='数据库'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(7)查询其他系比IS系任一学生年龄小的学生名单

select student.sno,sname
from student
where sdept<>'IS' and
sage<any
(select sage
from student
where sdept='IS')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(8)查询其他系中比IS系所有学生年龄都小的学生名单

select student.sno,sname
from student
where sdept<>'IS' and
sage<all
(select sage
from student
where sdept='IS')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(9)查询选修了全部课程的学生姓名

select sname
from student
where Sno in
(select Sno from SC
group by Sno
having count(*) = (select count(*) from course ))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(10)查询计算机系学生及其性别是男的学生

select student.sno,sname
from student
where sdept='IS' and ssex='男'
  • 1
  • 2
  • 3

(11)查询选修课程1的学生集合和选修2号课程学生集合的差集

select sno
from sc
where cno='1' except
select sno
from sc
where cno='2'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(12)查询李丽同学不学的课程的课程号

select cno
from course
where cno not in
(select cno
from sc
where sno in
(select sno
from student
where sname='李丽'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(13)查询选修了3号课程的学生平均年龄

select AVG(sage) as avgsage
from student inner join sc on student.sno=sc.sno
where cno='3'
  • 1
  • 2
  • 3

(14)求每门课程学生的平均成绩

select cno,AVG(grade) as avggrade
from sc
group by cno
  • 1
  • 2
  • 3

(15)统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列

select course.cno '课程号', count(sc.sno) '人数'
from course,sc
where course.cno=sc.cno
group by course.cno having count(sc.sno)>3 order by COUNT(sc.sno) desc,course.cno asc
  • 1
  • 2
  • 3
  • 4

(16)查询学号比刘晨大,而年龄比他小的学生姓名。

select sname
from student
where sno>
(select sno from student where sname='刘晨')and
sage<(select sage from student where sname='刘晨')
  • 1
  • 2
  • 3
  • 4
  • 5

(17)求年龄大于所有女同学年龄的男同学姓名和年龄

select sname,sage
from student
where ssex='男'and sage>
(select MAX(sage) from student where ssex='女')
  • 1
  • 2
  • 3
  • 4

实验总结:
1. 求总数可以用COUNT()函数
2. 分组group by 要用having来限制条件
3. order by是排序要求 desc是降序 ,asc是升序
4. any()函数是任意的意思,all()是所有

实验五:SQL的常用数据更新操作

实验过程及分析:
1、应用INSERT,UPDATE,DELETE语句进行更新操作;
(1)插入如下学生记录(学号:95030,姓名:李莉,年龄:18)

insert into student(sno,sname,sage)
values ('95030','李莉',18)
  • 1
  • 2

(2)插入如下选课记录(95030,1)

insert into sc(sno,cno)
values('95030',1)
  • 1
  • 2

(3)计算机系学生年龄改成20

update student
set sage=20
where sdept='CS'
  • 1
  • 2
  • 3

(4)把数学系所有学生成绩改成0

update sc
set grade=0
where 'MA'=
(select sdept
from student
where student.sno=sc.sno)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(5)把低于总平均成绩的女同学成绩提高5分

update sc
set grade+=5
where grade<
(select avg(grade)
from sc inner join student
on student.sno=sc.sno
where ssex='女')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(6)删除95030学生信息

delete
from student
where sno='95030'
  • 1
  • 2
  • 3

(7)删除SC表中无成绩的记录

delete
from sc
where grade is null;
  • 1
  • 2
  • 3

(8)删除张娜的选课记录

delete
from sc
where sno=(select sno from student
where sname='张娜')
  • 1
  • 2
  • 3
  • 4

(9)删除不及格的学生选课记录

delete
from sc
where grade<60
  • 1
  • 2
  • 3

(10)删除数学系所有学生选课记录

delete
from sc
where sno in (select sno from student where sdept='MA')
  • 1
  • 2
  • 3

(11)删除所有未被选修的课程

delete
from course
where cno not in (select cno from sc)
  • 1
  • 2
  • 3

(12)查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中

Create table STU
(sno char(8),
sname char(8),
ssex char(2)
)insert into STU(sno,sname,ssex)
select distinct student.sno,sname,ssex
from student,sc
where student.sno not in
(select sno from sc where grade<80) and student.sno=sc.sno
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(13)建立一个sdeptgrade 表,包含(sdept,avggrade)字段,对每一个系,求学生的成绩,并把结果存入sdeptgrade

Create table sdeptgrade
(sdept char(8) primary key,
avggrade int; ) insert into sdeptgrade
select student.sdept, avg(sc.grade)
from student inner join SC on
(student.sno = SC.sno) group by student.sdept;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

实验总结:
1. 删除主键表数据如果有外键约束就会报错
2. 插入数据用insert into 表直接+表
3. 更新用update
4. 删除直接用delete 可以直接删除一行数据

实验六:综合应用**

实验过程及分析:
建立一个数据库和五张表的表结构


首先创建表:

create database Person
GO
use person
GO
Create table employee
(
emp_no char(5) primary key,
emp_name char(10) not null,
Sex char(1) not null,
Dept char(4) not null,
Title char(6) not null,
data_hired datetime not null,
birthday datetime null,
salary int not null,
Addr char(50) null,
Mod_date datetime Default(getdate())
)
create table customer
(
cust_id char(5) primary key,
cust_name char(20) not null,
Addr char(40) not null,
tel_no char(10) not null,
Zip char(6) null
)
create table sales
(
order_no int primary key,
cust_id char(5) not null,
sale_id char(5) not null,
tot_amt numeric(9,2) not null,
order_date datetime not null,
ship_date datetime not null,
incoice_no char(10) not null
)
create table sale_item
(
order_no int not null,
prod_id char(5) not null,
Qty int not null,
unit_price numeric(9,2) not null,
order_date datetime null
constraint primary_sale primary key(order_no,prod_id)
)
create table product
(
prod_id char(5) not null primary key,
prod_naem char(20) not null
)
  • 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

3、录入数据并实现实现如下查询
(1)查找定单金额高于20000的客户编号;

select cust_id from sales where tot_amt>2000
  • 1

(2)选取销售数量最多的前5条订单订单号、数量;

select top 5 order_no,Qty from sale_item order by Qty DESC
  • 1

(3)显示sale_item表中每种个别产品的订购金额总和,并且依据销售金额由大到小排
来显示出每一种产品的排行榜;

select prod_id, sum(Qty*unit_price) '金额' from sale_item group by prod_id order by '金额' DESC
  • 1

(5)计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序;

select "s2".月份,SUM("s2".tot_amt) '销售金额总和',"s1".prod_id '产品编号'
from sale_item "s1"
join (select MONTH(order_date) '月份',order_no,tot_amt from sales) "s2"
on "s1".order_no="s2".order_no
group by "s2".月份,"s1".prod_id
order by "s2".月份,"s1".prod_id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(6)检索单价高于2400元的的产品编号、产品名称、数量、单价及所在订单号;

select s.prod_id '产品编号',product.prod_name '产品名称',s.Qty '数量',s.unit_price '单价',s.order_no
from product INNER JOIN
(select order_no,prod_id,Qty,unit_price from sale_item where unit_price>2400) s
on product.prod_id=s.prod_id
  • 1
  • 2
  • 3
  • 4

(7)计算每一产品销售数量总和与平均销售单价;

select "s1".销售总额,"s2".unit_price '平均销售单价'
from(select SUM(Qty*unit_price) '销售总额',prod_id from sale_item group by prod_id) "s1"
join sale_item "s2"
on "s1".prod_id="s2" .prod_id
  • 1
  • 2
  • 3
  • 4

(8)创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。

CREATE VIEW view_name AS
select cust_id,cust_name,Addr from customer where Addr='上海'
  • 1
  • 2

实验总结:
1. 设置主键,自动为 not null
2. unique和主键区别:
unique:唯一并且 一张表可设置多个unique 可空 但是只能有一行数据空
主键: 唯一并且 一张表只能有一个主键
何时用到主键?
设置外键的时候需要主键 还有唯一标识一列的时候 比如身份证
3. 主键可通过 constraint 主键名 primary key(列,列)来设置*组合键*
4. 给表取别名的时候 不能用单引号,要用双引号或者不用引号 而给列取别名的时候可以选择单引号 或者 as 连接词 或者不用引号
5. where之类的范围时 列=单引号内容时值 双引号为列名
6. top 5表示 取前5名
7. 视图是为了保存一张表 下次查找该表可直接 使用 如本实验中:

select * from view_name
  • 1

即可查看 视图

大二数据库实验报告答案相关推荐

  1. 软件工程专业大二操作系统实验报告

    目录 实验一 Linux 安装 一.实验目的 二.预习报告 1. Linux背景 1.1 Red Hat 1.2 Fedora Linux 1.3 Ubuntu 2. Linux安装 2.1 安装步骤 ...

  2. 大二数据库实验-MySQL语句(Employee、Department、Salary)

    实验所用到的的几张表: 显示Employee表中姓王的记录. 显示salary 表中InCome大于2000的数据. 显示salary 表中InCome在2500到3000之间的数据. 显示Emplo ...

  3. mysql实验报告2_数据库实验报告二

    <数据库实验报告二>由会员分享,可在线阅读,更多相关<数据库实验报告二(24页珍藏版)>请在人人文库网上搜索. 1.XIAN TECHNOLOGICAL UNIVERSITY ...

  4. c语言设计实验报告答案,武汉理工大学《C语言程序设计》实验报告答案

    武汉理工大学<C语言程序设计>实验报告答案 注:在Visual C++ 6.0编译环境中亲自调试通过,但不保证在Turbo C中通过. 实验二 选择结构的程序设计 (题目当初没抄下来,这是 ...

  5. python实用教程答案 郑阿奇_《》 mysql实用教程郑阿奇实验报告答案

    <> mysql实用教程郑阿奇实验报告答案 python实用教程郑阿奇2020-09-28 19:50:10人已围观 SQL Server 实用教程(第3版)课后实验答案 郑阿奇主编的 邮 ...

  6. oracle实验六杨艳华_工作报告之oracle数据库实验报告

    oracle 数据库实验报告 [篇一:大型数据库 oracle 10g 实验教程实验五实验报 告] 集美大学计算机工程学院实验报告 课程名称: oracle 10g 数据库基础教程 指导教师:杨艳华 ...

  7. mysql视图 实验报告_数据库实验报告(视图).doc

    数据库实验报告(视图) 实验报告(视图) 课程数据库原理与应用技术日期 2012 年 5月 17日学号实验项目 名 称有关视图的数据库操作姓名一.实验目的 本次试验就是要掌握基本的SQL Server ...

  8. 数据库实验报告【学会使用企业管理器和查询分析器管理工具】

    Hello各位,本系列为数据库实验报告的合集,是我按照<数据库系统概论习题解析与实验指导第5版>中的实验指导写出来的所有报告.这个系列的每一份报告都是我滴原创于是想把自己的劳动成果发出来共 ...

  9. 科大奥锐干涉法测微小量实验的数据_大学物理实验报告答案解析大全(实验数据).doc...

    HYPERLINK "/source/2123275" 大 HYPERLINK "/source/2123275" 学物理实验报告答案大全(实验数据及思考题答案 ...

最新文章

  1. JDK9的新特性:String压缩和字符编码
  2. linux的底层文件i o,Linux 文件I/O操作
  3. Android CardView卡片布局 标签: 控件
  4. 使用get set方法添减属性_头皮银屑病“克星”使用方法,你GET了吗?
  5. 字节跳动和腾讯不正当竞争案将于深圳开庭 抖音:我们也是看新闻才知道本月24日要开庭...
  6. 孟山都公司董事长兼CEO休-格兰特出席2017年中国发展高层论坛
  7. 如何使用KeyChain保存和获取UDID
  8. axhline函数--Matplotlib
  9. NYOJ 表达式求最值305
  10. 数据结构期末考试【含答案】
  11. 自学Shiro框架笔记
  12. ami码编码算法c语言,AMI码编码规则是什么
  13. java代码实现CGCS2000大地坐标系XY值转化为对应经纬度
  14. android 4.0.3固件,OPPO Find3 android 4.0固件正式发布
  15. shell提示Algorithm negotiation fail
  16. linux live cd哪个好,最佳的 Linux LiveCD
  17. 安装net-speeder,加速***
  18. linux 网络管理之iptables命令详解
  19. Flink Kafka Doris实战demo
  20. opencv 锐化 java_Java Opencv 实现锐化

热门文章

  1. 无线蓝牙手表FCC ID认证测试项目有哪些?
  2. Win10常用cmd命令学习(验证性实验)
  3. 什么样的人适合当程序员?挺有意思的一篇文章
  4. sox和lame音频处理器
  5. Gmail邮箱怎么获取授权码?熟悉一下
  6. 【Java基础知识】JDBC基本操作
  7. Chrome被百度网页劫持
  8. Unity3d实现Projector(喷码效果)
  9. 流氓软件自动安装恶意插件导致浏览器闪退问题
  10. 升级Mac Catalina后OBS录屏软件麦克风和内置声音输出没有声音的问题