Oracle 经典练习题 50 题

news2024/12/28 23:59:58

文章目录

  • 一 CreateTable
  • 二 练习题
    • 1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
    • 2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数
    • 3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
    • 4 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
    • 5 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
    • 6 查询"李"姓老师的数量
    • 7 查询学过"张三"老师授课的同学的信息
    • 8 查询没学过"张三"老师授课的同学的信息
    • 9 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息
    • 10 查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息
    • 11 查询没有学全所有课程的同学的信息
    • 12 查询至少有一门课与学号为"01"的同学所学相同的同学的信息
    • 13 查询和"01"号的同学学习的课程完全相同的其他同学的信息
    • 14 查询没学过"张三"老师讲授的任一门课程的学生姓名
    • 15 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
    • 16 检索"01"课程分数小于60,按分数降序排列的学生信息
    • 17 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
    • 18 查询各科成绩最高分、最低分和平均分,以如下形式显示
    • 19 按各科成绩进行排序,并显示排名
    • 20 查询学生的总成绩并进行排名
    • 21 查询不同老师所教不同课程平均分从高到低显示
    • 22 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
    • 23 统计各科成绩各分数段人数:课程编号,课程名称,[100-85),[85-70),[70-60),[0-60)及所占百分比
    • 24 查询学生平均成绩及其名次
    • 25 查询各科成绩前三名的记录
    • 26 查询每门课程被选修的学生数
    • 27 查询出只有两门课程的全部学生的学号和姓名
    • 28 查询男生、女生人数
    • 29 查询名字中含有"风"字的学生信息
    • 30 统计同姓的人员名单,打印 姓 人数 姓名
    • 31 查询1990年出生的学生名单
    • 32 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列
    • 33 查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩
    • 34 查询课程名称为"数学",且分数低于60的学生姓名和分数
    • 35 查询所有学生的课程及分数情况
          • Result1 group
          • Result2 pivot
    • 36 查询任何一门课程成绩在70分以上的学生姓名、课程名称和分数
    • 37 查询课程不及格的学生
    • 38 查询课程编号为01且课程成绩在80分以上的学生的学号和姓名
    • 39 查询每门课程的人数
    • 40 查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩
    • 41 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
    • 42 统计每门课程的前几名
    • 43 统计课程的选课人数,> 5 才统计
    • 44 查询选修了2门课的sid
    • 45 查询选修了全部课程的学生信息
    • 46 求学生周岁
    • 47 本周过生日的同学
    • 48 下周过生日的同学
    • 49 查询本月过生日的同学
    • 50 查询12月份过生日的同学

先用sys创建一个用户,防止其他表带来干扰

CREATE USER c##baseMyf IDENTIFIED BY 123456


GRANT CONNECT, RESOURCE, DBA TO c##baseMyf;


alter user c##ifeng identified by 123456;

一 CreateTable

image.png

--Student

create table student (
	s_id int,
	s_name varchar(8),
	s_birth date,
	s_sex varchar(4)
);
go
insert into student values
(1,'赵雷',to_date('1990-01-01','yyyy-MM-dd'),'男');

insert into student values
(2,'钱电',to_date('1990-12-21','yyyy-MM-dd'),'男');

insert into student values
(3,'孙风',to_date('1990-05-20','yyyy-MM-dd'),'男');

insert into student values
(4,'李云',to_date('1990-08-06','yyyy-MM-dd'),'男');

insert into student values
(5,'周梅',to_date('1991-12-01','yyyy-MM-dd'),'女');

insert into student values
(6,'吴兰',to_date('1992-03-01','yyyy-MM-dd'),'女');

insert into student values
(7,'郑竹',to_date('1989-07-01','yyyy-MM-dd'),'女');

insert into student values
(8,'王菊',to_date('1990-01-20','yyyy-MM-dd'),'女');


--course
create table course (
	c_id int,
	c_name varchar(8),
	t_id int
);


