山东大学软件学院数据库实验1-9(全部)

news2024/9/23 5:33:00

目录

前言

实验代码

实验一

1-1

1-2 

1-3 

1-4 

1-5 

1-6 

实验二

2-1

 2-2

2-3 

2-4

2-5 

2-6

2-7

2-8

2-9

2-10

实验三 

3-1

3-2

3-3

3-4

3-5

3-6

3-7

3-8

3-9

3-10

实验四 

4-1

4-2

4-3

4-4

4-5

4-6

4-7

4-8

4-9

4-10

实验五 

5-1

5-2

5-3

5-4

5-5

5-6

5-7

5-8

5-9

5-10

实验六 

6-1

6-2

6-3

6-4

6-5

6-6

6-7

6-8

6-9

6-10

 实验七

7-1

7-2

7-3

7-4

7-5

实验八 

实验九 

9-1

9-2

更详细题目讲解


前言

这个是2023年山东大学软件学院数据库实验,使用的数据库管理系统为oracle

实验代码全部通过,并且已经拿到满分,但是还是希望学弟学妹们能够参考着去完成自己的实验,而不是直接copy。因为完成实验能够大大提高我们写sql的能力,这可不是看看书能比的哦!

2024年甚至更远的未来的同学们参考时要留一个心眼,因为每一年实验的题目都会有一点点的变化,要仔细阅读题目要求。

实验代码

实验一

1-1

create table test1_student(
       sid char(12) not null,
       name varchar(10) not null,
       sex char(2),
       age int,
       birthday date,
       dname varchar(30),
       class varchar(10)
);

1-2 

create table test1_course(
       cid char(6) not null,
       name varchar(40) not null,
       fcid char(6),
      credit numeric(4,1)
)

1-3 

create table test1_student_course(
      sid char(12) not null,
      cid char(6) not null,
      score numeric(5,1),
      tid char(6),
      sctime date
);

1-4 

insert into test1_student values('201800020101','王欣','女',21,to_date('19940202','yyyymmdd'),'计算机学院','2010');
 
insert into test1_student values('201800020102','李华','女',20,to_date('19950303','yyyymmdd'),'软件学院','2009');

1-5 

insert into test1_course values('800001','数据结构',null,2);
insert into test1_course values('800002','数据库',800001,2.5)

1-6 

insert into test1_student_course values
     ('201800020101','300001',91.5,'200101',
      to_date(' 2009-07-15 09:09:09','yyyy-mm-dd hh24-mi-ss'));
 
insert into test1_student_course values
     ('201800020101','300002',92.6,'200102',
      to_date(' 2009-07-15 10:10:10','yyyy-mm-dd hh24-mi-ss'));

实验二

2-1

create view test2_01 as
  select sid,name
  from pub.student
  where sid not in
  (
    select distinct sid
    from pub.student_course
  )

 2-2

create view test2_02 as
  select sid,name
  from pub.student
  where sid in
  (
    select sid
    from pub.student_course
    where cid in
      (
        select cid
        from pub.student_course
        where sid='200900130417'
      )
  )
  minus
  (
    select sid, name
		from pub.student
		where sid ='200900130417'
  )

2-3 

create view test2_03 as
  select sid,name
  from pub.student
  where sid in
  (
    select sid
    from pub.student_course
    where cid in
    (
       select cid
       from pub.course
       where fcid='300002'
    )
  )

2-4

create view test2_04 as
  select sid,name
  from pub.student
  where sid in
  (
    (
      select sid
      from pub.student_course
      where cid=(
        select cid
        from pub.course
        where name='操作系统'
      )
    )
    intersect
    (
      select sid
      from pub.student_course
      where cid=(
        select cid
        from pub.course
        where name='数据结构'
      )
    )
    minus
    (
      select sid
      from pub.student_course
      where cid=(
        select cid
        from pub.course
        where name='程序设计语言'
      )
    )
  )

2-5 

create view test2_05 as
  select sid,cid,name,score
  from pub.student_course natural join pub.course
  where sid in
  (
    select sid
    from pub.student
    where name='李龙'
  )

2-6

