数据库SQL练习题

10-1 查询学生表所有学生记录

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

表结构:

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

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

表样例

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

stu表:

stu.JPG

输出样例:

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

l21.JPG

SELECT *
FROM stu;

10-2 查询学生表中部分信息

作者 张庆

单位 集美大学

本题目要求编写SQL语句,
检索出 stu 表中学生的学号、姓名、性别.
注意:性别为'1'时显示‘男’,性别为‘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

输出样例:

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

l22.JPG

select sno,sname,
(case when sex='1' then '男'
when sex='0' then '女' end) as sex
from stu;

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

本题目要求编写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-4 查询学生表中大于19岁的女生

本题目要求编写SQL语句,
检索出stu表中所有年龄大于19岁的女生的记录。注意:sex为1时表示 男生,sex为0时表示女生。
计算年龄时以年计算,不考虑出生月份。

提示:假定当前日期为‘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

输出样例:

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

l24.JPG

select sno as 学号,sname as 姓名,sex as 性别,mno as 专业,2020-year(birdate) as 年龄,memo as 备注
from stu
where 2020-year(birdate)>19 and sex= '0';

 10-5 查询年龄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 2020-year(birdate) between 18 and 20;

 

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

作者 张庆

单位 集美大学

本题目要求编写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-7 查询部分专业的学生

分数 10

全屏浏览

切换布局

作者 张庆

单位 集美大学

本题目要求编写SQL语句,
检索出 stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。

表结构:

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

表样例

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

stu表:

stu.JPG

major表:

major.JPG

输出样例:

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

l27.JPG

select stu.sno 学号,stu.sname 姓名,sex as 性别, major.mname 专业
from stu join major on major.mno=stu.mno
where major.mno='01' or major.mno='02'
order by stu.sno;

10-8 查询所有学生的平均成绩

分数 10

全屏浏览

切换布局

作者 张庆

单位 集美大学

本题目要求编写SQL语句,
stu表 和 sc表 中查询所有学生的平均成绩,如果某学生尚未选修课程或成绩为空时,平均分计为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`)
);
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

输出样例:

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

l28.JPG

select  stu.sno as 学号,ifnull(avg(grade),0) as 平均成绩
from sc right join stu on stu.sno=sc.sno
group by stu.sno;

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

分数 10

全屏浏览

切换布局

作者 张庆

单位 集美大学

本题目要求编写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 as 专业,COALESCE(AVG(grade), 0) as 平均成绩
from major
left join (select mno,grade from stu,sc where stu.sno=sc.sno) as a
on major.mno=a.mno
group by major.mno,mname
order by major.mno

 

10-10 查询平均成绩高于75分的学生

分数 10

全屏浏览

切换布局

作者 张庆

单位 集美大学

本题目要求编写SQL语句,
sc表 中查询平均成绩高于75分的学生。

表结构:

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

输出样例:

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

l210.JPG

select sno as 学号,avg(grade) as 平均成绩
from sc
group by sno
having avg(grade)>75

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值