insert into course values
(1,'语文',2);
insert into course values
(2,'数学',1);
insert into course values
(3,'英语',3);


-- teacher

create table teacher (
	t_id int,
	t_name varchar(8)
);

insert into teacher values
(1,'张三');
insert into teacher values
(2,'李四');
insert into teacher values
(3,'王五');


--score
create table score (
	s_id int,
	c_id int,
	s_score int
);

insert into score values
(1,1,80);
insert into score values
(1,2,90);
insert into score values
(1,3,99);
insert into score values
(2,1,70);
insert into score values
(2,2,60);
insert into score values
(2,3,65);
insert into score values
(3,1,80);
insert into score values
(3,2,80);
insert into score values
(3,3,80);
insert into score values
(4,1,50);
insert into score values
(4,2,30);
insert into score values
(4,3,40);
insert into score values
(5,1,76);
insert into score values
(5,2,87);
insert into score values
(6,1,31);
insert into score values
(6,3,34);
insert into score values
(7,2,89);
insert into score values
(7,3,98);

二 练习题

1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数

--查询"01"课程比"02"课程成绩高的学生的信息及课程分数
select distinct stu.s_id, s_name, s_birth, s_sex ,s_score_1,s_score_2
from student stu
join score s on s.s_id = stu.s_id
join (
  select s_id 
         ,max(case when c_id = 1 then s_score end) as s_score_1
         ,max(case when c_id = 2 then s_score end) as s_score_2
  from score
  group by s_id
  having max(case when c_id = 1 then s_score end) > max(case when c_id = 2 then s_score end)
)a on stu.s_id = a.s_id

image.png

2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数

--查询"01"课程比"02"课程成绩低的学生的信息及课程分数(查询了全部的课程分数)

select distinct stu.s_id, s_name, s_birth, s.c_id,s.s_score
from student stu
join score s on stu.s_id = s.s_id
and s.s_id in  (
  select s_id
         --,max(case when c_id = 1 then s_score end) as score_1
         --,max(case when c_id = 2 then s_score end) as score_2
  from score
  group by s_id
  having max(case when c_id = 1 then s_score end) < max(case when c_id = 2 then s_score end) 
)

3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

--查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

select stu.s_id, s_name, s_birth, s_sex ,a.avg_score
from student stu
join (
select s_id,round(avg(s_score),2) as avg_score
from score
group by s_id
having avg(s_score) > 60

) a on a.s_id = stu.s_id

4 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)

--查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
select stu.s_id, s_name, s_birth, s_sex ,a.avg_score,a.avg_score_2
from student stu
left join (
  select s_id
         --, c_id, s_score 
         ,round(sum(s_score) / count(coalesce(c_id,1)),2) as avg_score
         ,avg(s_score) as avg_score_2
  from score
  group by s_id
) a on a.s_id = stu.s_id
where (avg_score < 60 or avg_score is null)

image.png

5 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

--查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

select stu.s_id, s_name,coalesce(count_c,0),coalesce(sum_score,0)
from student stu
left join (
  select s_id--, c_id, s_score 
         ,count(c_id) as count_c
         ,sum(s_score) as sum_score
  from score
  group by s_id
)a on stu.s_id = a.s_id

6 查询"李"姓老师的数量

--查询"李"姓老师的数量
select count(t_id) as count_li from teacher
where t_name like '李%'

7 查询学过"张三"老师授课的同学的信息

--查询学过"张三"老师授课的同学的信息

select s_id, s_name, s_birth, s_sex 
from student where s_id in(
  select s_id from score
  where c_id in (
        select c.c_id from teacher t join course c on c.c_id = t.t_id and t_name = '张三'
  )
)

8 查询没学过"张三"老师授课的同学的信息

--查询没学过"张三"老师授课的同学的信息

