人人范文网 范文大全

数据库课程设计之教务管理系统

发布时间:2020-03-02 13:48:55 来源:范文大全 收藏本文 下载本文 手机版

源代码:

CREATE DATABASE JWGL

/*建立教务管理系统*/ ON

(NAME = JWGL_Data,

FILENAME = \'e:\\sql_data\\Jwgl_Data.mdf\', SIZE = 20, MAXSIZE = 500, FILEGROWTH = 25%) LOG ON

(NAME = JWGL_LOG,

FILENAME = \'e:\\sql_data\\Jwgl_Log.ldf\', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 1%);

CREATE TABLE Student

/*建立学生表*/ (Sno CHAR(8) PRIMARY KEY NOT NULL, Sname VARCHAR(10) NOT NULL,

Sex CHAR(2) CHECK (Sex IN (\'男\',\'女\'))NOT NULL,

Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12) UNIQUE, Sdept VARCHAR(20)NOT NULL, );

CREATE TABLE Course

/*建立课程表*/ (Cno CHAR(10) PRIMARY KEY NOT NULL, Cname VARCHAR(20) UNIQUE NOT NULL,

Total_perior TINYINT CHECK(Total_perior BETWEEN 32 AND 108),/*总学时*/ Week_perior TINYINT CHECK(Week_perior BETWEEN 2 AND 7),/*周学时*/ Credit TINYINT CHECK(Credit BETWEEN 1 AND 7)NOT NULL,/*学分*/ Pcno CHAR(10)/*先修课*/ );

CREATE TABLE SC

/*建立学生选课表*/ (Sno CHAR(8)NOT NULL, Cno CHAR(10)NOT NULL,

Grade TINYINT CHECK(Grade BETWEEN 1 AND 100), PRIMARY KEY(Sno,Cno),

FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );

DROP TABLE Student

/*删除学生表*/ DROP TABLE Course

/*删除课程表*/ DROP TABLE SC

/*删除学生选课表*/

INSERT

/*向学生表中插入数据*/ INTO Student

VALUES(\'04111020\',\'张倩\',\'女\',19,\'18789430000\',\'计算机\'); INSERT

INTO Student

VALUES(\'04111021\',\'张花\',\'女\',20,\'15236982111\',\'信息\'); INSERT

INTO Student

VALUES(\'04111022\',\'李强\',\'男\',20,\'13625984666\',\'英语\'); INSERT

INTO Student

VALUES(\'04111023\',\'王若\',\'女\',19,\'18789437777\',\'计算机\'); INSERT

INTO Student

VALUES(\'04111024\',\'小淼\',\'男\',20,\'15555982111\',\'信息\'); INSERT

INTO Student

VALUES(\'04111025\',\'李新\',\'男\',20,\'13621111666\',\'英语\'); INSERT INTO Student

VALUES(\'04111026\',\'刘浮\',\'男\',19,\'15278982181\',\'信息\'); INSERT

INTO Student

VALUES(\'04111027\',\'二毛\',\'男\',20,\'13666684666\',\'英语\'); INSERT

INTO Student

VALUES(\'04111028\',\'朱琪\',\'女\',19,\'18789111777\',\'计算机\'); INSERT

INTO Student

VALUES(\'04111029\',\'小马\',\'男\',20,\'155533332111\',\'信息\'); INSERT

INTO Student

VALUES(\'04111030\',\'吴欣\',\'女\',20,\'13621199666\',\'英语\')

INSERT

/*向课程表中插入数据*/ INTO Course

SELECT \'0011\',\'数据结构\',\'64\',\'2\',\'3\',\'c语言\'

UNION SELECT \'0012\',\'数据库\',

\'64\',\'2\',\'3\',\'离散数学\' UNION SELECT \'0013\',\'信息管理\',\'64\',\'2\',\'3\',\'计算机基础\' UNION SELECT \'0014\',\'专业英语\',\'64\',\'2\',\'4\',\'基础英语\' UNION SELECT \'0015\',\'电气学\',

\'64\',\'2\',\'4\',\'电子科技\'

INSERT

/*向学生选课表中插入数据*/ INTO SC

SELECT \'04111020\',\'0011\',\'90\' UNION SELECT \'04111020\',\'0012\',\'87\' UNION SELECT \'04111022\',\'0012\',\'85\' UNION SELECT \'04111022\',\'0015\',\'76\' UNION SELECT \'04111023\',\'0014\',\'69\' UNION SELECT \'04111024\',\'0013\',\'90\' UNION SELECT \'04111025\',\'0011\',\'92\' UNION SELECT \'04111026\',\'0011\',\'83\' UNION SELECT \'04111027\',\'0012\',\'87\' UNION SELECT \'04111027\',\'0013\',\'79\' UNION SELECT \'04111028\',\'0011\',\'88\' UNION SELECT \'04111028\',\'0014\',\'85\' UNION SELECT \'04111029\',\'0012\',\'97\' UNION SELECT \'04111030\',\'0013\',\'69\' UNION SELECT \'04111028\',\'0015\',\'88\'

CREATE TABLE Student_temp

/*建立 Student_temp空表*/ (Sno CHAR(8) PRIMARY KEY NOT NULL, Sname VARCHAR(10) NOT NULL,

Sex CHAR(2) CHECK (Sex IN (\'男\',\'女\'))NOT NULL,

Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12) UNIQUE, Sdept VARCHAR(20)NOT NULL, );

INSERT INTO

Student_temp

/*在Student_temp表中保存计算机系所有学生的情况*/ SELECT * FROM Student

WHERE Sdept = \'计算机\';

ALTER TABLE Student ADD Addre CHAR(20);

/*向Student表中插入地址列*/

DELETE FROM SC

/*删除计算机系学生的选课记录*/ WHERE Sno IN(SELECT Sno FROM Student

WHERE Sdept =\'计算机\');

UPDATE Student

/*将每个学生的年龄增加1岁*/ SET Age=Age+1; UPDATE

SC SET Grade=0 WHERE Sno IN(SELECT Sno FROM Student

WHERE Sdept = \'计算机\') ;

SELECT Sno,Sname,Sdept

/*查询学生表中所有学生的学号、姓名、所在系*/ FROM Student;

SELECT *

/*查询学生表中的所有信息*/ FROM Student;

SELECT Sname,2013-Age AS Birthday

/*查询学生表中所有学生的出生年份,用2013-Age的值作为Birthday的列值*/ FROM Student;

SELECT *

/*查询课程表中的所有信息*/ FROM Course;

SELECT *

/*查询学生选课表中的所有信息*/ FROM SC;

SELECT DISTINCT Sno

/*查询所有选了课程的学生的学号*/ FROM SC;

SELECT Sno,Sname

/*查询计算机系所有学生的学号和姓名*/ FROM Student

WHERE Sdept =\'计算机\';

SELECT Sno

/*查询考试成绩在80分以上的学生学号*/ FROM SC

WHERE Grade >=80;

SELECT Sname,Sdept,Age /*查询年龄在20-23岁的学生姓名、所在系和年龄*/ FROM Student

WHERE Age >=20 AND Age

SELECT Sname,Sdept,Age,Sex /*查询计算机和英语系的学生姓名、年龄和性别*/ FROM Student

WHERE Sdept IN(\'计算机\',\'英语\');

SELECT Sname,Sdept,Age,Sex /*查询不是计算机和英语系的学生姓名、年龄和性别*/ FROM Student

WHERE Sdept NOT IN(\'计算机\',\'英语\');

SELECT *

/*查询信息系所有学生的情况*/ FROM Student

WHERE Sdept LIKE \'信息\';

SELECT *

/*查询姓张的学生所有信息*/ FROM

Student

WHERE Sname LIKE \'张%\';

SELECT

Cno,Credit

/* 查询\'数据结构\'课程的课程号和学分*/ FROM Course

WHERE Cname LIKE \'数据结构\';

SELECT Sno,Cno

/*查询没有考试成绩的课程后和学分*/ FROM SC

WHERE Grade IS NULL;

SELECT *

/*查询全体学生的信息,查询结果按所在系的升序排列,同一系中的学生按年龄降序排列*/ FROM Student

ORDER BY Sdept ,Age DESC;

SELECT AVG(Grade) AS \'平均成绩\'

/*查询选修\'0014\'号课程的学生的平均分*/ FROM SC

WHERE Cno =\'0014\';

SELECT MIN(DISTINCT Grade) AS \'最低分\' /*查询成绩表中的最低分*/ FROM SC;

SELECT COUNT(*)AS\'总人数\'

/*统计学生总人数*/ FROM Student;

SELECT COUNT (DISTINCT Sno)/*统计选修了课程的学生人数*/ FROM SC;

SELECT Cno ,COUNT (Sno )/*查询每门课程的课程号及选课人数*/ FROM SC GROUP BY Cno;

SELECT Student .*,SC .*

/*查询每个学生及其选修课的情况*/ FROM Student ,SC

WHERE Student.Sno=SC.Sno;

SELECT Student.Sno,Sname,Grade

/*查询选修了\'数据库\'课程并且成绩在85分以上的学生的学号和姓名*/

FROM Student ,Course,SC

WHERE Student.Sno = SC.Sno AND SC.Cno

= Course .Cno AND Cname = \'数据库\'AND Grade>85;

SELECT Sno,Sname

/*查询和王若在同一个系学习的学生的学号和姓名*/ FROM Student

WHERE Sdept =

(SELECT Sdept

FROM Student

SELECT Sname ,Age

/*查询其他系中比英语系某一学生年龄小的学生是姓名和年龄*/ FROM Student

WHERE Sdept \'英语\'

AND AGE

FROM Student

WHERE Sdept =\'英语\');

SELECT Sname /*查询选修了0014号课程的学生的姓名*/ FROM Student

WHERE EXISTS

(SELECT * FROM SC

WHERE Sno =Student.Sno AND Cno=\'0014\');

SELECT Cno FROM Course

UNION ALL

/*ALL表示合并两个查询输出的全部记录,没有ALL表示结果中不包含重复行*/ SELECT Cno FROM SC ORDER BY Cno;

CREATE PROCEDURE Student_Course

/*在学生-课程数据库中创建存储过程,查看和\'小马\'有关的基本信息及选修课程*/ AS

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,Course,SC

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Sno AND Sname=\'王若\' IF EXISTS(SELECT name FROM sysobjects

WHERE name=\'Student_Course\' AND type=\'P\')

DROP PROCEDURE Student_Course; WHERE Sname = \'王若\' ); EXECUTE Student_Course;/*查看存储的信息*/

SELECT Sno

/*查询选修\'0012\'或\'0015\'号课程的所以学生的学号*/ FROM SC

WHERE Cno=\'0012\' UNION SELECT Sno FROM SC

WHERE Cno=\'0015\';

CREATE UNIQUE INDEX Stusno ON Student(sno);/*建立索引*/ CREATE UNIQUE INDEX Coucon ON Course (Cno);

CREATE UNIQUE INDEX SCno ON SC (Sno ASC,Grade DESC);

drop index Stusno ON Student/*删除索引*/ drop index Coucon ON Course drop index SCno ON SC

CREATE VIEW C_Student

/*建立计算机系学生的视图,进行修改和插入操作时只能对计算机系的学生操作*/ AS

SELECT Sno,Sname,Sex,Age FROM Student WHERE Sdept=\'计算机\' WITH CHECK OPTION

CREATE VIEW Student_Course_0013(Sno,Sname,Sex,Age,Grade) /*建立选择0013号课程并且成绩在80分以上的学生视图*/ AS

SELECT Student.Sno,Sname,Sex,Age,Grade FROM Student,SC

WHERE Student.Sno=SC.Sno AND Grade>=80 AND Cno=\'0013\'

CREATE VIEW Student_Birth(Sno,Sname,Sbirth)/*建立反应学生出生年份的视图*/ AS

SELECT Sno,Sname,2013-Age FROM Student

CREATE PROCEDURE student_count/*创建一个存储过程,返回选修某门课程的学生人数*/ @CourseName VARCHAR(20), @StudentSum INT OUTPUT AS SELECT @StudentSum=COUNT (*) FROM Course ,SC

WHERE Course .Cno=SC.Cno AND Cname =@CourseName;

drop procedure student_count; /*

DELCARE @StudentSum INT;

EXECUTE student_count \'专业英语\',@StudentSum output; SELECT \'the result is:\',@Student_Sum ;*/

CREATE PROCEDURE student_course1 /*通过参数@StudentName将指定学生的姓名传递给存储过程*/

@StudentName VARCHAR(10) AS

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,Course,SC

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

AND Sname=@StudentName ;

EXECUTE

student_course1 \'小马\';/*调用存储过程*/

/*删除视图*/

DROP VIEW C_Student;

DROP VIEW Student_Course_0013; DROP VIEW Student_Birth;

CREATE TRIGGER student_change/*创建触发器,当学生表中的记录被更新时,显示表中的所有记录*/

ON Student AFTER INSERT,UPDATE,DELETE AS

SELECT * FROM Student ;

CREATE TRIGGER sc_insert3 ON SC

/*在SC表上创建触发器,当向SC表中添加学生的选课记录时,检查学生的学号是否存在。若不存在,不能插入改条记录*/ AFTER INSERT AS

IF(SELECT COUNT (*) FROM Student ,inserted WHERE Student.Sno=inserted.Sno)=0 BEGIN

PRINT\'学号不存在,不能插入记录\' ROLLBACK TRANSACTION END;

INSERT INTO SC

VALUES(\'04111098\',\'0015\',73)

ALTER TABLE SC

/*删除触发器*/

DISABLE TRIGGER sc_insert2

数据库课程设计 计算机教务管理系统

数据库课程设计 图书管理系统

数据库课程设计学籍管理系统

酒店管理系统 (数据库课程设计)

C++课程设计(教务管理系统)

数据库实习报告教务管理系统.

数据库程序设计教务辅助管理系统

教务管理系统 数据库实例设计

教务系统数据库总结报告

数据库课程设计——库存销售管理系统

数据库课程设计之教务管理系统
《数据库课程设计之教务管理系统.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档