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' ); 例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); [例37]查询选修2号课程且成绩在90分以上的所有学生的学号、姓名 SELECT Student.Sno, student.Sname FROM Student, SC
WHERE Student.Sno = SC.Sno AND /* 连接谓词*/
SC.Cno= „ 2 ‟ AND /* 其他限定条件 */ SC.Grade > 90;
例38] 查询每个学生的学号、姓名、选修的课程名及成绩。 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Student.Sno = SC.Sno
and SC.Cno = Course.Cno;
例39] 查询与“刘晨”在同一个系学习的学生。 SELECT Sno,Sname,Sdept FROM Student S1 WHERE S1.Sdept IN (SELECT Sdept
FROM Student S2
WHERE S2.Sname= „ 刘晨 ‟);
例40]查询选修了课程名为“信息系统”的学生学号和姓名 SELECT Sno,Sname ③ 最后在Student关系中
FROM Student 取出Sno和Sname WHERE Sno IN
(SELECT Sno ② 然后在SC关系中找出选
FROM SC 修了3号课程的学生学号 WHERE Cno IN
(SELECT Cno ① 首先在Course关系中找出“信 FROM Course 息系统”的课程号,结果为3号 WHERE Cname= „信息系统‟));
[例41]找出每个学生超过他选修课程平均成绩的课程号。 SELECT Sno,Cno FROM SC x
WHERE Grade>=( SELECT AVG(Grade)
FROM SC y
WHERE y.Sno=x.Sno );
[例1] 将一个新学生记录:(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。 INSERT
INTO Student
VALUES (' 200215128 ','陈冬','男','IS',18); [例2] 将学生张成民的信息插入Student表中。 INSERT
INTO Student
VALUES („ 200215126 ‟,„张成民','男',18,„CS'); [例3] 插入一条选课记录( „200215128','1 ')。 INSERT
INTO SC(Sno,Cno)
VALUES (' 95020 ',' 1 ');
例5] 将学生200215121的年龄改为22岁。 UPDATE Student SET Sage=22
WHERE Sno=' 200215121 '; 例6] 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1;
例7] 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE 'CS'=
(SELETE Sdept FROM Student
WHERE Student.Sno = SC.Sno); [例8] 删除学号为20021528的学生记录 DELETE
FROM Student
WHERE Sno=„200215128'; 例9] 删除所有的学生选课记录。 DELETE FROM SC;
[例9`] 删除2号课程的所有选课记录。 DELETE FROM SC;
WHERE Cno='2';
[例10] 删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student
WHERE Student.Sno=SC.Sno); 例1] 建立信息系学生的视图。 CREATE VIEW IS_Student AS
SELECT Sno,Sname,Sage FROM Student
WHERE Sdept= 'IS';
例2] 建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS
SELECT Sno,Sname,Sage FROM Student
WHERE Sdept= 'IS'
WITH CHECK OPTION;
例3] 建立信息系选修了1号课程的学生视图。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS
SELECT Student.Sno,Sname,Grade FROM Student,SC
WHERE Sdept= 'IS' AND
Student.Sno=SC.Sno AND SC.Cno= '1';
[例4] 建立信息系选修了1号课程且成绩在90分以上的学生的视图。 CREATE VIEW IS_S2 AS
SELECT Sno,Sname,Grade FROM IS_S1
WHERE Grade>=90; 例5] 定义一个反映学生出生年份的视图。
CREATE VIEW BT_S (Sno,Sname,Sbirth) AS
SELECT Sno,Sname,2004-Sage FROM Student;
6] 将学生的学号及他的平均成绩定义为一个视图。假设SC表中“成绩”列Grade为数字型。 CREAT VIEW S_G (Sno,Gavg) AS
SELECT Sno,AVG(Grade) FROM SC
GROUP BY Sno;
[例 7 ]将Student表中所有女生记录定义为一个视图。 CREATE VIEW
F_Student1(stdnum,name,sex,age,dept) AS SELECT * FROM Student
WHERE Ssex='女';
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务