例如1] 定义一学生-课程模式
CREATE SCHEMA “S-T” AUTHORIZATION WANC
[例5]  建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号为主码,并且姓名取值也唯一。
CREATE  TABLE  Student
  (Sno  CHAR(9)  PRIMARY  KEY,
        Sname  CHAR(20)  UNIQUE,         
        Ssex      CHAR(2) ,
        Sage      SMALLINT,
        Sdept    CHAR(20)
    );
[例6]  建立一个“课程”表Course。
CREATE  TABLE  Course
    (Cno CHAR(4) PRIMARY KEY ,
      Cname CHAR(40),
      Cpno CHAR(4),
      Ccredit  SMALLINT,
      FOREIGN KEY (Cpno) REFERENCES  Course(Cno)
    );
[例7]  建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
CREATE  TABLE  SC
        (Sno CHAR(9) ,
      Cno CHAR(4) ,
      Grade  SMALLINT,
        PRIMARY key (Sno, Cno),
        FOREIGN KEY (Sno) REFERENCES Student(Sno),
        FOREIGN KEY (Cno) REFERENCES Course(Cno)
    );
[例8]  向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD Scome DATE;
[例9]  将年龄的数据类型改为整数。
ALTER TABLE Student MODIFY Sage SMALLINT;
[例10]  删除学生姓名必须取唯一值的约束。
    ALTER TABLE Student DROPUNIQUE(Sname);
例11]  删除Student表
    DROP TABLE Student ;
[例14]  为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATE UNIQUE INDEX  Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
[例15]  删除Student表的Stusname索引。
    DROP INDEX Stusname;
[例1]  查询全体学生的学号与姓名。
SELECT Sno,Sname  FROM Student; 
[例2]  查询全体学生的姓名、学号、所在系。
SELECT Sname,Sno,Sdept  FROM Student;
[例3]  查询全体学生的详细记录。
SELECT  Sno,Sname,Ssex,Sage,Sdept 
FROM Student;
例4]  查全体学生的姓名及其出生年份。
SELECT Sname,2006-Sage    FROM Student;
[例5]  查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。
SELECT Sname,'Year of Birth: ',2006-Sage,
                ISLOWER(Sdept)
  FROM Student;
[例6]  查询选修了课程的学生学号。
(1) SELECT Sno
      FROM SC;
例10]  查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。
    SELECT Sname,Sdept,Sage
FROM  Student
WHERE Sage BETWEEN 20 AND 23;
[例11]  查询年龄不在20~23岁之间的学生姓名、系别和年龄。
SELECT Sname,Sdept,Sage
  FROM    Student
  WHERE Sage NOT BETWEEN 20 AND 23;
例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。
SELECT Sname,Ssex
FROM  Student
WHERE Sdept  IN ( 'IS','MA','CS' );
例13]查询既不是信息系、数学系,也不是计算 机科学系的学生的姓名和性别。
SELECT Sname,Ssex
FROM Student
    WHERE Sdept NOT IN ( 'IS','MA','CS' );
sql统计每个系的学生人数
例14]  查询学号为200215121的学生的详细情况。
SELECT *   
  FROM  Student 
  WHERE  Sno LIKE ' 200215121 ';
例15]  查询所有姓刘学生的姓名、学号和性别。
      SELECT Sname,Sno,Ssex
      FROM Student
      WHERE  Sname LIKE ‘刘%’;
[例16]  查询姓"欧阳"且全名为三个汉字的学生的姓名。
      SELECT Sname
      FROM  Student
      WHERE  Sname LIKE ‘欧阳__’;
例17]  查询名字中第2个字为"阳"字的学生的姓名和学号。
      SELECT Sname,Sno
      FROM Student
      WHERE Sname LIKE '__阳%';
例18]  查询所有不姓刘的学生姓名。
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname NOT LIKE ‘刘%’;
[例19]  查询DB_Design课程的课程号和学分。
      SELECT Cno,Ccredit
      FROM Course
      WHERE Cname LIKE 'DB\_Design'  ESCAPE '\‘;
[例20]  查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。
      SELECT  *         
      FROM  Course
      WHERE  Cname LIKE  'DB\_%i_ _' ESCAPE ' \ ';
例21]  某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
    SELECT  Sno,Cno        FROM  SC
      WHERE Grade IS NULL;
[例22]  查所有有成绩的学生学号和课程号。 
SELECT Sno,Cno      FROM  SC
WHERE  Grade IS NOT NULL;
[例23]  查询计算机系年龄在20岁以下的学生姓名。
    SELECT Sname
      FROM  Student
      WHERE Sdept= 'CS' AND Sage<20;
例24]  查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECT Sno,Grade
  FROM  SC
  WHERE  Cno= ' 3 '
ORDER BY Grade DESC;
例26]  查询学生总人数。
    SELECT COUNT(*)
    FROM  Student;
 
[例27]  查询选修了课程的学生人数。
    SELECT COUNT(DISTINCT Sno)
    FROM SC;
例28]  计算1号课程的学生平均成绩。
    SELECT  AVG(Grade)
    FROM  SC
    WHERE  Cno= ' 1 ';
[例29]  查询选修1号课程的学生最高分数。
    SELECT  MAX(Grade)
    FROM  SC
    WHER  Cno= ' 1 ';
30]  查询学生200215012选修课程的总学分数。
SELECT  SUM(Gcredit)
FROM  SC,Course
WHER  Sno= ' 200215012 ' AND SC.Cno=Course.Cno;
例32]  查询选修了3门以上课程的学生学号。
SELECT Sno
  FROM  SC
  GROUP BY Sno
  HAVING  COUNT(*) >3;
例33]  查询每个学生及其选修课程的情况。
SELECT  Student.*,SC.*
FROM    Student,SC
WHERE  Student.Sno = SC.Sno;
[例35]  查询每一门课的间接先修课(即先修课的先修课)
    SELECT  FIRST.Cno,SECOND.Cpno
    FROM  Course  FIRST,Course  SECOND
    WHERE FIRST.Cpno = SECOND.Cno;
[例 36] 查询每个学生及其选修课程的情况包括没有选修课程的学生----用外连接操作
SELECT  Student.Sno,Sname,Ssex, Sage,Sdept,Cno,Grade
FROM    Student  LEFT OUT JOIN SC ON (Student.SNO=SC.SNO);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。