第三章、SQL语言.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CREATE TABLE Grade( Student_ID Char(11) REFERENCES Student(Student_ID) ON DELETE CASCADE,指定外键,在主键删除时,级联删除外键记录 Course_ID Char(6) REFERENCES Course(Course_ID) ON DELETE CASCADE,指定外键,在主键删除时,级联删除外键记录 Grade Number(3,0) Not Null,不能为空 Primary Key(Student_ID,Course_ID)指定主键的第三种方法 ); (六)、CREATE PROCEDURE (MS SQLServer) CREATE PROCEDURE student_order(@id CHAR(11)) as DECLARE @order VARCHAR(200) DECLARE @s_name CHAR (24) DECLARE @class_name CHAR (30) DECLARE @avg_grade NUMERIC (5,2) DECLARE @no_student NUMERIC (3) DECLARE @avg_temp NUMERIC(5,2) DECLARE @i INTEGER SELECT @s_name=name,@class_name=class FROM student, class WHERE student.class_id = class.class_id AND student_id = @id IF @s_name IS NULL BEGIN SELECT @order = 无此学号! PRINT @order RETURN END SELECT @avg_grade=AVG(grade) FROM grade WHERE student_id = @id IF @avg_grade IS NULL BEGIN SELECT @order = 此学生没有成绩记录! PRINT @order RETURN END DECLARE avg_cur CURSOR FOR SELECT AVG(grade) cj FROM grade,student WHERE grade.student_id = student.student_id and class_id = (SELECT class_id FROM student WHERE student_id = @id) GROUP BY grade.student_id ORDER BY cj DESC SELECT @no_student=COUNT(*) FROM student WHERE class_id = (SELECT class_id FROM student WHERE student_id = @id) OPEN avg_cur SELECT @i= 1 FETCH NEXT FROM avg_cur INTO @avg_temp WHILE @@FETCH_STATUS = 0 BEGIN IF @avg_temp @avg_grade BEGIN SELECT @i = @i + 1 FETCH NEXT FROM avg_cur1 INTO @avg_temp END ELSE BREAK END CLOSE avg_cur DEALLOCATE avg_cur1 SELECT @order=rtrim(@s_name) + (学号: + rtrim(@id) + )在 + rtrim(@class_name) + 班(共 + ltrim(str(@no_student)) + 名学生)的名次为:第 + ltrim(str(@i)) + 名 PRINT @order CREATE OR REPLACE FUNCTION stu_order(id IN char) RETURN VARCHAR as student_order varchar(200); s_name char(24); class_name char(30); avg_grade number(5,2); no_student number(3); avg_temp number(5,2); i number(3); CURSOR avg_cur IS SELECT avg(grade) cj FROM grade,student WHERE grade.student_id = student.student_id and CLAS

文档评论(0)

zzqky + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档