史莱克书院教务管理系统 第5页

史莱克书院教务管理系统 第5页
 图19查询学号为2007001的同学的上课地点都在哪里
3.2数据更新
(1)插入一条学生记录
INSERT
INTO 学生
VALUES(‘20070031’,’杨一涛’,’男’,’22’,’计算机’,’004’,’2’,’1’,’05’,’0’)
查询结果如图20所示
 
                    图20插入一条学生记录
(2)对来自同一地方的学生求其平均年龄,并把结果存入数据库。
首先在数据中建立一个新表,其中一列存放籍贯,另一列存放相应的学生平均年龄。
CREATE TABLE 籍贯_年龄
(籍贯编号 CHAR(2),
  AVG_年龄 SMALLINT)
然后对学生表按籍贯分组求平均年龄,再把籍贯和平均年龄存入新表中。
INSERT
INTO 籍贯_年龄(籍贯编号,AVG_年龄)
SELECT籍贯编号,AVG(年龄)
FROM 学生
GROUP BY 籍贯编号
结果如图21所示
 
          图21对来自同一地方的学生求其平均年龄,并把结果存入数据库
(3)在接受考察期间,由于陈洁同学在各个方面表现十分突出,经支部大会讨论通过并经上级党委批准其成为正式党员,故须将其政治面貌改为党员。
UPDATE 学生
SET 政治面貌编号=’2’
WHERE 姓名=’陈洁’
(4)删除已毕业学生的信息
DELETE
FROM 学生
WHERE 学籍编号=’2’
3.3视图
3.3.1定义视图
建立建立计算机系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生
CREATE VIEW CS(SNO,SNAME,SSEX,AGE)
AS
SELECT 学号,姓名,性别,年龄
FROM 学生
WHERE 所在系=’计算机’
WITH CHECK OPTION
建立计算机系选修了8号课程的学生的视图
CREATE VIEW XK_8(SNO,SNAME,AGE,GRADE)
AS
SELECT 学生.学号,姓名,年龄,成绩
FROM 学生,成绩表
WHERE 所在系=’计算机’ AND
       学生.学号=成绩表.学号 AND
       成绩表.课程编号=’8’
3.3.2查询视图
查询计算机视图中成绩小于80的学生的姓名及年龄
SELECT SNAME,AGE,GRADE
FROM XK_8
WHERE GRADE<80
查询结果如图22所示
 
                               图22查询视图
3.3.3更新视图
UPDATE CS
SET SNAME=’周杰伦’
WHERE SNO=’20070008’
结果如图23所示
                       图23更新视图

4. 设计体会
通过这次对数据库的课程设计,不仅仅让我对所学的知识有了更深一步的掌握及理解,同时也得到了很多有用的发现及认识,大体有一下几个方面。
首先,设计始终应带着面向对象的思想去设计,这是设计的基本原则。对象的抽取应该符合真实性和抽象性,不能将对象强制抽取合并。
    其次,在数据设计中,数据的使用率和冗余应该是设计考虑的通用标准。对外键的认识不能停留在表面,它代表了一对多的关系,它在真实的实体之间也能体现这关系的。
最后,虽然目前我们的数据库设计模式能够满足开发要求,也节省了开发时间,但是这样的设计会对以后工程项目的维护、改版造成成本上的增加。数据库表的字段在修改上将对主程序造成影响;另外对于开发和维护人员来说,字段的编码也需要规范化,这样可以统一字段编码,让维护人员一看就懂,增添的字段对以后接手项目的人员来说则很容易上手。
针对上述问题,我建议数据开发需要定义一套简明扼要的规范。规范中包括三个部分:一是编码的规范;二是字段类型长度的定义;三是表设计的特殊说明。
定义好域之后,就可以设计数据表以及字段了。设计完表,可以选择导出的数据库类型,并生成建数据和建表的sql,再通过数据库连接工具执行sql语句,一个工程项目的数据库就建立好了。以后只要有数据库的修改要求,则重新生成sql语句并执行之即可
参考文献
[1]望珊,萨师煊.数据库系统概论[M]. 北京:高等教育出版社, 2006.5:75-83     [2] 范立南,刘天惠等. SQL Server 2000 实用教程[M]. 北京:清华大学出版社,2004.02:47-138[3] Thomas M.Connolly ,Carolyn E.Begg . 数据库设计教程[M]. 北京: 机械工业出版社, 2005.1:1-49

上一页  [1] [2] [3] [4] [5] 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有