Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 13877|Atbildi: 1

[Avots] Oracle mājasdarbu kods

[Kopēt saiti]
Publicēts 09.03.2015 16:01:19 | | |
  1. -新建学生信息表
  2. create table stuInfo
  3. (
  4.        stuid number primary key,
  5.        stuname varchar(10) not null,
  6.        stusex varchar(2) check (stusex='男' or stusex='女'),
  7.        stubir date
  8. );

  9. --新建课程信息表
  10. create table subInfo
  11. (
  12.        subid number primary key,
  13.        subname varchar(20) not null
  14. );
  15. --新建分类信息表
  16. create table scoreInfo
  17. (
  18.        scoreid number primary key,
  19.        scorexh number references stuinfo(stuid),
  20.        scoresubid number references subInfo(subid),
  21.        score number check (score>=0 or score <=100)
  22. );


  23. --向学生表插入数据
  24. insert into stuInfo values(1,'张山','男',to_date('2005-1-2','yyyy-mm-dd'));
  25. insert into stuInfo values(2,'历史','男',to_date('2001-3-6','yyyy-mm-dd'));
  26. insert into stuInfo values(3,'技术','女',to_date('1995-8-2','yyyy-mm-dd'));
  27. insert into stuInfo values(4,'张山','男',to_date('2006-1-22','yyyy-mm-dd'));
  28. insert into stuInfo values(5,'说道','女',to_date('2013-10-2','yyyy-mm-dd'));
  29. insert into stuInfo values(6,'虽然','男',to_date('1996-10-20','yyyy-mm-dd'));
  30. insert into stuInfo values(7,'谈一谈','女',to_date('2005-1-2','yyyy-mm-dd'));
  31. insert into stuInfo values(8,'一样','女',to_date('2005-1-2','yyyy-mm-dd'));
  32. insert into stuInfo values(9,'方法','男',to_date('1981-6-6','yyyy-mm-dd'));
  33. insert into stuInfo values(10,'尺寸','男',to_date('1980-8-8','yyyy-mm-dd'));
  34. --向课程信息表插入数据
  35. insert into subinfo values(1,'数据库');
  36. insert into subinfo values(2,'java');
  37. insert into subinfo values(3,'web开发');
  38. insert into subinfo values(4,'linux维护');
  39. insert into subinfo values(5,'安全维护');
  40. --向分类信息表插入数据
  41. insert into scoreInfo values(1,1,2,50);
  42. insert into scoreInfo values(2,1,3,70);
  43. insert into scoreInfo values(3,2,1,100);
  44. insert into scoreInfo values(4,3,1,80);
  45. insert into scoreInfo values(5,1,1,60);
  46. insert into scoreInfo values(6,1,1,70);


  47. --创建新表stu1并将stuinfo中的性别为女的学生的学号,姓名和性别的信息插入到该表中
  48. create table stu1 as select * from stuinfo where stusex='女';
  49. --删除stu1表
  50. --drop table stu1;

  51. select * from stu1


  52. 1.查询所有姓张的学员信息(模糊查询)
  53. select * from stuinfo where stuname like '%张%';

  54. 2.查询所有20岁以上的学员信息(用日期函数实现)
  55. select * from stuinfo where MONTHS_BETWEEN(sysdate,stubir)/12>20;

  56. 3.查询同一天出生的学员信息(表连接)
  57. select * from stuinfo where stubir in (select stubir from stuinfo group by stubir having count(*)>1)

  58. 4.查询参加考试的所有学员的名称,科目和成绩(按成绩排序)
  59. select stuinfo.stuname,scoreInfo.Score,scoreInfo.Scoresubid,subinfo.subname from stuinfo inner join scoreInfo on stuinfo.stuid=scoreInfo.Scorexh inner join subinfo on scoreInfo.Scoresubid=subinfo.subid order by scoreInfo.Score;

  60. 5.查询所有没有参加考试的学员学号,姓名,只要有1门课没考都要查询出来(子查询)
  61. --方法一(错误):
  62. select stuinfo.stuid,stuinfo.stuname from stuinfo inner join (select stuid from stuinfo MINUS select Scorexh from scoreInfo) tmp on stuinfo.stuid=tmp.stuid;
  63. --方法二(错误):
  64. select stuinfo.stuid,stuinfo.stuname from stuinfo where stuinfo.stuid not in (select Scorexh from scoreInfo);
  65. --正确答案:



  66. 6.查询出没有学生考试的课程名称
  67. --方法一:
  68. select subInfo.Subname from subInfo inner join (select subInfo.Subid from subInfo MINUS select Scoresubid from scoreInfo) tmp on subinfo.subid=tmp.subid;
  69. --方法二:
  70. select subinfo.subname from subinfo where subinfo.subid not in (select scoresubid from scoreInfo);

  71. 7.参加考试的学员的姓名和总分按总分从大到小排序
  72. select stuinfo.stuname,tmp.fen from stuinfo inner join (select sum(score) fen,scorexh from scoreInfo group by scorexh) tmp on stuinfo.stuid=tmp.scorexh order by fen DESC;

  73. 8.将所有的分数按升序排列并产生并列不跳空的序号
  74. select score,row_number() over(order by score Asc) from scoreInfo order by score Asc
Kopēt kodu






Iepriekšējo:Uzziniet 54 SQL vaicājumu priekšrakstus, kas jāapgūst datu bāzēm
Nākamo:Kādi ir 2D svītrkodu veidi? Kādu veidu mēs pašlaik izmantojam?
Publicēts 25.11.2018 21:50:36 |
Vai nav pareizas atbildes uz 5. jautājumu?
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com