看我學sql 基礎(一) select 語句

建表插入語句

--建立StudentInfo表結構
  CREATE TABLE "SCOTT"."STUDENTINFO" 
   (	"SNO" VARCHAR2(12 BYTE) NOT NULL ENABLE, 
	"SNAME" VARCHAR2(20 BYTE), 
	"SEX" VARCHAR2(4 BYTE), 
	"BIRTHDAY" DATE, 
	"DEPART" VARCHAR2(30 BYTE), 
	"MAJOR" VARCHAR2(50 BYTE), 
	"LENGSCH" NUMBER, 
	 CONSTRAINT "STUDENTINFO_PK" PRIMARY KEY ("SNO")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS" ;
 
 --插入示例數據
  insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201001903051','辛月娟','女',TO_DATE('1990-4-27','yyyy-mm-dd'),'經濟管理系','工商管理(本科)',4);
   insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201001903057','譚文娟','女',TO_DATE('1990-11-12','yyyy-mm-dd'),'計算機系','計算機科學與技術(本科)',4);
    insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201001903029','明梅','女',TO_DATE('1990-4-27','yyyy-mm-dd'),'計算機系','計算機科學與技術(本科)',4);
     insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201011002031','徐雁','男',TO_DATE('1990-4-27','yyyy-mm-dd'),'計算機系','信息管理與信息系統(1+3)',4);
      insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201011002032','秦趙璇','女',TO_DATE('1990-4-27','yyyy-mm-dd'),'計算機系','信息管理與信息系統(1+3)',4);
       insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201011801017','王鵬飛','男',TO_DATE('1990-4-27','yyyy-mm-dd'),'服裝系','服裝設計與工程(專科)',3);
        insert into scott.studentinfo(sno,sname, sex, birthday, depart, major, lengsch) values('201011801018','哈菲菲','女',TO_DATE('1990-4-27','yyyy-mm-dd'),'服裝系','服裝設計與工程(1+3)',4);
  select * from studentinfo
  
  commit;
 --建立CourseInfo表
  create table scott.CourseInfo
  (
    Cno char(6),
    Cname varchar(50),
    Cpno char(6),
    Credit decimal(2,1),
    CONSTRAINT Courseinfo_PK primary key(Cno)
  );
  
  -- --插入示例數據
  insert into scott.CourseInfo(cno,cname,cpno,credit) values('140173','數據庫系統概論','140176',3);
    insert into scott.CourseInfo(cno,cname,cpno,credit) values('140174','C語言程序設計','',2);
      insert into scott.CourseInfo(cno,cname,cpno,credit) values('140175','操作系統','140176',3);
        insert into scott.CourseInfo(cno,cname,cpno,credit) values('140176','數據結構','140174',3.5);
          insert into scott.CourseInfo(cno,cname,cpno,credit) values('140178','計算機英語','',2);
            insert into scott.CourseInfo(cno,cname,cpno,credit) values('140179','軟件工程','140173',2);
              insert into scott.CourseInfo(cno,cname,cpno,credit) values('140180','計算機組成原理','',4);
  
   --建立TeacherInfo表
   create table scott.TeacherInfo
   (
    TeacherID char(5),
    Tname varchar(20),
    Sex char(4),
    Depart varchar(30),
    ProfTitle varchar(10),
    Degree char(6),
    constraint TeacherInfo_PK primary key(TeacherID)
   );
  
   -- --插入示例數據
   insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('04001','白紅霞','女','計算機系','教授','博士');
      insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('09001','安寧','女','計算機系','講師','本科');
         insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('09004','董敏','女','化學系','教授','博士');
            insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('09006','馮李寧','男','計算機系','副教授','本科');
               insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('06067','範美麗','女','數學系','講師','碩士');
                  insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('09011','華玉山','男','計算機系','助教','碩士');
                     insert into teacherinfo(teacherid, tname, sex, depart, proftitle, degree) values('09016','王洪亮','男','計算機系','副教授','本科');
 
 
    --建立TeacherInfo表
    create table scott.TeachTasksInfo
    (
      TeachTaskID char(26),
      Cno char(6),
      TeacherID char(5),
      AcadeYear char(9),
      Term char(1),
      ExamMethod varchar(10),
      Depart varchar(30),
      TimeTable varchar(50),
      constraint TeachTasksInfo_PK primary key(TeachTaskID)
    );
    
     -- --插入示例數據
   insert into scott.TeachTasksInfo(TeachTaskID, Cno, TeacherID, AcadeYear,Term,ExamMethod,Depart,TimeTable) values('(2009-2010-1)-140173-04001','140173','04001','2009-2010','1','考試','計算機系','週二第3,4節{第1-20周}');
      insert into scott.TeachTasksInfo(TeachTaskID, Cno, TeacherID, AcadeYear,Term,ExamMethod,Depart,TimeTable) values('(2009-2010-2)-140176-09006','140176','09006','2009-2010','2','考查','計算機系','週一第1,2節{第1-20周}');
         insert into scott.TeachTasksInfo(TeachTaskID, Cno, TeacherID, AcadeYear,Term,ExamMethod,Depart,TimeTable) values('(2009-2010-2)-140178-06067','140178','06067','2009-2010','2','考試','數學系','週三第1,2節{第1-20周}');
            insert into scott.TeachTasksInfo(TeachTaskID, Cno, TeacherID, AcadeYear,Term,ExamMethod,Depart,TimeTable) values('(2009-2010-1)-140180-09016','140180','09016','2009-2010','1','考查','計算機系','週二第3,4節{第1-20周}');
 
 
    --建立SC表
    create table SC
    (
      Sno char(12),
      TeachTaskID char(26),
      Grade decimal(5,1),
      constraint SC_PK primary key(Sno,TeachTaskID)
    );
    
    insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-1)-140173-04001','201001903057','84.2');
        insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-1)-140173-04001','201001903029','87.7');
            insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-1)-140173-04001','201011002031','84.2');
                insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-2)-140176-09006','201001903051','84.2');
                    insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-2)-140176-09006','201001903057','84.2');
                        insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-2)-140176-09006','201001903029','84.2');
                            insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-2)-140178-06067','201011002031','84.2');
                                insert into scott.SC(teachtaskid,sno, grade) values('(2009-2010-2)-140178-06067','201001903057','84.2');
 -- select * from courseinfo