create view test2_06 as
  select sid,name,score
  from pub.student_course natural join pub.student
  where class='2010' and dname='计算机科学与技术学院' and cid=(
    select cid
    from pub.course
    where name='操作系统'
  )

2-7

create view test2_07 as
select sid,name
from pub.student
where name not like '张%'
and name not like '李%'
and name not like '王%'

2-8

create view test2_08 as
select cid,name
from pub.course
where fcid in(
  select cid
  from pub.course
  where fcid is not null
)

2-9

create view test2_09 as
select sid,name,score
from pub.student_course natural join pub.student
where cid='300003'

2-10

create view test2_10 as
select sid,name
from pub.student
where not exists(
  select cid
  from pub.course
  where not exists(
    select *
    from pub.student_course
    where pub.student_course.sid=pub.student.sid and pub.student_course.cid=pub.course.cid
  )
)

实验三 

3-1

create table test3_01 as
	select *
	from pub.student_31
delete from test3_01
where sid not in
	(select sid
	from test3_01
	where regexp_like(sid, '^[0-9]+$')) --检验字符串是否是全数字

3-2

create table test3_02 as
	select *
	from pub.student_31
delete from test3_02
where age <> 2012 - extract(year from birthday)

3-3

create table test3_03 as
	select *
	from pub.student_31

delete from test3_03
where sex <> '男' and sex <> '女' and sex is not null

3-4

create table test3_04 as
	select *
	from pub.student_31
delete from test3_04 
where dname like '% %' or
dname is null or
length(dname) < 3

3-5

create table test3_05 as
	select *
	from pub.student_31
delete
from test3_05
where class not in
	(select class
	from test3_05
	where regexp_like(class, '^[0-9]+$'))

3-6

create table test3_06 as
	select *
	from pub.student_31
delete
from test3_06
where not regexp_like(sid, '^[0-9]+$')
or age <> 2012 - extract(year from birthday)
or name like '% %'
or length(name) < 2
or sex in
	(select distinct sex
	from test3_06
	where sex <> '男'
		and sex <> '女'
		and sex is not null)
or dname like '% %'
or dname is null
or length(dname) < 3
or class not in
	(select class
	from test3_05
	where regexp_like(class, '^[0-9]+$'))

3-7

create table test3_07 as
	select *
	from pub.student_course_32
delete 
from test3_07
where sid not in(
  select sid
  from pub.student
)

3-8

create table test3_08 as
	select *
	from pub.student_course_32
delete 
from test3_08 T
where not exists(
  select cid, tid
  from pub.teacher_course A
  where T.cid=A.cid and T.tid=A.tid
)

3-9

create table test3_09 as
	select *
	from pub.student_course_32
delete
from test3_09
where score not between 0 and 100

3-10

create table test3_10 as
	select *
	from pub.student_course_32
delete
from test3_10 S
where sid not in
	(select sid
	from pub.student)
or cid not in
	(select cid
	from pub.course)
or tid not in
	(select tid
	from pub.teacher)
or not exists
	(select cid, tid
	from pub.teacher_course T
	where S.cid = T.cid
	and S.tid = T.tid)
or score not between 0 and 100

实验四 

4-1

create table test4_01 as
  select * from pub.student_41
 
alter table test4_01
  add sum_score int
 
update test4_01 S
  set sum_score=(
    select sum(score)
    from pub.student_course T
    where S.sid=T.sid
  )

4-2

create table test4_02 as
  select * from pub.student_41
 
alter table test4_02
  add avg_score numeric(3,1)
 
update test4_02 S
  set avg_score=(
    select avg(score)
    from pub.student_course T
    where S.sid=T.sid
  )

4-3

create table test4_03 as
  select * from pub.student_41
 
alter table test4_03
  add sum_credit int
 
update test4_03 S
  set sum_credit=(
    select sum(credit)
    from pub.course
    where cid in(
      select distinct cid
      from pub.student_course SC
      where S.sid=SC.sid
      and SC.score>=60
    )
  )

4-4

create table test4_04 as
  select * from pub.student_41
 
update test4_04 T
set dname=(
  select did
  from pub.department D
  where T.dname=D.dname
)
where T.dname in(
  select dname
  from pub.department
)