select s_id, s_name, s_birth, s_sex 
from student
where s_id not in (
  select s_id
  from score where c_id in (
  --select c.c_id from teacher t,course c where t_name = '张三' and t.t_id = c.c_id
  select c.c_id from teacher t join course c on t.t_id = c.c_id and t_name = '张三'
  )
)

9 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息

--查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息

select s_id, s_name, s_birth, s_sex 
from student
where s_id in (
  select s_id
  from score
  where c_id = 01
  and s_id in (
      select s_id from score where c_id = 02
  )
)

10 查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息

select s_id, s_name, s_birth, s_sex 
from student where s_id in(
  select s_id
  from score
  where c_id = 1
  --where s_id in (
  --      select s_id from score where c_id = 1
  --)
   and s_id not in (
        select s_id from score where c_id = 2
  )
)

11 查询没有学全所有课程的同学的信息

--查询没有学全所有课程的同学的信息

select s_id, s_name, s_birth, s_sex 
from student
where s_id in (
  select s_id
  from score
  group by s_id 
  having count(c_id) != (
         select count(*) from course
  )
)

12 查询至少有一门课与学号为"01"的同学所学相同的同学的信息

--查询至少有一门课与学号为"01"的同学所学相同的同学的信息

select s_id, s_name, s_birth, s_sex 
from student
where s_id in (
  select distinct s_id
  from score
  where c_id in(
        select c_id from score where s_id = 1
  )
) and s_id != 1

13 查询和"01"号的同学学习的课程完全相同的其他同学的信息

--查询和"01"号的同学学习的课程完全相同的其他同学的信息
with data as (select distinct s_id
       ,listagg(c_id,',') within group(order by c_id) over(partition by s_id) as cid_list
from score)

select s_id, s_name, s_birth, s_sex 
from student
where s_id in (
  select s_id from data
  where cid_list in (
  select cid_list from data where s_id = 1
  ) and s_id != 1
)

image.png

--查询和"01"号的同学学习的课程完全相同的其他同学的信息
select s_id, s_name, s_birth, s_sex 
from student
where s_id in(
  select s_id--, c_id, s_score
  from score s
  inner join (
        select c_id from score where s_id = 1
  )a on a.c_id = s.c_id
  where s_id != 1
  group by s_id
  having count(*) = (
         select count(*) from score where s_id = 1
  )
)

14 查询没学过"张三"老师讲授的任一门课程的学生姓名

--查询没学过"张三"老师讲授的任一门课程的学生姓名

select stu.s_id, stu.s_name, a.c_id
from student stu
join (
  select s_id, c_id, s_score 
  from score
  where c_id not in (
    select c.c_id
    from teacher t
    join course c
    on t.t_id = c.c_id and t.t_name = '张三'
  )
)a on a.s_id = stu.s_id

-- 没学过 -> 首先想到 排除学过的

select * from student where s_id not in(
       select distinct s_id from score where c_id in(
       select c_id from course where t_id in(
    select t_id from teacher where t_name = '张三'   
    )
  )
)

15 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

--查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

with data as (
select s_id, c_id, s_score 
       ,avg(s_score) over(partition by s_id) as avg_score
from score

)

select stu.s_id, stu.s_name, avg_score
from student stu
join (
select s_id,avg_score
from data
group by s_id,avg_score
having sum(case when s_score < 60 then 1 else 0 end) >= 2
)a on stu.s_id = a.s_id

16 检索"01"课程分数小于60,按分数降序排列的学生信息

select stu.s_id, s_name, s_birth, s_sex ,a.s_score
from student stu
join (
select s_id,s_score from score
where c_id = 1 and s_score < 60
)a on stu.s_id = a.s_id
order by a.s_score desc

17 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

--按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
with data as (
select *
from (select s_id, c_id, s_score,avg(s_score) over(partition by s_id) as avg_score from score) 
pivot(
     max(s_score)
     for c_id in(1 as 数学,2 as 语文,3 as 英语)
)
)

select d.*,stu.s_name
from data d
join student stu on stu.s_id = d.s_id