1.查詢StudentInfo表中所有的學生的詳細信息,SQL代碼如下所示:
select * from STUDENTINFO;
2.查詢StudentInfo表中所有學生的學號、姓名、系別、專業等信息,SQL代碼如下所示:
select sname,sex,depart,major from STUDENTINFO;
3.查詢全體學生的學號、姓名及年齡信息,SQL代碼如下所示:
select sno,sname,(TO_DATE('2020-02-28','yyyy-mm-dd')-BIRTHDAY)/365 from studentinfo;
4.查詢全體學生的學號、姓名及年齡信息,並且爲年齡列定義別名爲“Age”。SQL代碼如下所示:
select sno,sname,(TO_DATE('2020-02-28','yyyy-mm-dd')-BIRTHDAY)/365 as Age from studentinfo;
5.查詢有學生選修的教學計劃的教學計劃號。SQL代碼如下所示:
select TeachTaskID FROM sc ;
6.查詢有學生選修的教學計劃的教學計劃號,並去掉重複行。SQL代碼如下所示:
select DISTINCT TeachTaskID FROM sc ;
7.查詢所有學生的基本信息,結果按學號降序排列。SQL代碼如下所示:
select * from studentinfo order by sno desc;
8.查詢所有學生的基本信息,結果按性別降序排列NULL值在末位。SQL代碼如下所示:
select * from studentinfo order by sex desc nulls last;
9.查詢所有學生的基本信息,結果按姓名排序,姓名相同者按學號進行排序。SQL代碼如下所示:
select * from studentinfo order by sname,sno;
10.查詢StudentInfo表中學號爲201001903029的學生的詳細信息,SQL代碼如下所示:
select * from studentinfo where sno = '201801002015' ;
11.查詢出生年月在1991-03-15日以後的學生的詳細信息,SQL代碼如下所示:
select * from studentinfo where birthday > TO_DATE('1991-03-15','yyyy-mm-dd');
12.查詢成績在70-80之間的學生的學號及教務任務號等信息,SQL代碼如下所示:
select sno,teachtaskid from sc where grade<80 and grade>70;
13.查詢不是計算機系和服裝系學生的姓名、性別和專業,SQL代碼如下所示:
select sname,sex,major from studentinfo where DEPART not in ('計算機系','服裝系');
14.查詢2009-2010學年第1學期學生選課的學生號、課程號及成績,SQL代碼如下所示:
select * from sc where TEACHTASKID like '(2009-2010-1)%';
15.查詢名字最後一個字爲“娟”,且名字爲三個字的學生詳細信息,SQL代碼如下所示:
select * from studentinfo where sname like '__娟';
16.查詢 CourseInfo表中沒有先行課的課程號與課程名稱,SQL代碼如下所示:
select CNO,CNAME from courseinfo where cpno is null;
17.查詢在計算機系的女學生的詳細信息。SQL代碼如下所示:
select * from studentinfo where sex = '女' and depart = '計算機系';
18.查詢是教授或者是博士的教師詳細信息。SQL代碼如下所示:
select * from teacherinfo where PROFTITLE = '教授' or DEGREE = '本科';
19.查詢在2009-2010年第2學期,選修140176課程的學生學號及成績,查詢結果按成績降序排列。SQL代碼如下所示:
select sno,grade from sc where  TEACHTASKID like '(2009-2010-2)-140176%' order by grade desc;
20.查詢計算機系學生的總人數,SQL代碼如下所示:
select count(*) from studentinfo where depart = '計算機系';
21.查詢在2009-2010年第2學期,選修140176課程中的最高分,SQL代碼如下所示:
select max(grade) from sc where  TEACHTASKID like '(2009-2010-2)-140176%';
22.查詢各教學計劃號及相應的選課人數,SQL代碼如下所示
select teachtaskid,count(teachtaskid) as num from sc group by teachtaskid;
23.查詢在2009-2010年第2學期選修了2門以上課程的學生學號,SQL代碼如下所示:
select sno from sc where teachtaskid like '(2009-2010-2)%' group by sno having count(*)>2;
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章