4-5

create table test4_05 as
  select * from pub.student_41
 
alter table test4_05 
  add sum_score int
 
alter table test4_05 
  add avg_score numeric(3, 1)
 
alter table test4_05 
  add sum_credit int
 
alter table test4_05 
  add did varchar(2)
update test4_05 T
set 
  sum_score=(
    select sum(score)
  	from pub.student_course SC
  	where T.sid = SC.sid
  ),
  avg_score=(
    select avg(score)
    from pub.student_course SC
    where T.sid=SC.sid
  ),
  sum_credit=(
    select sum(credit)
    from pub.course
    where cid in(
      select distinct cid
      from pub.student_course SC
      where T.sid=SC.sid
      and SC.score>=60
      )
   )
 
update test4_05 T
set did=(
    select did
    from (
      select did,dname
      from pub.department
    union
      select did,dname
      from pub.department_41
    ) department
    where T.dname=department.dname
  )
 
update test4_05
set did='00'
where did is null;

4-6

create table test4_06 as
  select * from pub.student_42
update test4_06
set name=replace(name,' ','')

4-7

create table test4_07 as
  select * from pub.student_42

update test4_07
set sex= replace( sex,' ','')
 
update test4_07
set sex= replace( sex,'性','')

4-8

create table test4_08 as
  select * from pub.student_42

update test4_08
set class=replace(class,'级','');

4-9

create table test4_09 as
  select * from pub.student_42

update test4_09 T
set age=(
  select 2012-extract (year from birthday)
  from test4_09 S
  where T.sid=S.sid
  )
where T.age is null;

4-10

create table test4_10 as
select *
from pub.student_42;
 
update test4_10
set name=replace(name,' ','');
 
update test4_10
set dname=replace(dname,' ','');
 
update test4_10
 set age=(
select (2012-extract (year from birthday))
from pub.student_42
where test4_10.sid=sid
)
where test4_10.age is null;
 
update test4_10
set sex= replace( sex,' ','');
update test4_07
set sex= replace( sex,'性','');
 
update test4_10
set class=replace(class,'级','');

实验五 

5-1

create table test5_01(
  First_name varchar(4),
  frequency numeric(4)
)
insert into test5_01(
  select substr(name,2),count(*)
  from pub.student
  group by substr(name,2)
)

5-2

create table test5_02(
  letter varchar(4),
  frequency numeric(4)
)
insert into test5_02(
  select letter,count(*)
  from(
    (
      select substr(name,2,1) letter
      from pub.student
    )
    union all
    (
    select substr(name,3,1) letter
    from pub.student
    where substr(name,3,1) is not null
    )
  )
  group by letter
)

5-3

create table test5_03
(
    dname varchar2(30),
    class varchar(10),
    p_count1 int,
    p_count2 int,
    p_count int
)
insert into test5_03(dname,class,p_count)(
  select dname,class,count(sid)
  from pub.student
  where dname is not null
  group by dname,class
)
update test5_03 t
  set p_count1=(
    select count(sid)
    from(
      select S.sid,S.dname,S.class
      from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
      where S.sid = SC.sid and C.cid=SC.cid and SC.max_score >= 60
      group by S.sid,S.dname,S.class
      having sum(C.credit)>=10
    )a
    where t.dname=a.dname
    and t.class=a.class
  )
update test5_03 t
  set p_count2=(
    select count(sid)
    from(
      (
        select S.dname,S.class,S.sid
        from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
        where SC.sid=S.sid
        and SC.cid=C.cid
        and SC.max_score>=60
        group by S.dname,S.class,S.sid
        having sum(C.credit)<10
      ) 
    union
      (
        select dname,class,sid
        from pub.student
        where sid not in(
            select sid
            from pub.student_course
          )
      )
    )a
    where t.dname=a.dname
    and t.class=a.class
  )

5-4