image.png

18 查询各科成绩最高分、最低分和平均分,以如下形式显示

--查询各科成绩最高分、最低分和平均分,以如下形式显示:
--课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
--– 及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90

select c_id
       , max(s_score ) as max_score
       , min(s_score ) as min_score
       , round(avg(s_score ),2) as avg_score
       , concat(round((sum(case when s_score >= 60 then 1 else 0 end) / count(*)) * 100,2),'%') as jg
       , concat(round((sum(case when s_score >= 70 and s_score < 80 then 1 else 0 end) / count(*)) * 100,2),'%') as zd 
       , concat(round((sum(case when s_score >= 80 and s_score < 90 then 1 else 0 end) / count(*)) * 100,2),'%') as yl 
       , concat(round((sum(case when s_score >= 90 then 1 else 0 end) / count(*)) * 100,2),'%') as yx 
from score
group by c_id

image.png

19 按各科成绩进行排序,并显示排名

select s.s_id, s.c_id,c.c_name, s.s_score 
       ,rank() over(partition by s.c_id order by s.s_score desc) as rank
from score s
join student stu on s.s_id = stu.s_id
join course c on s.c_id = c.c_id
order by s.s_id,c.c_name,rank

20 查询学生的总成绩并进行排名

--查询学生的总成绩并进行排名
with data as (
select s_id, c_id, s_score 
       ,sum(s_score) over(partition by s_id) as sum_score
from score
order by sum_score desc
)
select data.*,stu.s_name,rank() over(order by sum_score desc)  as rank
from data 
join student stu on stu.s_id = data.s_id
order by rank

21 查询不同老师所教不同课程平均分从高到低显示

--查询不同老师所教不同课程平均分从高到低显示

select 
       c.t_id,s.c_id
       ,round(avg(s_score ),2) as avg_score
from course c
join score s on c.c_id = s.c_id
group by c.t_id,s.c_id
order by avg_score desc

22 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩

--查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
with data as (
select s_id, c_id, s_score
       ,rank() over(partition by c_id order by s_score desc) as rank
 from score
 )

select stu.*,data.c_id,data.s_score
from data 
join student stu on stu.s_id = data.s_id and rank between 2 and 3

23 统计各科成绩各分数段人数:课程编号,课程名称,[100-85),[85-70),[70-60),[0-60)及所占百分比

--统计各科成绩各分数段人数:课程编号,课程名称,[100-85),[85-70),[70-60),[0-60)及所占百分比
with socre_s as (
select s_id, c_id, s_score
       ,count(s_id) over(partition by c_id) as c_s_count
       ,case when s_score > 85 and s_score <= 100 then '[100-85)'
             when s_score > 70 and s_score <= 85 then '[85-70)'
             when s_score > 60 and s_score <= 70 then '[70-60)'
             when s_score >= 0 and s_score < 60 then '[0-60)'
        end as score_dj
 from score
 )

select 
   s_id, c_id,score_dj
   ,concat(round((count(s_id) / c_s_count),2) * 100,'%') as pre_score
from socre_s
group by s_id, c_id,score_dj,c_s_count

image.png

24 查询学生平均成绩及其名次

select s.s_id, c_id, s_score ,s_name
       ,avg(s_score) over(partition by s.s_id) as avg_score
       ,rank() over(partition by c_id order by s_score desc)
from score s
join student stu
on stu.s_id = s.s_id

25 查询各科成绩前三名的记录

with data1 as (
select s_id, c_id, s_score 
       ,rank() over(partition by c_id order by s_score desc) as rank
from score
)

select s.s_id, s.s_name,c.c_id, c.c_name, c.t_id ,d.s_score
from course c
join data1 d on c.c_id = d.c_id and d.rank <= 3
join student s on s.s_id = d.s_id

image.png

--感觉写的很奇怪,平常都不这么用

