Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 13877|Válasz: 1

[Forrás] Oracle házi kód

[Linket másol]
Közzétéve 2015. 03. 09. 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
Kód másolása






Előző:Ismerd meg az 54 SQL lekérdezési utasítást, amelyeket az adatbázisoknak el kell tanulni
Következő:Milyen típusú 2D vonalkódok vannak? Milyen típust használunk jelenleg?
Közzétéve 2018. 11. 25. 21:50:36 |
Nincs helyes válasz az 5. kérdésre?
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com