create table test5_04 
(
    dname varchar2(30),
    class varchar(10),
    p_count1 int,
    p_count2 int,
    p_count int
)
update test5_04 t set p_count1 = 
(select count(sid)
from 
(
	(select S.sid,S.dname,S.class
	from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
	where S.sid = SC.sid and C.cid=SC.cid and SC.max_score >= 60 and S.class > 2008
	group by S.sid,S.dname,S.class
	having sum(C.credit) >= 10) 
	union
    (select S.sid,S.dname,S.class
	from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
	where S.sid = SC.sid and C.cid=SC.cid and SC.max_score >= 60 and S.class <= 2008
	group by S.sid,S.dname,S.class
	having sum(C.credit) >= 8)
) temp
where t.dname = temp.dname and t.class  = temp.class)
update test5_04 t set p_count2 = 
(
	select count(sid)
	from 
	(
		(select S.sid,S.dname,S.class
		from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
		where S.sid = SC.sid and C.cid=SC.cid and SC.max_score >= 60 and S.class > 2008
		group by S.sid,S.dname,S.class
		having sum(C.credit) < 10) 
		union 
        (select S.sid,S.dname,S.class
		from pub.student S,pub.course C,(
            SELECT sid, cid, MAX(score) AS max_score
            FROM pub.student_course
            GROUP BY sid, cid
        ) SC
		where S.sid = SC.sid and C.cid=SC.cid and SC.max_score >= 60 and S.class <= 2008
		group by S.sid,S.dname,S.class
		having sum(C.credit) < 8) 
		union
		(
			select sid,dname,class 
			from pub.student 
			where sid 
			not in
			(
				select sid 
				from pub.student_course
			)
		)
) temp
where t.dname = temp.dname and t.class  = temp.class)

5-5

create view test5_05 as (
select *
from
  (
    select S.dname,round(avg(SC.max_score)) avg_ds_score
    from pub.student S,pub.course C,(
      select sid,cid,max(score) max_score
      from pub.student_course
      group by sid,cid
    )SC
    where S.sid=SC.sid and C.cid=SC.cid and C.name='数据结构' and S.dname is not null
    group by S.dname
  )
  natural full outer join
  (
    select S.dname,round(avg(SC.max_score)) avg_os_score
    from pub.student S,pub.course C,(
      select sid,cid,max(score) max_score
      from pub.student_course
      group by sid,cid
    )SC
    where S.sid=SC.sid and C.cid=SC.cid and C.name='操作系统' and S.dname is not null
    group by S.dname
  )
)

5-6

create view test5_06 as (
select *
from
  (
    select S.sid,S.name,S.dname,SC.max_score ds_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='数据结构' and S.sid in(
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='数据结构'
      )
      intersect
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='操作系统'
      )
    )
  )
  natural full outer join
  (
    select S.sid,S.name,S.dname,SC.max_score os_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='操作系统' and S.sid in(
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='数据结构'
      )
      intersect
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='操作系统'
      )
    )
  )
)

5-7

create view test5_07 as (
select *
from
  (
    select S.sid,S.name,S.dname,SC.max_score ds_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='数据结构' and S.sid in(
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='数据结构'
      )
      union
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='操作系统'
      )
    )
  )
  natural full outer join
  (
    select S.sid,S.name,S.dname,SC.max_score os_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='操作系统' and S.sid in(
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='数据结构'
      )
      union
      (
        select sid
        from pub.student_course SC,pub.course C
        where C.cid=SC.cid and C.name='操作系统'
      )
    )
  )
)

5-8

create view test5_08 as (
select *
from
  (
    select S.sid,S.name,S.dname,SC.max_score ds_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='数据结构' 
  )
  natural full outer join
  (
    select S.sid,S.name,S.dname,SC.max_score os_score
    from pub.student S,pub.course C,(
          select sid,cid,max(score) max_score
          from pub.student_course
          group by sid,cid
        )SC
    where S.sid=SC.sid and C.cid=SC.cid and S.dname='计算机科学与技术学院' and C.name='操作系统'
  )
  natural full outer join
  (
  select S.sid,S.name,S.dname
  from pub.student S
  where S.dname = '计算机科学与技术学院' and S.sid not in (select S.sid from pub.student S,pub.course C,pub.student_course SC where S.sid = SC.sid and C.cid = SC.cid and (C.name = '数据结构' or C.name = '操作系统'))
  ) 
)

5-9