select c.c_id,c.c_name,s.s_id,s.s_name,s_score
from (
  select *
  from score sc
  where (
    select count(*)
    from score sc1
    where sc.c_id = sc1.c_id
    and sc.s_score < sc1.s_score
  ) < 3
)
t1
inner join student s on t1.s_id = s.s_id 
inner join course c on t1.c_id = c.c_id 
order by c.c_id,s_score desc

26 查询每门课程被选修的学生数

select c.c_id, c_name, t_id ,count_s
from course c
join (
select count(s_id) as count_s, c_id
from score
group by c_id
) a
on c.c_id = a.c_id

27 查询出只有两门课程的全部学生的学号和姓名

select s_id, s_name, s_birth, s_sex 
from student
where s_id in (
select s_id
from score
group by s_id
having count(c_id) = 2
)

28 查询男生、女生人数

select  s_sex ,count(s_id ) as count
from student
group by s_sex

29 查询名字中含有"风"字的学生信息

select s_id, s_name, s_birth, s_sex 
from student
where s_name like '%风%'

30 统计同姓的人员名单,打印 姓 人数 姓名

--统计同姓的人员名单,打印 姓 人数 姓名
select substr(s_name,0,1) as first_name, s_name
       ,count(s_name) over(partition by substr(s_name,0,1)) as first_name_count
from student

image.png

31 查询1990年出生的学生名单

select s_id, s_name, s_birth, s_sex 
from student
--where to_char(s_birth,'yyyy') = 1990
where extract(year from s_birth) = 1990

32 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列

--

select c_id, avg(s_score) as avg_score
from score 
group by c_id
order by avg(s_score) desc,c_id

33 查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩

select stu.s_id, s_name, avg_score
from student stu
join 
(select s_id, avg(s_score) as avg_score 
from score
group by s_id
having avg(s_score) >= 85) s
on s.s_id = stu.s_id

34 查询课程名称为"数学",且分数低于60的学生姓名和分数

select stu.s_name, s.s_score 
from score s
join student stu
on s.s_id = stu.s_id
where c_id in (
      select c_id from course where c_name = '数学'
)and s.s_score  < 60

35 查询所有学生的课程及分数情况

Result1 group
select stu.s_id, s_name, s_birth, s_sex 
       ,sum(case when s.c_id = 1 then s.s_score end) as 数学
       ,sum(case when s.c_id = 2 then s.s_score end) as 语文
       ,sum(case when s.c_id = 3 then s.s_score end) as 英语
from student stu
join score s on stu.s_id = s.s_id
join course c on s.c_id = c.c_id
group by stu.s_id, s_name, s_birth, s_sex 
Result2 pivot
with data as (
SELECT *
FROM score
  PIVOT (
    MAX(s_score)
    FOR c_id IN (1 as 数学, 2 as 语文, 3 as 英语)
  )
)

select s.s_name, s.s_birth, s.s_sex ,d.*
from student s
join data d
on s.s_id  = d.s_id

image.png

select stu.s_id, s_name, s_birth, s_sex 
       , coalesce(a.s_score,0) as  数学
       , coalesce(b.s_score,1) as  语文
       , coalesce(c.s_score,2) as  英语
from student stu
left join (select s_id, c_id, s_score from score where c_id = 1) a on a.s_id = stu.s_id
left join (select s_id, c_id, s_score from score where c_id = 2) b on b.s_id = stu.s_id
left join (select s_id, c_id, s_score from score where c_id = 3) c on c.s_id = stu.s_id

36 查询任何一门课程成绩在70分以上的学生姓名、课程名称和分数

--查询任何一门课程成绩在70分以上的学生姓名、课程名称和分数(任何的理解不同)

select s_name, c.c_name  ,s.s_score
from student stu
join (
     select s_id, c_id, s_score 
     ,max(s_score) over(partition by s_id) as max_score
     from score
     ) s
on stu.s_id = s.s_id
and s.max_score > 70 
join course c
on s.c_id = c.c_id

