数据库与应用 下载本文

您的姓名:

您的主页的网址:
密码:

Banana

Apple

Orange

b.asp

处理网页

<% ‘asp语句的标志

response.write request(\网址\‘输出用户输入的网址

response.write \‘换行 response.write request(\姓名\‘输出用户输入的网址

response.write \‘换行 response.write request(\密码\‘输出用户输入的密码

response.write request(\水果\

‘输出用户选择的水果名称,或许单个,或许是集合 %>

(Selectable Menu)

说明:1.

2.

2009学年第一学期各班级的平均成绩

第一种方法:列足条件,再分组。

第 37 页(二)下拉框【例】

【作业】统计

1.根据需要,把所有需要的字段通过添加表和连接公共字段的方式列全,再分组统计人数,如先把学院、专业、年级、班级名称,以及成绩列出来,如下:

SELECT c.部门名称, d.专业名称, b.Grade, b.班级名称, f.成绩 FROM 成绩表 f INNER JOIN 学生信息表 a INNER JOIN

班级信息表 b ON a.班级编号 = b.班级编号 INNER JOIN 部门名称代码表 c ON b.学院 = c.部门代码 INNER JOIN

专业信息表 d ON b.专业 = d.专业代码 ON f.学号 = a.学号 INNER JOIN 课程信息表 e ON f.课程编号 = e.课程编号 WHERE (e.学年 = N'2009') AND (e.学期 = N'第一学期')

2. 再按照分组条件,把group by 分组条件字段粘贴下来,并对学号字段进行数目统计。即成绩前面的字段都是分组条件。

SELECT c.部门名称, d .专业名称, b.Grade, b.班级名称, AVG(f.成绩) AS 平均成绩 FROM 成绩表 f INNER JOIN 学生信息表 a INNER JOIN

班级信息表 b ON a.班级编号 = b.班级编号 INNER JOIN 部门名称代码表 c ON b.学院 = c.部门代码 INNER JOIN

专业信息表 d ON b.专业 = d .专业代码 ON f.学号 = a.学号 INNER JOIN 课程信息表 e ON f.课程编号 = e.课程编号 WHERE (e.学年 = N'2009') AND (e.学期 = N'第一学期') GROUP BY c.部门名称, d .专业名称, b.Grade, b.班级名称

第二种方法:先求总平均成绩,再逐步由小单位到大单位加分割即分组条件(略) 第九教学周完 第十周都复习了上面内容

⑦复习⑧

第三节 数据的插入、删除和更新

一、 数据插入:使用INSERT语句向表中插入数据,句法格式如下:

INSERT INTO 表名|视图名 [(字段列表)]

{ VALUES ({DEFAULT | NULL |expression} [,?n]) /*指定列值的子句*/ | exectute_statement

/*有效的EXECTUTE语句*/

}| DEFAULT VALUES /*所有列均取默认值*/

VALUES子句中的值可有三种:

(1) DEFAULT:指定为该列的默认值。这要求定义表时必须指定该列的默认值。 (2) NULL:指定该列为空值。

第 38 页

(3) expression:可以是一个常量、变量或一个表达式,其值的数据类型要与列的数据类型一致。注意表达式中不能有SELECT及EXECUTE语句。 通过实例具体说明有如下三种方法: 【例】备份经济学院的课程信息到a表 SELECT * into a

FROM 课程信息表

WHERE (授课学院 = N'041')

【例】将生命学院的课程信息也备份到a表 Insert into a SELECT * FROM 课程信息表

WHERE (授课学院 = N'033')

说明:要求插入字段和被插入表的字段一定是数目相同,对应属性一致才可以进行 【例】a表删除学年、学期两个字段,只剩下课程编号, 课程名称, 任课教师, 授课学院四个字段,继续把法学院的课程信息备份到a表

insert into a( 课程编号, 课程名称, 任课教师, 授课学院)

SELECT 课程编号, 课程名称, 任课教师, 授课学院 FROM 课程信息表

WHERE (授课学院 = N'042')

说明:插入表和被插入表如果字段数目不同而属性相同,必须要对应列出字段。 【例】向a表中插入常数记录,对应字段值分别为:23456,英语,0123451,056 insert into a( 课程编号, 课程名称, 任课教师, 授课学院) values(23456,’英语’,’0123451’,’056’) 说明:文本型要加单引号

二、数据删除:使用delete将表中的数据按条件从表中清除。

语法格式:DELETE FROM 表名|视图

[WHERE {<指定条件>}]

【例】将成绩表中选课编号为47868,并且学号为20093039的数据删除。 DELETE FROM成绩表

WHERE (课程编号 = N'47868') AND (学号 = N'20093039') 【例】将成绩表中成绩为空的行删除。 DELETE FROM 成绩表

第 39 页

WHERE 成绩 IS NULL

【例】删除所有行 DELETE FROM成绩表

三、更新修改数据:UPDATE语句可以用来修改表中的数据行。

语法格式: UPDATE 表名|视图

SET {列名={expression|DEFAULT|NULL} /*为列重新指定值*/ | @variable = expression | @variable = column = expression }[,?n]

[WHERE <指定条件> ]

【例】按照条件更新,把学号 = N'20075748',并且课程编号 = N'46607'的学分更新成4分。

UPDATE [成绩表] SET 分数 =4

WHERE (学号 = N'20075748') AND (课程编号 = N'46607')

第四节 视图的创建、修改和应用

一、视图:是从一个或多个表(或视图)导出临时数据的表。

视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。 二、视图的创建、修改和保存:

1.通过命令直接建立或在查询分析其中建立视图:

CREATE VIEW <视图名> AS <查询语句> 2.通过菜单操作 3.通过向导

三、通过视图修改数据规则

1.若视图是由二个以上基本表导出的,则此视图不允许更新;

2.若视图的字段来自表达式或常数,则不允许执行INSERT和UPDATE操作,但允许DELETE操作;

3.若视图定义中含有GROUP BY子句,则不允许更新; 4.若视图中含有DISTINCT短语,则不允许更新;

5.若视图定义中有嵌套查询,并且内层查询FROM子句中涉及到的表也是导出该视图的

第 40 页

/*指定变量的新值*/

/*指定列和变量的新值*/