Oracle Select语句 练习4

color=FF3366
题目:

1.检索出所有成绩为空的学号,课号。
2.查看1998年出生的学生信息,查询结果以学号升序排列。
3.查询sh_goods表,先按商品分类category_id升序排列,对于相同分类的商品再按商品价格price降序排列
4.检索出sh_goods表中每项keyword对应的商品数量,统计所得商品数量对应的字段名称依据输出样例设置
 5.获取sh_goods表中每个分类下商品的最高价格。查询结果显示字段依据输出样例设置
 6.查询sh_goods表中商品库存stock的最高和最低值。
8.在sh_goods表中查询不同商品分类(category_id)下商品数量大于2的商品的平均价格。查询结果显示字段依据输出样例设置。
9.在sh_goods表中,查询5星好评的商品库存增加850后的值,以及这些商品进行75折促销后的价格。查询结果显示字段依据输出样例设置。
 10.查询sh_goods表中用户评分score在前20%的商品名称
 11.查询sh_goods表中价格在20006000元之间的商品编号、名称和价格,注意此范围包括2000元和6000元的商品。
 12.查询sh_goods表中商品分类编号为3,并且用户评分为5星的商品信息。
13.查询sh_goods表中用户评分为4.5或者价格小于10元的商品。
 14.获取goods表中商品名称含有“pad”的商品。
15.在Teacherr表中查询出所有教师所在部门编号,并消除重复记录。
16.查询Teacher表中所有教师信息,按教师编号升序排列。
 17.查询Student表中出出生日期最大(即年龄最小)的学生姓名及出生日期
18.查询Class表中学生人数大于5人的班级编号。
19.查询Grade表中课程“Dp010001”的最高分。
20.查询Grade表中课程“Dp010004”的学生学号和成绩,并按成绩降序排列,成绩相同按学号升序排列。

定义表结构的SQL语句如下:
CREATE TABLE score (
sno varchar(6) NOT NULL,
cno varchar(6) NOT NULL,
term varchar(15),
grade int(11),
PRIMARY KEY (sno,cno)
) ;

检索出所有成绩为空的学号,课号。
提示:请使用SELECT语句作答;
select sno,cno from score where grade is null;

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

查看1998年出生的学生信息,查询结果以学号升序排列。 提示:请使用SELECT语句作答。
select sno 学号,sname 姓名,pnum 身份证号码 from student where extract(year from birth)=1998 order by sno;

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

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

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

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

本题目要求编写SQL语句, 查询sh_goods表中商品库存stock的最高和最低值。
select max(stock) stock1,min(stock) sotck2 from sh_goods;

本题目要求编写SQL语句,
在sh_goods表中查询不同商品分类(category_id)下商品数量大于2的商品的平均价格。查询结果显示字段依据输出样例设置。
select category_id,avg(price) average from sh_goods group by category_id having count(*)>2;

本题目要求编写SQL语句,
在sh_goods表中,查询5星好评的商品库存增加850后的值,以及这些商品进行75折促销后的价格。查询结果显示字段依据输出样例设置。
select name,price oid_price,stock old_stock,price*0.75 new_price,stock+850 new_stock from sh_goods where score=5;

本题目要求编写SQL语句, 查询sh_goods表中用户评分score在前20%的商品名称
select top percent 20 name from sh_goods order by score desc;

本题目要求编写SQL语句,
查询sh_goods表中价格在2000到6000元之间的商品编号、名称和价格,注意此范围包括2000元和6000元的商品。
可以看到,无论是数字,还是使用字符,A BETWEEN B AND C,都等价的是A>=B & A<=C。

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

本题目要求编写SQL语句, 查询sh_goods表中商品分类编号为3,并且用户评分为5星的商品信息。
select id,name,price from sh_goods where category_id=3 and score=5;

查询sh_goods表中用户评分为4.5或者价格小于10元的商品。
select name,price,score from sh_goods where score=4.5 or price <10;

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

本题目要求编写SQL语句, 获取goods表中商品名称含有“pad”的商品。
select id,name,price from goods where name like ‘%pad%’;

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)                            --系部编号
);

本题目要求编写SQL语句,在Teacherr表中查询出所有教师所在部门编号,并消除重复记录。
select distinct departmentID from teacher;

本题目要求编写SQL语句,查询Teacher表中所有教师信息,按教师编号升序排列。
select * from Teacher order by TeacherID;

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) 
);

这是一个SQL编程题模板。本题目要求编写SQL语句, 查询Student表中出出生日期最大(即年龄最小)的学生姓名及出生日期
select StudentName,Birth from Student where birth=(select max(Birth) from Student);

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

这是一个SQL编程题模板。本题目要求编写SQL语句,查询Class表中学生人数大于5人的班级编号。
select ClassID from Class where StudentNum>5;

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

这是一个SQL编程题模板。本题目要求编写SQL语句, 查询Grade表中课程“Dp010001”的最高分。
select max(grade) max_grade from grade where CourseID=‘Dp010001’;

查询Grade表中课程“Dp010004”的学生学号和成绩,并按成绩降序排列,成绩相同按学号升序排列。
select StudentID,Grade from Grade where CourseID=‘Dp010004’ order by Grade desc,StudentID asc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值