image.png

37 查询课程不及格的学生

--
select stu.s_id, s_name, s_birth, s_sex ,s.s_score
from student stu
join score s
on stu.s_id = s.s_id
and s.s_score < 60 

38 查询课程编号为01且课程成绩在80分以上的学生的学号和姓名


select s_id, s_name, s_birth, s_sex 
from student s
where s_id in(
      select s_id
      from score
      where c_id = 1 and s_score >= 80
)

39 查询每门课程的人数

select c.c_id, c_name, t_id ,count_s 
from course c
join(
     select c_id,count(s_id) as count_s
     from score
     group by c_id
)a
on c.c_id = a.c_id

40 查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩

with cid as (
select c.c_id 
from course c
join teacher t
on c.t_id = t.t_id 
and t.t_name = '张三'

)
select * from (
select 
    s.*,stu.s_name,
    rank() over(order by s_score desc) as rank
from score s
join cid on cid.c_id = s.c_id
join student stu on stu.s_id = s.s_id
) where rank = 1


image.png

41 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩

select s.s_id,stu.s_name,s.c_id,s.s_score 
from score s
join  (
      select s_id
      from score
      group by s_id,s_score 
      having count(c_id  ) > 1
) a
on s.s_id = a.s_id
join student stu
on stu.s_id = s.s_id
order by s.s_id,s.c_id


--严谨一点
select 
      a.s_id,s.s_name,a.c_id,a.s_score
from (
      select
            s_id,c_id,s_score
            ,count(c_id) over(partition by s_id,s_score) as count_score
      from score
)a
join student s
on s.s_id = a.s_id
and count_score > 1

image.png

image.png

select * from score where s_score in(
       select s_score
       from score 
       group by s_score 
       having count(1) > 1
)

42 统计每门课程的前几名

select a.c_id ,c_name ,a.s_id ,s_name ,s_score 
from (
select
  s_id ,c_id ,s_score 
  ,rank() over(partition by c_id order by s_score desc) as rank
  ,row_number() over(partition by c_id order by s_score desc) as rn
from score) a
join student s
on a.rank <=3
and s.s_id = a.s_id
join course c
on c.c_id = a.c_id
order by a.c_id ,c_name ,a.s_id ,s_name ,s_score 


43 统计课程的选课人数,> 5 才统计

--要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
select
  c_id,count(s_id ) as count_s
from score
group by c_id 
having count(s_id ) > 5
order by count(s_id ) desc,c_id

44 查询选修了2门课的sid

select
  s_id
from score
group by s_id 
having count(c_id ) >= 2

45 查询选修了全部课程的学生信息


select * from student
where s_id in (
select
  s_id
from score
group by s_id 
having count(c_id ) = (select count(c_id ) from course)
)

46 求学生周岁

select
  s_name ,s_birth 
  ,trunc(MONTHS_BETWEEN(SYSDATE, s_birth ) / 12)

from student

image.png

47 本周过生日的同学

select
  to_char(
    trunc(sysdate,'IW')
    ,'yyyy-mm-dd')  this_monday
  ,to_char(
    trunc(sysdate,'IW') + 6
    ,'yyyy-mm-dd')  this_sunday
  ,to_char(
    trunc(next_day((sysdate),1)) 
    ,'yyyy-mm-dd') next_fir_day_sun
  ,to_char(
    trunc(next_day((sysdate),'星期日'))
    ,'yyyy-mm-dd')  next_sunday
from dual

image.png

48 下周过生日的同学

select
  *
from student
where s_birth between (trunc(sysdate,'IW') + 7) 
							and (trunc(sysdate,'IW') + 13)

image.png

49 查询本月过生日的同学

select * from student
where extract(month from s_birth) = extract(month from sysdate)

image.png

50 查询12月份过生日的同学

select * from student
where to_char(s_birth ,'mm') = '12'

image.png

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

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

相关文章