create view test5_09 as
with temp as(
  select SC.sid,SC.score
  from pub.student_course SC
  where SC.score>=60
)
select temp.score,count(sid) count1,
  (select count(sid) from temp) count0,
  (round(count(sid)/(select count(sid) from temp),4)*100) percentage
from temp
group by score

5-10

create or replace view test5_10 as
with temp as (
  select score, sid, cid
  from pub.student_course
  where score >= 60 and score <= 149
)
select
  sc.cid,
  c.name as cname,
  to_char(trunc(sc.score, -1), 'fm000') || '-' || to_char(trunc(sc.score, -1) + 9, 'fm000') as score,
  count(*) as count1,
  (select count(*)
   from temp
   where temp.cid = sc.cid) as count0,
  (round(count(sid)/(select count(*)
   from temp
   where temp.cid = sc.cid),4)*100) as percentage
from
  pub.course c,
  temp sc
where
  c.cid = sc.cid
group by
  sc.cid,
  c.name,
  to_char(trunc(sc.score, -1), 'fm000') || '-' || to_char(trunc(sc.score, -1) + 9, 'fm000');

实验六 

6-1

create or replace view test6_01 as
select S.sid,S.name,S.dname
from pub.student S
where S.age<20 and
S.dname='物理学院'
order by S.sid

6-2

create or replace view test6_02 as
select S.sid,S.name,sum(SC.score) sum_score
from pub.student S left outer join pub.student_course SC
on S.sid=SC.sid
where S.dname='软件学院' and
  S.class=2009
group by S.sid,S.name

6-3

create or replace view test6_03 as
select*
from
(
  select C.cid,C.name,max(SC.max_score) max_score
  from pub.course C left outer join 
    (select sid,cid,max(score) max_score
     from pub.student_course
     group by sid,cid
    )SC
  on C.cid=SC.cid
  group by C.cid,C.name
) 
natural full outer join
(
  select SC.cid,count(sid) max_score_count
  from (select sid,cid,max(score) max_score
     from pub.student_course
     group by sid,cid
    )SC
  group by SC.cid,SC.max_score
  having (SC.max_score=(select max(score) 
                   from pub.student_course temp
                   where SC.cid=temp.cid)
    )
)

6-4

create or replace view test6_04 as
select SC.sid,S.name
from pub.student_course SC,pub.student S,pub.course C
where SC.sid=S.sid and SC.cid=C.cid
and SC.score>=60 and (C.name='操作系统' or C.name='数据结构')
and S.sex='男' and (SC.sid not in(
  select SC.sid
  from pub.student_course SC,pub.course C
  where SC.cid=C.cid and
  C.name='程序设计语言' and
  SC.score>=60)
  )

6-5

create or replace view test6_05 as
select S.sid sid,S.name name,round(avg(score),0) avg_score,round(sum(score),0) sum_score
from pub.student S,pub.student_course SC
where S.sid=SC.sid and S.age=20
group by S.sid,S.name

6-6

create or replace view test6_06 as
select S.sid,S.name
from pub.student S,pub.student_course SC
where S.sid=SC.sid and
SC.score<60
group by S.sid,S.name,SC.cid
having (count(*)>=2)

6-7

create or replace view test6_07 as
select distinct S.sid,S.name
from pub.student S,pub.student_course SC
where S.sid=SC.sid and S.sid in(
  select sid
  from pub.student_course SC
  where not exists(
    select cid
    from pub.course C
    minus
    select cid
    from pub.student_course Temp
    where Temp.sid=SC.sid
  )
) and S.sid not in(
  select sid
  from pub.student_course SC
  where SC.score<60
)

6-8

create or replace view test6_08 as
with T as(
    select sid, cid, MAX(score) AS max_score
    from pub.student_course
    group by sid, cid
) 
select distinct S.sid,S.name
from pub.student S,T SC
where S.sid=SC.sid and S.sid in(
  select sid
  from T SC
  where not exists(
    select cid
    from pub.course C
    minus
    select cid
    from T Temp
    where Temp.sid=SC.sid
  )
) and S.sid not in(
  select sid
  from T SC
  where SC.max_score<60
)

6-9

