1、检索出所有成绩为空的学号,课号。 (5 分)

题干:

检索出所有成绩为空的学号,课号。
提示:请使用SELECT语句作答。

表结构:

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

CREATE TABLE score (
	sno varchar(6) NOT NULL,
	cno varchar(6) NOT NULL,
	term varchar(15),
	grade int(11),
	PRIMARY KEY (sno,cno)
) ;

表样例:

上述表结构对应的表样,部分数据如下:

score表:

输出样例:

答案:

select sno,cno from score where grade is null;

2、查看1998年出生的学生信息,查询结果以学号升序排列。 (5 分)

题干:

查看1998年出生的学生信息,查询结果以学号升序排列。
提示:请使用SELECT语句作答。

表结构:

定义表结构的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表:

输出样例:

答案:

select sno 学号,sname 姓名,pnum 身份证号码 from student where extract(year from birth)=1998 order by sno;

3、查询商品表,先按商品分类升序排列,再按商品价格降序排列 (5 分)

题干:

本题目要求编写SQL语句,查询sh_goods表,先按商品分类category_id升序排列,对于相同分类的商品再按商品价格price降序排列 。
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select name,category_id,price from sh_goods order by category_id,price desc;

4、查询商品表中每项关键词对应的商品数量 (5 分)

题干:

本题目要求编写SQL语句, 检索出sh_goods表中每项keyword对应的商品数量,统计所得商品数量对应的字段名称依据输出样例设置。
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select keyword,count(*) goodscount from sh_goods group by keyword;

5、获取每个分类下商品的最高价格 (5 分)

题干:

本题目要求编写SQL语句, 获取sh_goods表中每个分类下商品的最高价格。查询结果显示字段依据输出样例设置。
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select category_id,max(price) max_price from sh_goods group by category_id;

6、查询商品表中商品库存的最高和最低值 (5 分)

题干:

本题目要求编写SQL语句, 查询sh_goods表中商品库存stock的最高和最低值。
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select max(stock) stock1,min(stock) stock2 from sh_goods;

7、获取指定条件商品的平均价格 (5 分)

题干:

本题目要求编写SQL语句, 在sh_goods表中查询不同商品分类(category_id)下商品数量大于2的商品的平均价格。查询结果显示字段依据输出样例设置。
提示:请使用SELECT语句作答。
表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select category_id,avg(price) average from sh_goods group by category_id having count(*)>2;

8、商品表查询语句中运算符的使用 (5 分)

题干:

本题目要求编写SQL语句, 在sh_goods表中,查询5星好评的商品库存增加850后的值,以及这些商品进行75折促销后的价格。查询结果显示字段依据输出样例设置。
提示:请使用SELECT语句作答。
表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select name,price old_price,stock old_stock,price*0.75 new_price,stock+850 new_stock from sh_goods where score>=5;

9、查询商品表中用户评分在前20%的商品名称 (5 分)

题干:

本题目要求编写SQL语句, 查询sh_goods表中用户评分score在前20%的商品名称
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select top 2 name from sh_goods order by score desc;

注意:
top是对sql而言的,top 2 表示取前两条结果。
rownum是对oracle而言的

rownum伪列的使用请点击我。


10、查询商品表中指定价格范围的商品信息 (5 分)

题干:

本题目要求编写SQL语句, 查询sh_goods表中价格在2000到6000元之间的商品编号、名称和价格,注意此范围包括2000元和6000元的商品。
提示:请使用SELECT语句作答。

表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select id,name,price from sh_goods where price between 2000 and 6000;

11、商品表中判断字段是否为NULL (5 分)

题干:

本题目要求编写SQL语句, 查询goods表中价格为NULL的商品信息。
提示:请使用SELECT语句作答。

表结构:

CREATE TABLE goods
 (
    id INT PRIMARY key,         --商品id
    name VARCHAR(32),           --商品名称
    price INT ,                 --商品价格
    description VARCHAR(255)    -- 商品描述
 );

表样例:

goods表:

输出样例:

答案:

select id,name,price from goods where price is null;

12、获取商品表中商品名称含有“pad”的商品 (5 分)

题干:

本题目要求编写SQL语句, 获取goods表中商品名称含有“pad”的商品。
提示:请使用SELECT语句作答。

表结构:

CREATE TABLE goods
 (
    id INT PRIMARY key,         --商品id
    name VARCHAR(32),           --商品名称
    price INT ,                 --商品价格
    description VARCHAR(255)    -- 商品描述
 );

表样例:

goods表:

输出样例:

答案:

select id,name,price from goods where name like '%pad%';

13、查询商品表中指定条件的商品信息(逻辑与) (5 分)

题干:

本题目要求编写SQL语句, 查询sh_goods表中商品分类编号为3,并且用户评分为5星的商品信息。
提示:请使用SELECT语句作答。
表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select id,name,price from sh_goods where category_id=3 and score=5;