[小程序]API、数据与事件

一、API ①事件监听API 以on开头&#xff0c;用来监听事件的触发&#xff08;如wx.inWindowResize&#xff09; ②同步API 以Sync结尾&#xff0c;且可以通过函数返回值获取&#xff0c;执行错误会抛出异常&#xff08;如wx.setStorageSync&#xff09; ③异步API 类似网页中的…

yum下载源,vim使用

文章目录 yum本地配置lzrsz命令行互传scp(远程拷贝)vim yum本地配置 [rootiZf8z3j2ckkap6ypn717msZ ~]# pwd /root [rootiZf8z3j2ckkap6ypn717msZ ~]# ls /etc/yum.repos.d CentOS-Base.repo epel.repo //本地配置源yum会根据/etc/yum.repo.d路径下的配置文件来构成自己的下载…

pip安装之后还是无法使用问题处理

最近由于需要使用到Python 相关功能&#xff0c; 记录下一些入门小技巧 1 python 下载安装 在window10 环境下载免安装版本&#xff0c; 并解压 安装包下载地址&#xff1a; https://www.python.org/ftp/python/3.12.1/python-3.12.1-embed-amd64.zip 2. 安装pip, 由于是内嵌…

基于无锁循环队列的线程池的实现

目录 出处&#xff1a;B站码出名企路 应用场景 设计实现 等待策略模块 晚绑定 C 中的 override关键字 C中的 default 关键字 C中的 delete 关键字 C中的 explicit 关键字 C中 using 别名技巧 sleep 和 yield的区别 noexcept关键字 volatile关键字 无锁循环队列的…

【计算机网络】TCP握手与挥手:三步奏和四步曲

这里写目录标题 前言三次握手四次挥手三次握手和四次挥手的作用TCP三次握手的作用建立连接防止已失效的连接请求建立连接防止重复连接 TCP四次挥手的作用&#xff1a;安全关闭连接避免数据丢失避免半开连接 总结&#xff1a; 总结 前言 TCP&#xff08;传输控制协议&#xff09…

《游戏-02_2D-开发》

基于《游戏-01_2D-开发》&#xff0c; 继续制作游戏&#xff1a; 首先给人物添加一个2D重力效果 在编辑的项目设置中&#xff0c; 可以看出unity默认给的2D重力数值是-9.81&#xff0c;模拟现实社会中的重力效果 下方可以设置帧率 而Gravity Scale代表 这个数值会 * 重力 还…

MySQL---多表等级查询综合练习

创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT 员工编号, ename VARCHAR(10) COMMENT 员工名字, job VARCHAR(10) COMMENT 职位, mgr INT(4) COMMENT 上司, hiredate DATE COMMENT 入职时间, sal INT(7) COMMENT 基本工资, comm INT(7) COMMENT 补贴, deptno INT…

【cucumber】cluecumber-report-plugin生成测试报告

cluecumber为生成测试报告的第三方插件&#xff0c;可以生成html测报&#xff0c;该测报生成需以本地json测报的生成为基础。 所以需要在测试开始主文件标签CucumberOptions中&#xff0c;写入生成json报告。 2. pom xml文件中加入插件 <!-- 根据 cucumber json文件 美化测…

使用docker配置semantic slam

一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:16.04拉取的为ununtu16版本镜像&#xff0c;环境十分干净&#xff0c;可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image&#xff0c;可以使用指令 sudo docker rmi -f <id&g…

【深度学习目标检测】十七、基于深度学习的洋葱检测系统-含GUI和源码(python,yolov8)

使用AI实现洋葱检测对农业具有以下意义&#xff1a; 提高效率&#xff1a;AI技术可以快速、准确地检测出洋葱中的缺陷和问题&#xff0c;从而提高了检测效率&#xff0c;减少了人工检测的时间和人力成本。提高准确性&#xff1a;AI技术通过大量的数据学习和分析&#xff0c;能够…

