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

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

时间:2024-05-26 21:29:58浏览次数:30  
标签:cid 数据库 pub student sid SC 软件 山东大学 select

目录

前言

实验代码

实验一

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、中间有几篇是老师布置的作业题

 

 总结 

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

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

标签:cid,数据库,pub,student,sid,SC,软件,山东大学,select
From: https://blog.csdn.net/m0_67656158/article/details/139220024

相关文章

  • mysql数据库监控跟踪方案
    方案一canal+kafka  QuickStart·alibaba/canalWiki(github.com)1.自定义处理程序,完全自定义开发,适配各种需求2.只支持增删改操作监控方案二通过软件NeorProfileSQLhttp://www.profilesql.com/files/download/sqlprofiler-4.1.1.exe1.可以监控所有执行的sql语......
  • 【软件设计】项目设计流程规范
    graphLRA(软件设计)-->B(一、需求分析)A-->C(二、系统设计)B-->D(1.市场调研)B-->E(2.功能需求整合)E-->客户端功能需求E-->管理端功能需求C-->F(逻辑架构设计)F-->客户端F-->业务逻辑F-->基础服务C-->G(技术架构设计)G-->用户层G-->服务层G-->数据层C-->H(数......
  • 在Ubuntu中部署MongoDB数据库
    提示:为了方便,接下来的操作都在shell中进行(需提前建立ssh连接),当然也可以在虚拟机中进行。1.导入MongoDB的公钥首先导入MongoDB的公钥,以便后续下载和安装MongoDB输入如下代码wget-qO-https://www.mongodb.org/static/pgp/server-6.0.asc|sudoapt-keyadd-2.创建M......
  • 基于ssm+jsp家政服务网站系统,家政管理系统,附源码+数据库+论文+PPT,包安装调试
    1、项目介绍随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。家政服务网站,主要的模块包括查看管理员;个人中心、用户管理、服务类型管理、家政类型管理、家政评价管理、家政资讯管理、家政服务管理、家政预约管理......
  • Python面试宝典:Python中与数据库连接和操作相关的面试笔试题(1000加面试笔试题助你轻松
    Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十五章:数据库编程:第一节:数据库连接和操作】第十五章:数据库编程第一节:数据库连接和操作数据库API规范:DB-API使用SQLite数据库使用MySQL数据库使用ORM工具注意事项python中和......
  • 创新实训2024.05.26日志:落地基于硬盘的数据库服务
    1.需求任务列表以下描述易学大模型软件的web应用的功能。用户注册用户邮箱,密码,验证码开启官方邮箱,用来发验证码(QQ网易都支持开启smtp协议,找教程,用邮箱不用手机号是为了省买发短信云服务的钱)验证码缓存于redis,5min内有效验证密码长度,验证码是否正确新用户信息保存于mysq......
  • 【MySQL数据库】认识数据库+环境搭建--------Windows系统
    一、认识数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。二、MySQL数据库MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大......
  • 揭秘软件测试工程师:事业前景和成功秘诀
    揭秘软件测试工程师:事业前景和成功秘诀软件测试工程师(SoftwareTestEngineer)在现代软件开发中扮演着至关重要的角色。主要负责确保软件产品的质量和可靠性,从而帮助企业降低风险、提高用户满意度。随着科技的进步和软件行业的不断发展,软件测试工程师的职业前景愈发广阔。那......
  • JDBC & 数据库连接池:详述Java 数据库操作的基础,数据库连接池的使用以及原理,比较常用数
    JDBC基础 JDBC的定义和目的 JDBC(JavaDatabaseConnectivity)是一个用于执行SQL语句的JavaAPI,可以与多种关系数据库进行交互,这的API由一组用Java语言编写的类和接口组成。 JDBC鼓励供应商使用JDBC驱动程序,该驱动程序可以通过数据库管理系统的客户机接口与各个数......
  • Java项目:基于SSM框架实现的社区服务管理系统分前后台(ssm+B/S架构+源码+数据库+毕业论
    一、项目简介本项目是一套基于SSM框架实现的社区服务管理系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值二、技术......