create or replace view test6_09 as
select S.sid,S.name,sum(C.credit) sum_credit
from pub.student_course SC,pub.student S,pub.course C
where SC.cid=C.cid and SC.sid=S.sid
and S.dname='化学与化工学院'
and S.class=2010 and SC.score>=60
group by S.sid,S.name

6-10

create or replace view test6_10 as
select substr(S.name,1,1) second_name,count(*) p_count
from pub.student S
group by substr(S.name,1,1)

 实验七

7-1

create table test7_01 as
select S.sid, S.name, S.birthday
from pub.student S
create index test7_01_index  on test7_01 (substr(name,1,1))

7-2

create table test7_02 as
select sid,name,birthday from pub.student;
update test7_02
set birthday=to_date('19881018','yyyymmdd')
where substr(sid,12,1)='0'
create index test7_02_index on test7_02 (birthday,name)

7-3

create view test7_03 as 
select * from
(select sid,name,birthday,
(select count(*) from pub.student
where name like substr(t1.name,1,1)||'%'
) samefirstname 
from pub.student_testindex t1)   
where samefirstname=7

7-4

create view test7_04 as
select * from 
(select sid,name,birthday,
  (select count(*) from pub.student
   where birthday >= trunc(t1.birthday,'mm') and birthday <=last_day(t1.birthday)
  ) sameyearmonth,
  (select count(*) from pub.student 
   where birthday >= trunc(t1.birthday,'YYYY') and birthday <= last_day(add_months(trunc(t1.birthday,'yyyy'),11))
  ) sameyear
from pub.student_testindex t1
) 
where sameyearmonth=35

7-5

create view test7_05 as 
select * from 
(select sid,name,birthday,
(select count(*) from pub.student 
  
where birthday=t1.birthday+1
  
) nextbirthday
from pub.student_testindex t1) where nextbirthday=7

实验八 

create table test8_10(
  test varchar(20),
  age numeric(3)
)
insert all 
  into test8_10 values ('结果1', 88)
  into test8_10 values ('结果2', 90)
  into test8_10 values ('结果3', 90)
  into test8_10 values ('结果4', 86)
  into test8_10 values ('结果5', 90)
  into test8_10 values ('结果6', 90)
  into test8_10 values ('结果7', 86)
  into test8_10 values ('结果8', 86)
  into test8_10 values ('结果9', 76)
  into test8_10 values ('结果10', 86)
select * from dual

实验九 

9-1

create table test9_01(
sid char(12) not null ,
name varchar2(10) not null,
sex char(2), 
age int, 
birthday date,
dname varchar2(30), 
class varchar2(10) 
);
create index suoyin on test9_01(sid)
insert into test9_01(
  select *
  from pub.student
  where sex='女'
)
insert into test9_01(
  select *
  from pub.student_11_1
  where sex='女' and sid not in(
    select distinct sid
    from pub.student
    where sex='女'
  )
)
insert into test9_01(
  select *
  from pub.student_11_2
  where sex='女' and sid not in(
    select distinct sid
    from test9_01
  )
)

9-2

create table test9_02(
sid char(12) not null ,
name varchar2(10) not null,
sex char(2), 
age int, 
birthday date,
dname varchar2(30), 
class varchar2(10) 
);
create index suoyin1 on test9_02(sid)
insert into test9_02
(
select * from pub.student 
where  sex='女' and
sid in (select distinct sid from pub.student_course where score<60)
);
insert into test9_02
(
select * from pub.student_11_1 
where  sex='女' 
and sid not in (select distinct sid from test9_02)
and sid in (select distinct sid from pub.student_course where score<60)
);
insert into test9_02
(
select * from pub.student_11_2 
where  sex='女' 
and  sid not in (select distinct sid from test9_02)
and sid in (select distinct sid from pub.student_course where score<60)
);

更详细题目讲解

数据库SQL语言实战(二)-CSDN博客

数据库SQL语言实战(三)-CSDN博客

数据库SQL语言实战(四)(数据库系统概念第三章练习题)-CSDN博客

数据库SQL语言实战(五)(数据库系统概念第三章练习题)_数据库系统概括第三章sql语句数据练习-CSDN博客

 数据库SQL语言实战(六)-CSDN博客