【面试】java并发编程面试题

java并发编程面试题 何为进程?何为线程?JVM拓展为什么程序计数器、虚拟机栈和本地方法栈是线程私有的呢&#xff1f;为什么堆和方法区是线程共享的呢虚拟机栈和本地方法栈为什么是私有的?一句话简单了解堆和方法区单核 CPU 上运行多个线程效率一定会高吗&#xff1f;创建线程…

【机组】存储器、总线及堆栈寄存器实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​目录 &#x1f33a;一、 实验目的 …

【力扣hot100】二分查找

文章目录 Arrays.sort()时间复杂度o(n)二分法时间复杂度o(logn) 1.搜索插入位置代码 2. 搜索二维矩阵思路&#xff1a;代码&#xff1a; 34. 在排序数组中查找元素的第一个和最后一个位置思路&#xff1a;代码&#xff1a; 153. 寻找旋转排序数组中的最小值思路&#xff1a;代码…

5.2 基于深度学习和先验状态的实时指纹室内定位

文献来源 Nabati M, Ghorashi S A. A real-time fingerprint-based indoor positioning using deep learning and preceding states[J]. Expert Systems with Applications, 2023, 213: 118889.&#xff08;5.2_基于指纹的实时室内定位&#xff0c;使用深度学习和前一状态&…

从零开始的OpenGL光栅化渲染器构建3-法线贴图和视差贴图

前言 我们可以用一张纹理贴图来表现物体表面的基础反射颜色&#xff0c;也可以用一张镜面反射贴图&#xff0c;来指派表面是否产生高光。除此之外&#xff0c;我们可以用贴图来存储表面的法线信息&#xff0c;以及高度信息&#xff0c;从而让渲染效果更加精细。 法线贴图 我…

linux下USB抓包和分析流程

linux下USB抓包和分析流程 在windows下抓取usb包时可以通过wireshark安装时安装USBpcap来实现usb抓包&#xff0c;linux下如何操作呢&#xff1f; 是基于usbmon&#xff0c;本博客简单描述基于usbmon在linux系统上对通过usb口进行发送和接收的数据的抓包流程&#xff0c;分别描…

Matplotlib Mastery: 从基础到高级的数据可视化指南【第30篇—python:数据可视化】

文章目录 Matplotlib: 强大的数据可视化工具1. 基础1.1 安装Matplotlib1.2 创建第一个简单的图表1.3 图表的基本组件&#xff1a;标题、轴标签、图例 2. 常见图表类型2.1 折线图2.2 散点图2.3 条形图2.4 直方图 3. 图表样式与定制3.1 颜色、线型、标记的定制3.2 背景样式与颜色…

Linux:使用for+find查找文件并cp到其他目录,文件名带有空格

一、场景描述 在终端窗口中&#xff0c;用shell命令&#xff0c;批量拷贝文件到指定目录。 我是在Windows系统上&#xff0c;通过git bash终端来执行shell命令的。 二、实现过程 命令1 for filepath in find /d/LearningMaterials/数学/数学/高中/一数/偏基础&#xff08;基…

Zabbix分布式监控系统概述、部署、自定义监控项、邮件告警

目录 前言 &#xff08;一&#xff09;业务架构 &#xff08;二&#xff09;运维架构 一、Zabbix分布式监控平台 &#xff08;一&#xff09;Zabbix概述 &#xff08;二&#xff09;Zabbix监控原理 &#xff08;三&#xff09;Zabbix 6.0 新特性 1. Zabbix server高可用…

用BEVformer来卷自动驾驶-4

书接前文 前文链接&#xff1a;用BEVformer来卷自动驾驶-3 (qq.com) 上文书介绍了BEVformer是个啥&#xff0c;以及怎么实现Deformable-attention 我们继续 BEVformer的输入数据格式&#xff1a; 输入张量&#xff08;batachsize&#xff0c;queue&#xff0c;cam&#xff0c;…