14、查询商品表中指定条件的商品信息(逻辑或) (5 分)

题干:

本题目要求编写SQL语句, 查询sh_goods表中用户评分为4.5或者价格小于10元的商品。
提示:请使用SELECT语句作答。
表结构:

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        -- 评论数量
) ;

表样例:

sh_goods表:

输出样例:

答案:

select name,price,score from sh_goods where score=4.5 or price<10;

15、在教师表中查询出所有教师所在部门编号,并消除重复记录。 (5 分)

题干:

本题目要求编写SQL语句,在Teacherr表中查询出所有教师所在部门编号,并消除重复记录。
提示:请使用SELECT语句作答。
表结构:

Create table Teacher(
  TeacherID   char(8) primary key,     --教师编号
  Teachername char(12) not null,       --教师姓名
  Sex  char(2) not null check(sex in('男','女')),  --教师性别
  Brith datetime ,                                 --出生日期
  Profession char(8) check(profession in('教授','副教授','讲师','助教')),  --职称
  Telephone varchar(20),                          --联系电话
  HomeAddr varchar(50),                           --家庭地址
  DepartmentID char(4)                            --系部编号
);

表样例:

Teacher表:

输出样例:

答案:

select distinct DepartmentID from Teacher;

16、查询所有教师信息,按教师编号升序排列 (5 分)

题干:

本题目要求编写SQL语句,查询Teacher表中所有教师信息,按教师编号升序排列。
提示:请使用SELECT语句作答。
表结构:

Create table Teacher(
  TeacherID   char(8) primary key,     --教师编号
  Teachername char(12) not null,       --教师姓名
  Sex  char(2) not null check(sex in('男','女')),  --教师性别
  Brith datetime ,                                 --出生日期
  Profession char(8) check(profession in('教授','副教授','讲师','助教')),  --职称
  Telephone varchar(20),                          --联系电话
  HomeAddr varchar(50),                           --家庭地址
  DepartmentID char(4)                            --系部编号
);

表样例:

Teacher表:

输出样例:

答案:

select * from Teacher order by TeacherID;

17、查询出出生日期最大(即年龄最小)的学生姓名及出生日期。 (5 分)

题干:

这是一个SQL编程题模板。本题目要求编写SQL语句, 查询Student表中出出生日期最大(即年龄最小)的学生姓名及出生日期。。
提示:请使用SELECT语句作答。

表结构:

Create table Student(
	StudentID   char(12) primary key,
	StudentName char(8) not null,
	Sex  char(2) not null ,
	Birth  datetime not null,
	HomeAddr varchar(80),
	EntranceTime datetime default getdate(),
	ClassID char(8) 
);

表样例:

Student表:

输出样例:

答案:

select StudentName,Birth from Student where Birth>=all(select Birth from Student);

18、查询学生人数大于5人的班级编号 (5 分)

题干:

这是一个SQL编程题模板。本题目要求编写SQL语句,查询Class表中学生人数大于5人的班级编号。
提示:请使用SELECT语句作答。

表结构:

Create table Class(
	ClassID   char(8) primary key,    --班级编号
	ClassName varchar(20) not null,   --班级名称
	Monitor  char(8),                 --班长姓名
	StudentNum int ,                  -- 学生人数
	DepartmentID char(4)              -- 系部编号
);

表样例:

Class表:

输出样例:

答案:

select ClassID from Class where StudentNum>5;

19、查询课程“Dp010001”的最高分 (5 分)

题干:

这是一个SQL编程题模板。本题目要求编写SQL语句, 查询Grade表中课程“Dp010001”的最高分。
提示:请使用SELECT语句作答。

表结构:

Create table Grade(
	CourseID   char(8) ,    --班级编号
	StudentID char(12) ,    --学号
	Semester  int not null, --学期
	SchoolYear int ,        --学年
	Grade numeric(5,1),     --成绩
	primary key(CourseID,StudentID)  
);

表样例:

Grade表:

输出样例:

答案:

select max(Grade) max_grade from Grade where CourseID='Dp010001';

20、查询课程“Dp010004”的学生学号和成绩,并按成绩降序排列,成绩相同按学号升序排列 (5 分)

题干:

这是一个SQL编程题模板。本题目要求编写SQL语句, 查询Grade表中课程“Dp010004”的学生学号和成绩,并按成绩降序排列,成绩相同按学号升序排列。
提示:请使用SELECT语句作答。

表结构:

Create table Grade(
	CourseID   char(8) ,    --班级编号
	StudentID char(12) ,    --学号
	Semester  int not null, --学期
	SchoolYear int ,        --学年
	Grade numeric(5,1),     --成绩
	primary key(CourseID,StudentID)  
);

表样例:

Grade表:

输出样例:

答案:

select StudentID,Grade from Grade where CourseID='Dp010004' order by Grade desc,StudentID;

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