数据库SQL语言实战(七)-CSDN博客

数据库SQL语言实战(八)-CSDN博客

数据库SQL语言实战(九)(索引)-CSDN博客

数据库SQL语言实战(十)(最后一篇)-CSDN博客

1、基本对应实验,从实验二开始 

2、中间有几篇是老师布置的作业题

 

 总结 

本文的所有题目均来自《数据库系统概念》(黑宝书)、山东大学数据库实验一到九。不可用于商业用途转发。

如果能帮助到大家,大家可以点点赞、收收藏呀~ 

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

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

相关文章

CSRF跨站请求伪造实战

目录 一、定义 二、与XSS的区别 三、攻击要点 四、实战 一、定义 CSRF (Cross-site request forgery&#xff0c;跨站请求伪造)&#xff0c;攻击者利用服务器对用户的信任&#xff0c;从而欺骗受害者去服务器上执行受害者不知情的请求。在CSRF的攻击场景中&#xff0c;攻击…

移动云以深度融合之服务,令“大”智慧贯穿云端

移动云助力大模型&#xff0c;开拓创新领未来。 云计算——AI模型的推动器。 当前人工智能技术发展的现状和趋势&#xff0c;以及中国在人工智能领域的发展策略和成就。确实&#xff0c;以 ChatGPT 为代表的大型语言模型在自然语言处理、文本生成、对话系统等领域取得了显著的…

等价关系、偏序关系与哈斯图

一、等价关系的定义 设R是集合A上的一个二元关系&#xff0c;如果R满足自反性、对称性和传递性&#xff0c;则称R是一个等价关系。 二、等价类和商集 哪些元素有关系&#xff0c;就构成一个等价类。 所有等价类构成的集合就是商集。 集合的划分&#xff1a;就是对集合中的元…

Liunx系统中修改文件的创建时间以及访问时间

在Linux系统中&#xff0c;可以使用touch命令来修改文件的时间戳。以下是一些常用的touch命令选项&#xff1a; &#xff08;其实在MacOS中也适用&#xff09; 修改访问时间&#xff08;Access Time&#xff09;和修改时间&#xff08;Modification Time&#xff09;&#xf…

【代码随想录】动态规划经典题

前言 更详细的在大佬的代码随想录 (programmercarl.com) 本系列仅是简洁版笔记&#xff0c;为了之后方便观看 做题步骤 含义公式初始化顺序检查 确定dp数组以及下标的含义递推公式dp数组如何初始化遍历顺序打印dp数组&#xff08;看哪里有问题&#xff09; 斐波那契数 c…

百亿级流量红包系统,如何做架构?(字节面试真题)

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的架构类/设计类的场景题&#xff1a; 1.如何设计高并发红包系统 &#xff0…

Linux 编译器gcc/g++使用

gcc/g同理 编译器运行过程 1. 预处理&#xff08;进行宏替换) gcc -E a.c -o a.i 预处理后还是c语言 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 告诉gcc&#xff0c;从现在开始进行程序的翻译&#xff0c;将预处理工作做完停下 2. 编译&#x…

电缆厂可视化:提升生产透明度与运营效率

图扑电缆厂可视化系统通过实时监控和数据分析&#xff0c;提高生产过程的透明度和可控性&#xff0c;优化资源配置和质量管理&#xff0c;显著提升运营效率和产品质量。

力扣739. 每日温度

Problem: 739. 每日温度 文章目录 题目描述思路复杂度Code 题目描述 思路 若本题目使用暴力法则会超时&#xff0c;故而使用单调栈解决&#xff1a; 1.创建结果数组res&#xff0c;和单调栈stack&#xff1b; 2.循环遍历数组temperatures&#xff1a; 2.1.若当stack不为空同时…

如何使用ssh将vscode 连接到服务器上,手把手指导

一、背景 我们在开发时&#xff0c;经常是window上安装一个vscode编辑器&#xff0c;去连接一个虚拟机上的linux&#xff0c;这里常用的是SSH协议&#xff0c;了解其中的操作非常必要。 二、SSH协议 SSH&#xff08;Secure Shell&#xff09;是一种安全协议&#xff0c;用于…

贝叶斯算法:机器学习中的“黄金法则”与性能提升之道

&#x1f440;传送门&#x1f440; &#x1f50d;机器学习概述&#x1f340;贝叶斯算法原理&#x1f680;贝叶斯算法的应用✨文本分类✨医疗系统 &#x1f496;贝叶斯算法优化✨贝叶斯算法优化的主要步骤✨贝叶斯算法优化的优点✨贝叶斯算法优化的局限性 &#x1f697;贝叶斯算…

【OceanBase诊断调优】—— 排查 IO 问题的方法

本文主要介绍 OceanBase 数据库 V4.x 版本中排查 IO 问题的方法以及 IO 相关的日志和视图。 IO 相关问题 -4013 内存爆、IoControl 模块内存泄漏 目前 IO 内存爆可能的原因如下&#xff0c;及相应的排查方法。 其他模块使用 IO 内存后未释放导致泄漏。 日志分析。 通过关键词…

kubectl自动补全插件

1. 安装bash completion yum install -y bash-completion 2. 修改配置补全脚本 在文件 ~/.bashrc 中导入(source)补全脚本: echo source <(kubectl completion bash) >> ~/.bashrc 将补全脚本添加到目录 /etc/bash_completion.d中: kubectl completion bash >…

vivado 设计连接性

设计连接性 IP集成商提供设计师协助&#xff0c;帮助您完成连接过程 设计。图3显示了MHS的一个示例&#xff0c;图4显示了设计帮助 可在IP集成商中获得 地址映射 在XPS中&#xff0c;无论主机访问从机IP&#xff0c;每个从机都有相同的地址。IP integrator为基于master的寻址提…

Wpf 使用 Prism 实战开发Day25

首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 1.AddMemoViewModel 逻辑处理类&#xff0c;添加View视图数据要绑定的实体类 Model public class AddMemoViewModel :BindableBase,IDialogHostAware{public AddMemoV…

基于信号分解方法的机械故障诊断方法存在的问题

一方面&#xff0c;由于结构共振、测试噪声的干扰&#xff0c;为了确保分解精度&#xff0c;需要给定准确的参数初值(例如&#xff0c;瞬时频率)。研究人员通常认为零部件特征频率与通过传动比和驱动转速计算的理论值基本吻合&#xff0c;并基于理论值设置参数初值。事实上&…

matlab使用教程(78)—控制颜色图范围

1.控制颜色图范围 对于您创建的许多类型的可视化图形&#xff0c;MATLAB 默认将完整的数据范围映射到颜色图上。数据中的最小值映射到颜色图中的第一行&#xff0c;最大值映射到颜色图中的最后一行。所有中间值线性映射到颜色图的中间行。 这种默认映射适用于大部分情况&#x…

网络安全从入门到精通(特别篇I):应急响应之不同平台后门排查思路

Windows-后门-常规&权限维持&内存马 Linux-后门-常规&权限维持&Rootkit&内存马 Windows实验 1、常规MSF后门-分析检测 2、权限维持后门-分析检测 3、Web程序内存马-分析检测 常见工具集合: https://mp.weixin.qq.com/s/L3Lv06bFdUX_ZE4rS69aDg 常规…

【知识拓展】LocalTunnel-高性价比的内网穿透工具(2)

前言 上一篇通过ngrok进行内网穿透&#xff0c;有几个问题&#xff1a; ①需要注册&#xff0c;而且注册需要科学上网&#xff0c;相对麻烦 ②安装配置相对麻烦&#xff0c;authtoekn有限制 上述相对&#xff0c;指的是在非生产环境中做一个简单内网穿透&#xff0c;相对于…

京东应届生公司内网说了一句‘什么时候被pdd收购‘,结果惨遭辞退

京东应届生公司内网说了一句’什么时候被pdd收购’&#xff0c;结果惨遭公司开除 这个事最近在圈子讨论比较多 前二天&#xff0c;有一个上海交大毕业的应届生&#xff0c;在京东实习了9个月&#xff0c;好不容易转正12天后&#xff0c;只因在内网说了一句话&#xff0c;就被…